当前位置: 首页 > news >正文

linux-----数据库

  1. Linux下数据库概述
    • 数据库类型
      • 关系型数据库(RDBMS):如MySQL、PostgreSQL、Oracle等。这些数据库以表格的形式存储数据,表格之间通过关系(如主键 - 外键关系)相互关联。关系型数据库支持复杂的查询操作,使用SQL(结构化查询语言)进行数据操作和管理。
      • 非关系型数据库(NoSQL):包括键 - 值存储(如Redis)、文档型数据库(如MongoDB)、列存储数据库(如Cassandra)等。它们不依赖于传统的表格关系模型,适用于处理大规模、高并发、灵活的数据存储需求。
  2. MySQL数据库在Linux中的应用

在这里插入图片描述

  • 安装与配置
    • 在Linux系统中,可以通过包管理工具(如apt - get for Debian/Ubuntu或yum for RHEL/CentOS)安装MySQL。例如,在Ubuntu上可以使用sudo apt - get install mysql - server进行安装。安装完成后,需要进行一些基本的配置,如设置root用户密码、配置字符集等。
  • 基本操作
    • 启动和停止服务:使用systemctl命令可以启动、停止和重启MySQL服务。例如,sudo systemctl start mysql启动服务,sudo systemctl stop mysql停止服务。
    • 连接数据库:通过mysql - u root - p命令可以以root用户身份连接到MySQL数据库,其中- u指定用户名,- p表示需要输入密码。
    • 数据库操作
      • 创建数据库:在MySQL命令行中,使用CREATE DATABASE database_name;语句创建一个新的数据库,例如CREATE DATABASE mytestdb;
      • 选择数据库:使用USE database_name;语句选择要操作的数据库,如USE mytestdb;
      • 创建表:使用CREATE TABLE语句创建表。例如,CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), age INT);创建了一个名为users的表,包含id(自增主键)、nameage三个列。
      • 插入数据:通过INSERT INTO语句插入数据,如INSERT INTO users (name, age) VALUES ('John', 30);将一条记录插入到users表中。
      • 查询数据:使用SELECT语句进行查询。例如,SELECT * FROM users;查询users表中的所有记录,SELECT name, age FROM users WHERE age > 25;查询年龄大于25岁的用户的姓名和年龄。
      • 更新数据:使用UPDATE语句更新数据,如UPDATE users SET age = 31 WHERE name = 'John';John的年龄更新为31岁。
      • 删除数据:使用DELETE FROM语句删除数据,如DELETE FROM users WHERE age < 20;删除年龄小于20岁的用户记录。
  1. PostgreSQL数据库在Linux中的应用

    • 安装与配置
      • 在Linux上安装PostgreSQL,例如在Debian/Ubuntu系统中,可以使用sudo apt - get install postgresql postgresql - contrib进行安装。安装后,默认会创建一个名为postgres的用户,需要为该用户设置密码,并可以创建其他用户和数据库进行管理。
    • 基本操作
      • 启动和停止服务:在Debian/Ubuntu系统中,可以使用sudo service postgresql start启动服务,sudo service postgresql stop停止服务。
      • 连接数据库:使用psql - U postgres命令以postgres用户身份连接到数据库,- U指定用户名。进入命令行后,可以执行SQL操作。
      • 数据库操作
        • 创建数据库:在psql命令行中,使用CREATE DATABASE database_name;语句创建数据库,如CREATE DATABASE mypgdb;
        • 选择数据库:使用\c database_name命令选择要操作的数据库,如\c mypgdb
        • 创建表和操作数据:与MySQL类似,使用CREATE TABLE语句创建表,如CREATE TABLE employees (id SERIAL PRIMARY KEY, name VARCHAR(100), department VARCHAR(50));。插入数据使用INSERT INTO语句,查询使用SELECT语句,更新使用UPDATE语句,删除使用DELETE FROM语句。
  2. 非关系型数据库在Linux中的应用(以Redis为例)

    • 安装与配置
      • 在Linux上安装Redis,例如在Ubuntu上可以使用sudo apt - get install redis - server进行安装。安装后,可以通过修改配置文件(通常是/etc/redis/redis.conf)来配置Redis的参数,如监听的IP地址、端口号、持久化方式等。
    • 基本操作
      • 启动和停止服务:使用sudo systemctl start redis启动Redis服务,sudo systemctl stop redis停止服务。
      • 连接Redis:使用redis - cli命令连接到Redis服务器。进入命令行后,可以执行Redis命令。
      • 数据操作
        • 键 - 值存储:Redis最基本的操作是存储键 - 值对。例如,SET key value命令将一个键值对存储到Redis中,如SET mykey 'Hello, Redis!'。使用GET key命令获取键对应的值,如GET mykey会返回Hello, Redis!
        • 列表操作:Redis支持列表数据结构。可以使用LPUSH命令将一个或多个值插入到列表头部,如LPUSH mylist 'value1' 'value2'。使用LRANGE命令获取列表中的元素范围,如LRANGE mylist 0 - 1返回列表中的所有元素。
        • 集合操作:对于集合数据结构,使用SADD命令添加元素,如SADD myset 'element1' 'element2'。使用SMEMBERS命令获取集合中的所有元素,如SMEMBERS myset返回集合中的元素列表。
        • 哈希操作:哈希数据结构用于存储对象。例如,HSET myhash field1 value1将一个哈希字段和值存储到myhash中。使用HGETALL myhash获取哈希中的所有字段和值。
  3. 安装前准备

    • 系统更新:在安装MySQL之前,建议先更新系统软件包,以确保系统的软件包管理工具是最新的,并且系统已经安装了必要的依赖项。在基于Debian/Ubuntu的系统中,可以使用sudo apt - get update命令进行更新;在基于RHEL/CentOS的系统中,可以使用sudo yum update命令。
    • 检查系统资源:确保系统有足够的磁盘空间、内存等资源来运行MySQL。MySQL的资源需求取决于使用场景,如数据库的大小、并发连接数等。一般来说,至少需要几百MB的磁盘空间用于安装,并且根据数据库的规模和负载情况,可能需要数GB甚至更多的空间。同时,要有足够的内存来支持数据库的运行,特别是在处理大量并发连接时。
  4. 安装MySQL

    • Debian/Ubuntu系统安装
      • 使用以下命令安装MySQL服务器:sudo apt - get install mysql - server。在安装过程中,系统会提示输入root用户(MySQL的超级管理员账户)的密码。
      • 安装完成后,MySQL服务会自动启动。可以使用systemctl命令检查服务状态,例如sudo systemctl status mysql,如果服务正在运行,会显示绿色的active (running)状态信息。
    • RHEL/CentOS系统安装
      • 首先,添加MySQL的Yum仓库。对于MySQL官方仓库,可以下载并安装相应的RPM包来配置仓库。例如,对于MySQL 8.0,在RHEL 8/CentOS 8上可以使用以下命令:
sudo yum localinstall https://dev.mysql.com/get/mysql80 - community - release - el8 - 3.noarch.rpm
 - 然后,使用Yum安装MySQL服务器:`sudo yum install mysql - server`。安装完成后,使用`systemctl`命令启动MySQL服务:`sudo systemctl start mysqld`。
  • 其他安装方式
    • 还可以从MySQL官方网站下载二进制安装包进行安装。这种方式相对复杂一些,需要手动解压安装包、配置环境变量等步骤。例如,对于MySQL 8.0,下载二进制包后,解压到合适的目录(如/usr/local/mysql),然后在终端中进入该目录,执行以下命令进行初始化:
sudo bin/mysqld --initialize --user = mysql
 - 之后可以通过`sudo bin/mysqld_safe --user = mysql &`命令启动MySQL服务,并且需要将MySQL的`bin`目录添加到系统的`PATH`环境变量中,以便方便地使用MySQL命令行工具。
  1. 配置MySQL
    • 安全配置脚本(重要)
      • 在安装完成后,建议运行MySQL提供的安全配置脚本。在Debian/Ubuntu和RHEL/CentOS系统中,都可以使用sudo mysql_secure_installation命令来运行这个脚本。
      • 脚本会提示进行一系列的安全设置,包括修改root密码(如果在安装过程中没有设置强密码)、删除匿名用户、禁止root远程登录(默认情况下,root只能从本地登录,这是一种安全措施)、删除测试数据库等操作。按照提示逐步操作,可以增强MySQL数据库的安全性。
    • 配置文件修改
      • MySQL的主要配置文件在不同的系统中位置可能不同。在Debian/Ubuntu系统中,配置文件通常是/etc/mysql/mysql.conf.d/mysqld.cnf;在RHEL/CentOS系统中,主要配置文件是/etc/my.cnf
      • 可以通过修改配置文件来调整MySQL的各种参数,如服务器的监听端口(默认是3306)、字符集、存储引擎、缓存大小等。例如,要修改MySQL服务器的监听端口,可以在配置文件中找到[mysqld]部分,添加或修改port = [新端口号]这一行。修改完成后,需要重启MySQL服务使配置生效。在Debian/Ubuntu系统中,可以使用sudo systemctl restart mysql命令;在RHEL/CentOS系统中,可以使用sudo systemctl restart mysqld命令。
    • 字符集配置
      • 为了正确存储和处理各种语言的字符,需要配置MySQL的字符集。在配置文件中,找到[mysqld]部分,添加或修改character - set - server = utf8mb4(推荐使用utf8mb4字符集,它支持更广泛的Unicode字符)。同时,在[client]部分,可以添加default - character - set = utf8mb4,以确保客户端也使用相同的字符集进行通信。配置完成后重启服务。
    • 用户权限配置
      • 除了root用户外,通常需要创建其他具有不同权限的用户来管理和访问数据库。可以使用mysql命令行工具登录到MySQL(例如,mysql - u root - p,然后输入root密码),进入MySQL命令行界面后,使用以下命令创建用户:
CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password';
 - 这会创建一个名为`new_user`的用户,只能从本地(`localhost`)登录,密码是`password`。然后,可以使用`GRANT`语句为用户授予不同的权限,例如:
GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'localhost';
 - 这会授予`new_user`在所有数据库(`*.*`)上的所有权限(`ALL PRIVILEGES`)。权限可以根据实际需求进行更精细的设置,如只允许用户对特定数据库或表进行查询、插入、更新等操作。授予权限后,使用`FLUSH PRIVILEGES;`命令使权限设置生效。
  1. 连接到MySQL数据库
    • 使用命令行客户端
      • 在Linux终端中,输入mysql -u [用户名] -p,其中[用户名]是你要登录的MySQL用户账号。例如,以root用户登录,则输入mysql -u root -p。然后按回车键,系统会提示你输入密码,输入正确密码后即可进入MySQL命令行界面。
    • 通过编程语言连接(以Python为例)
      • 首先需要安装Python的MySQL驱动程序,如mysql - connector - python。安装完成后,可以使用以下代码连接到MySQL数据库:
import mysql.connectormydb = mysql.connector.connect(host="localhost",user="your_user",password="your_password",database="your_database"
)print(mydb)
 - 上述代码中,`host`指定了MySQL服务器的地址(`localhost`表示本地服务器),`user`和`password`分别是登录的用户名和密码,`database`是要连接的数据库名称。如果连接成功,`mydb`对象将包含数据库连接信息。
  1. 数据库操作
    • 创建数据库
      • 在MySQL命令行中,使用CREATE DATABASE [数据库名称];语句来创建新的数据库。例如,CREATE DATABASE my_test_database;将创建一个名为my_test_database的数据库。
      • 在编程语言中(以Python为例),可以在连接成功后使用如下代码创建数据库:
import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",password="your_password"
)mycursor = mydb.cursor()
mycursor.execute("CREATE DATABASE my_test_database")
  • 选择数据库

    • 在MySQL命令行中,使用USE [数据库名称];语句来选择要操作的数据库。例如,USE my_test_database;选择刚刚创建的my_test_database
    • 在编程语言中,通常在连接数据库时就可以指定要使用的数据库,如前面Python示例中的database参数。如果需要在程序中切换数据库,可以使用类似命令行的方式(具体取决于所使用的编程语言和数据库驱动)。
      在这里插入图片描述
  • 创建表

    • 在MySQL命令行中,使用CREATE TABLE语句来创建表。例如,创建一个名为customers的表,包含idnameemail三个列的语句如下:
CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255),email VARCHAR(255)
);
 - 在编程语言中,以Python为例,代码如下:
import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",password="your_password",database="my_test_database"
)mycursor = mydb.cursor()
mycursor.execute("""CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255),email VARCHAR(255))
""")
  • 插入数据
    • 在MySQL命令行中,使用INSERT INTO语句插入数据。例如,向customers表中插入一条记录:
INSERT INTO customers (name, email) VALUES ('John Doe', 'john.doe@example.com');
 - 在编程语言中,以Python为例,代码如下:
import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",password="your_password",database="my_test_database"
)mycursor = mydb.cursor()
sql = "INSERT INTO customers (name, email) VALUES (%s, %s)"
val = ("John Doe", "john.doe@example.com")
mycursor.execute(sql, val)
mydb.commit()
 - 注意,在编程语言中插入数据后,通常需要使用`mydb.commit()`来提交事务,确保数据真正插入到数据库中。
  • 查询数据
    • 在MySQL命令行中,使用SELECT语句查询数据。例如,查询customers表中的所有记录:SELECT * FROM customers;。可以添加WHERE子句来进行条件查询,如SELECT * FROM customers WHERE name = 'John Doe';
    • 在编程语言中,以Python为例,代码如下:
import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",password="your_password",database="my_test_database"
)mycursor = mydb.cursor()
mycursor.execute("SELECT * FROM customers")
result = mycursor.fetchall()
for row in result:print(row)
  • 更新数据
    • 在MySQL命令行中,使用UPDATE语句更新数据。例如,更新customers表中John Doe的电子邮件地址:
UPDATE customers SET email = 'new.email@example.com' WHERE name = 'John Doe';
 - 在编程语言中,以Python为例,代码如下:
import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",password="your_password",database="my_test_database"
)mycursor = mydb.cursor()
sql = "UPDATE customers SET email = %s WHERE name = %s"
val = ("new.email@example.com", "John Doe")
mycursor.execute(sql, val)
mydb.commit()
  • 删除数据
    • 在MySQL命令行中,使用DELETE FROM语句删除数据。例如,删除customers表中nameJohn Doe的记录:DELETE FROM customers WHERE name = 'John Doe';
    • 在编程语言中,以Python为例,代码如下:
import mysql.connectormydb = mysql.connector.connect(host="localhost",user="root",password="your_password",database="my_test_database"
)mycursor = mydb.cursor()
sql = "DELETE FROM customers WHERE name = %s"
val = ("John Doe",)
mycursor.execute(sql, val)
mydb.commit()
  1. 备份和恢复数据库
    • 备份数据库
      • 使用mysqldump命令备份数据库。例如,备份my_test_database数据库到一个SQL文件中,可以在终端中输入以下命令:
mysqldump -u [用户名] -p my_test_database > backup.sql
 - 系统会提示你输入密码,输入正确密码后,`my_test_database`数据库的结构和数据将被备份到`backup.sql`文件中。
  • 恢复数据库
    • 如果需要恢复数据库,可以使用以下命令:
mysql -u [用户名] -p my_test_database < backup.sql
 - 同样,输入密码后,`backup.sql`文件中的数据和结构将被恢复到`my_test_database`中。在恢复之前,需要确保目标数据库已经存在(可以先创建一个空的数据库)。

在这里插入图片描述

相关文章:

linux-----数据库

Linux下数据库概述 数据库类型&#xff1a; 关系型数据库&#xff08;RDBMS&#xff09;&#xff1a;如MySQL、PostgreSQL、Oracle等。这些数据库以表格的形式存储数据&#xff0c;表格之间通过关系&#xff08;如主键 - 外键关系&#xff09;相互关联。关系型数据库支持复杂的…...

【Linux进程】进程间的通信

目录 1. 进程间通信 1.1 进程间通信的目的 2. 管道 2.1 什么是管道 2.2. 匿名管道 匿名管道的特性 管道的4种情况 联系shell中的管道 2.3. 命名管道 代码级建立命名管道 2.4. 小结 总结 1. 进程间通信 进程间通信&#xff08;Inter-Process Communication&#xff0c;IPC&…...

面试题整理4----lvs,nginx,haproxy区别和使用场景

LVS、Nginx、HAProxy&#xff1a;区别与使用场景 1. LVS&#xff08;Linux Virtual Server&#xff09;1.1 介绍1.2 特点1.3 使用场景 2. Nginx2.1 介绍2.2 特点2.3 使用场景 3. HAProxy3.1 介绍3.2 特点3.3 使用场景 4. 总结对比 在构建高可用、高性能的网络服务时&#xff0c…...

开放词汇目标检测(Open-Vocabulary Object Detection, OVOD)综述

定义 开放词汇目标检测&#xff08;Open-Vocabulary Object Detection, OVOD&#xff09;是一种目标检测任务&#xff0c;旨在检测和识别那些未在训练集中明确标注的物体类别。传统的目标检测模型通常只能识别有限数量的预定义类别&#xff0c;而OVOD模型则具有识别“开放词汇…...

Python读写JSON文件

import jsondef writeJSONFile(self):with open(g_updateFilePath, "w" encodingutf-8) as fiel:json.dump(dictData, fiel, indent4, ensure_asciiFalse)fiel.close()def readJsonToDict(file):with open(file, r, encodingutf-8) as f: # 确保文件以 UTF-8 编码打…...

使用Python开发高级游戏:创建一个3D射击游戏

在这篇文章中,我们将深入介绍如何使用Python开发一个简单的3D射击游戏。我们将使用Pygame库来创建2D游戏界面,并结合PyOpenGL来进行3D渲染。这个项目的目标是帮助你理解如何将2D和3D图形结合起来,创建更复杂的游戏机制,包括玩家控制、敌人AI、碰撞检测和声音效果。 一、开…...

springboot 配置Kafka 关闭自启动连接

这里写自定义目录标题 springboot 配置Kafka 关闭自启动连接方法一&#xff1a;使用 ConditionalOnProperty方法二&#xff1a;手动管理Kafka监听器容器方法三&#xff1a;使用 autoStartupfalse结语 springboot 配置Kafka 关闭自启动连接 在Spring Boot应用程序中&#xff0c…...

Jenkins中添加节点实战

Jenkins是一个开源的自动化服务器,用于持续集成和持续交付(CI/CD)。为了提高构建和测试的效率,我们可以在Jenkins中添加节点(也称为代理或从属节点)。本文将详细介绍如何在Jenkins中添加节点,包括安装Java 11、Git、设置凭证、多种配置Jenkins Agent的方法以及验证。 &#…...

DL作业11 LSTM

习题6-4 推导LSTM网络中参数的梯度&#xff0c; 并分析其避免梯度消失的效果 LSTM&#xff08;长短期记忆网络&#xff09;是一种特殊的循环神经网络&#xff08;RNN&#xff09;&#xff0c;旨在解决普通 RNN 在处理长序列时遇到的梯度消失和梯度爆炸问题。它通过设计多个门…...

用 Python 实现井字棋游戏

一、引言 井字棋&#xff08;Tic-Tac-Toe&#xff09;是一款经典的两人棋类游戏。在这个游戏中&#xff0c;玩家轮流在 3x3 的棋盘上放置自己的标记&#xff0c;通常是 “X” 和 “O”&#xff0c;第一个在棋盘上连成一线&#xff08;横、竖或斜&#xff09;的玩家即为获胜者。…...

构建MacOS应用小白教程(打包 签名 公证 上架)

打包 在package.json中&#xff0c;dependencies会被打进 Electron 应用的包里&#xff0c;而devDependencies则不会&#xff0c;所以必要的依赖需要放到dependencies中。files中定义自己需要被打进 Electron 包里的文件。以下是一个完整的 mac electron-builder的配置文件。 …...

如何高效使用 Facebook Business Manager (商务管理平台)

在数字营销的浪潮中&#xff0c;Facebook Business Manager&#xff08;商务管理平台&#xff09;已成为众多企业管理社交广告活动、品牌资产和团队协作的核心工具。无论你是刚刚进入社交广告领域的小型企业主&#xff0c;还是经验丰富的大型品牌经理&#xff0c;掌握 Facebook…...

每天学习一个思维模型 - 损失规避

定义 损失规避&#xff08;Loss aversion&#xff09;&#xff0c;又称损失厌恶&#xff0c;指人们面对同样数量的利益和损失时&#xff0c;认为损失更加令他们难以忍受。损失带来的负效用为收益正效用的2至2.5倍。损失厌恶反映了人们的风险偏好并不是一致的&#xff0c;当涉及…...

Python知识分享第三十一天-Numpy和Pnadas入门

NumPy Numpy介绍 Numpy是Python中科学计算的基础包,它是一个Python库提供多维数组对象 各种派生对象(如掩码数组和矩阵),以及用于对数组进行快速的各种例程,包括数学 ,逻辑, 形状操作,排序,选择,I/O,离散傅里叶变换,基本线性代数,基本统计运算,随机模拟等等(Numpy的核心是nda…...

mlr3超参数Hyperparameter 自动寻找auto

底层还是根据你本来在R跑单独那一个机器学习的函数&#xff0c;例如randomForest::randomForest()&#xff0c;里面可以填入什么&#xff0c;然后跟你的实际数据取值范围去设个范围。然后用auto_tuner()函数对学习器的超参数自动调参 随机森林randomforest learner_rf <- …...

双臂机器人

目录 一、双臂机器人简介 二、双臂机器人系统的组成 三、双臂机器人面临的主要挑战 3.1 协调与协同控制问题 3.2 力控制与柔顺性问题 3.3 路径规划与轨迹优化问题 3.4 感知与环境交互 3.5 人机协作问题 3.6 能源与效率问题 3.7 稳定性与可靠性问题 四、双臂机器人…...

MATLAB中cvx工具箱的使用

CVX 是 MATLAB 中一个用于解决凸优化问题的建模工具箱。它使得定义、求解和分析凸优化问题变得简单。CVX 允许用户用类似数学表达的方式编写凸优化问题&#xff0c;而不需要过多关注底层的优化算法。CVX 的核心功能是将一个简单的数学问题转化为 MATLAB 可以理解并求解的标准形…...

EGO Swarm翻译

目录 摘要 Ⅰ 介绍 Ⅱ 相关工作 A . 单四旋翼局部规划 B . 拓扑规划 C. 分布式无人机集群 Ⅲ 基于梯度的局部规划隐式拓扑轨迹生成 A.无需ESDF梯度的局部路径规划 B.隐式拓扑轨迹生成 Ⅳ 无人机集群导航 A 机间避碰 B. 定位漂移补偿 C. 从深度图像中去除agent Ⅴ …...

Webpack简单介绍及安装

一、介绍 Webpack 是一个现代 JavaScript 应用程序的静态模块打包器&#xff08;module bundler&#xff09;。它将应用程序中的所有依赖项&#xff08;JavaScript、图片、CSS 等&#xff09;打包成一个或多个 bundle。这样做的主要目的是减少加载时间和提高应用程序的加载性能…...

如何在Anaconda的虚拟环境中下载Python包

一、首先查看conda下的虚拟环境 使用conda info -e查看当前conda下的虚拟环境&#xff1a; conda info -e 二、激活要添加Python包的虚拟环境 其中base是基础环境&#xff0c;这里我们选择conda_env这个虚拟环境 conda activate conda_env 三、使用conda命令安装需要的Pyth…...

React 事件机制和原生 DOM 事件流有什么区别

发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【宝藏入口】。 React 的事件机制与原生 DOM 事件流在设计和实现上有一些显著的区别。了解这些区别有助于我们更好地理解 React 是如何管理事件的…...

React 底部加载组件(基于antd)

底部加载组件的意义在于提供一种流畅的用户体验&#xff0c;以便在用户滚动到页面底部时自动加载更多内容。这样可以让用户无需离开当前页面&#xff0c;就能够无缝地浏览更多的内容.通过底部加载组件&#xff0c;可以分批加载页面内容&#xff0c;减少一次性加载大量数据对页面…...

Redis应用—7.大Value处理方案

1.⽅案设计 步骤一&#xff1a;首先需要配置一个crontab定时调度shell脚本&#xff0c;然后该脚本每天凌晨会通过rdbtools⼯具解析Redis的RDB⽂件&#xff0c;接着对解析出的内容进行过滤&#xff0c;把RDB⽂件中的⼤key导出到CSV⽂件。 步骤二&#xff1a;使⽤SQL导⼊CSV⽂件到…...

洛谷P2742 圈奶牛 (凸包 Andrew算法)

[USACO5.1] 圈奶牛Fencing the Cows /【模板】二维凸包 题目背景 upd: 新增一组 hack 数据。 题目描述 农夫约翰想要建造一个围栏用来围住他的奶牛&#xff0c;可是他资金匮乏。他建造的围栏必须包括他的奶牛喜欢吃草的所有地点。对于给出的这些地点的坐标&#xff0c;计算…...

Spring(一)---IOC(控制权反转)

目录 引入 1.什么叫IOC(Inversion of Control)控制权反转&#xff1f; 2.什么叫AOP(Aspect-Oriented Programming)面向切面编程(涉及Java代理)&#xff1f; 3.简单谈一下Java怎么实现ICO? Spring框架的介绍 1. Spring框架的概述 2. Spring框架的优点 Spring IOC容器介绍…...

MySQL数据库——门诊管理系统数据库数据表

门诊系统数据库his 使用图形化工具或SQL语句在简明门诊管理系统数据库his中创建数据表&#xff0c;数据表结构见表2-3-9&#xff5e;表2-3-15所示。 表2-3-9 department&#xff08;科室信息表&#xff09; 字段名称 数据类型 长度 是否为空 说明 dep_ID int 否 科室…...

linux环境使用yum方式安装nginx

linux环境使用yum方式安装nginx 一、nginx官网 二、nginx安装 点击首页的 Docs 或者 install 都可以&#xff0c;最终都是进入到Installing nginx页面 因为安装的服务器环境是linux centos 所以选择 Installation on Linux下面 packages 跳转链接 点击packages后 最终会跳转…...

2024高级前端面试题大全

&#x1f3a8; 1、v-bind指令绑定所有属性 <comp :title"title" :color"color" /><comp v-bind"props" />&#x1f3a8; 父组件监听字组件渲染周期&#xff1a;hook:updated文章地址&#x1f3a8; Vue3 defineAsyncComponent动态导…...

[机器学习]XGBoost(3)——确定树的结构

XGBoost的目标函数详见[机器学习]XGBoost&#xff08;2&#xff09;——目标函数&#xff08;公式详解&#xff09; 确定树的结构 之前在关于目标函数的计算中&#xff0c;均假设树的结构是确定的&#xff0c;但实际上&#xff0c;当划分条件不同时&#xff0c;叶子节点包含的…...

Hutool工具包的常用工具类的使用介绍

前言 Hutool 是一个轻量级的 Java 工具类库&#xff0c;提供了非常丰富的工具方法&#xff0c;可以大大减少开发时的重复性工作。它的目标是让 Java 开发更简单、更高效。Hutool 提供了多种常用功能&#xff0c;以下是一些常用工具类的使用介绍&#xff1a; 1. StrUtil - 字符…...

ETCD备份还原

环境准备&#xff1a; master 192.168.8.128 node1 192.168.8.129 k8s版本&#xff1a; 一&#xff1a;安装etcdctl工具 1.1下载安装包&#xff1a; wget https://github.com/etcd-io/etcd/releases/download/v3.4.13/etcd-v3.4.13-linux-amd64.tar.gz 1.2解压&…...

服务器防火墙设置某个端口号只允许固定 ip地址访问

服务器防火墙设置某个端口号只允许固定 ip地址访问是运维常见的功能&#xff0c;今天我们分享一下&#xff1a; 一、Linux环境 1、firewall 方式 1&#xff09;允许特定 IP 地址访问 23 端口 sudo firewall-cmd --zonepublic --add-rich-rulerule family"ipv4" s…...

FPGA 基础了解

前言 前期一直在做关于FPGA方面的开发&#xff0c;从开始认真玩FPGA到参考原子、野火、黑金、米联客的教学资料再到参与做项目中&#xff0c;中途也参加了两个比赛整也都获得不错的成绩&#xff0c;整个阶段持续了大概快一年半的时间&#xff0c;学习了乱七八糟的知识&#xf…...

Golang学习历程【第二篇 fmt包变量、常量的定义】

Golang学习历程【第二篇 fmt包&变量、常量的定义】 1. fmt 包1.1 打印&#xff08;print&#xff09;1.1.1 Print 打印1.1.2 Println 打印后换行1.1.3 Printf 打印格式化参数 1.2 输入(Scan)1.2.1 Scan 输入1.2.2 Scanf 格式化输入 2. 变量2.1 变量的声明2.2 变量初始化&am…...

深入QML语法

文章目录 深入了解 QML 文档的结构和语法什么是 QML 文档&#xff1f;导入语句导入语句的格式示例 对象声明基本语法示例更复杂的对象声明 QML 对象类型详解1. Rectangle&#xff08;矩形&#xff09;2. Gradient&#xff08;渐变&#xff09;3. Text&#xff08;文本&#xff…...

Viggle Api上线V3-beta模型,圣诞节跳舞视频来临

历史文章 Suno AI API接入 - 将AI音乐接入到自己的产品中&#xff0c;支持120并发任务 万物皆能舞&#xff0c;AI让你秒变“舞”林高手 – Viggle AI“舞”所不能 Viggle AI&#xff1a;打造爆款 AI 视频&#xff0c;让照片 “踢” 起足球 又一款AI对口型神器&#xff0c;让…...

前端excel的实现方案Luckysheet

一、介绍 Luckysheet是一款纯前端类似excel的在线表格&#xff0c;功能强大、配置简单、完全开源的插件。目前已暂停维护&#xff0c;但是其已有功能大概能满足常见需求的使用。 二、引入 ①cdn引入&#xff08;目前应该已经不支持&#xff0c;可自行尝试&#xff09; <l…...

数据字典类型/条目表的设计目的

1.以前的设计思路 对于下拉框选项储存的思路 我们以前是直接针对每一个下拉框都关联一个表格于数据库中 这种行为很不妥当 如果对于不同业务情景下的相同下拉框来说 多个相同下拉框就会在数据库中产生多个表格 当某个下拉框的选项需要更新或者新增时 那么对应的需要同步更新相…...

abc 383 C (bfs 最短路 )D(唯一分解定理,欧拉筛)

C 题&#xff1a; 首先暴力的想&#xff0c;对于每一个加湿器的位置去 上下左右扩展是 nm 的复杂度 。最多会有 nm 个加湿器。所以复杂度到达了n^3 。肯定超时了。 我们可以发现 对于一个点 会标记很多次&#xff0c;这回导致超时。 可以采用类似 bfs 求最短路的形式&#xff…...

常用消息中间件介绍

在消息中间件这个领域&#xff0c;确实有不少专业且强大的选择&#xff0c;它们各自都有着独特的优势和适用场景。 1. Apache Kafka&#xff1a; • Kafka以其高吞吐量、低延迟和分布式架构著称&#xff0c;非常适合处理大数据量、实时性要求高的场景。 • 它支持发布/订阅模式…...

vue基础

1.v-text,v-html <!-- v-text,v-html都可以显示内容 ,v-html可以解析html标签--> <p>{{msg}}</p> <p v-text"msg"></p> <p v-html"msg"></p> <script> let appnew Vue({ el:"#max", data:{ ms…...

从Windows远程访问Linux上的数据库

从Windows远程访问Linux上的数据库 目录 简介在Linux上安装MySQL/MariaDB配置MySQL/MariaDB以允许远程连接 修改MySQL/MariaDB配置文件重启MySQL/MariaDB服务确保防火墙允许MySQL/MariaDB端口 创建远程访问用户授予用户权限测试远程连接 检查网络连通性使用图形化工具连接 创…...

Android HandlerThread、Looper、MessageQueue 源码分析

Android HandlerThread、Looper、MessageQueue 源码分析 简介 在 Android 开发中&#xff0c;大家应该对 HandlerThread 有一定了解。顾名思义&#xff0c;HandlerThread 是 Thread 的一个子类。与普通的 Thread 不同&#xff0c;Thread 通常一次只能执行一个后台任务&#x…...

ASP.NET |日常开发中定时任务详解

ASP.NET &#xff5c;日常开发中定时任务详解 前言一、定时任务的概念与用途1.1 定义1.2 应用场景 二、在ASP.NET中实现定时任务的方式2.1 使用System.Timers.Timer2.2 使用Quartz.NET 三、定时任务的部署与管理3.1 部署考虑因素3.2 管理与监控 结束语优质源码分享 ASP.NET &am…...

Unity动态读取外部图片转Texture2D,内存过大问题解决方案

问题描述 加载原始图片2.63M的图片,分辨率为3023*4032,占用内存108.5M 加载原始图片12.6 M的图片,分辨率为6000*8000,占用内存427.2M 太恐怖了吧 解决方案 1.加载完图片,等比缩放,宽高改为1024或者512以下 1024占用5.2M,512占用1.3M,相比小了很多 2.原始Texture2…...

【Where语法全解密】.NET开源ORM框架 SqlSugar 系列

文章目录 前言一、普通表达式查询 Where二、根据SQL查询 where三、动态查询四、动态拼表达式查询 &#xff0c;拼拉姆达五、条件拼接查询六、链式条件查询七、根据Class查询&#xff0c;根据实查询八、根据Class中主键查询九、根据字典查询十、查询函数十一、Where中有子查询十…...

人工智能练习题--大题题库速通指南

随着人工智能&#xff08;AI&#xff09;技术的快速发展&#xff0c;越来越多的企业和个人开始重视AI的应用和发展。在这个背景下&#xff0c;人工智能训练师这一职业应运而生&#xff0c;他们专注于数据标注、模型训练、算法优化等方面的工作&#xff0c;以确保AI系统能够准确…...

写给Pythoner的前端进阶指南(四):异步编程 - 原生支持的 async/await

在开发中&#xff0c;异步编程是处理并发任务的重要方式。无论是请求数据、读取文件还是执行网络操作&#xff0c;异步编程能够有效提升程序的性能和响应速度。Python 和 JavaScript 都支持异步编程&#xff0c;但它们的实现方式有所不同。在这篇文章中&#xff0c;我们将深入探…...

项目搭建+姓名唯一性校验

一 : 添加时对姓名进行唯一性校验 ① : 给姓名绑定一个改变事件 ② : 取值 ③ : 组装对象 ④ : ajax (Controller定义对姓名唯一性校验的方法) 在成功回调函数里 判断姓名是否添加过(0>已添加 1>未添加) 未添加过,添加成功后,(清空) /*** 对姓名进行唯一性校验*/$("…...

MacOS下PostIn安装配置指南

PostIn是一款开源免费的接口管理工具&#xff0c; 下面介绍私有部署版本的MacOS下安装与配置。私有部署版本更适合有严格数据安全要求的企业&#xff0c;实现对数据和系统的完全控制。 &#xfeff; &#xfeff; 1、MacOS服务端安装 Mac安装包下载地址&#xff1a;下载Mac安…...