非关系型数据库--------------Redis配置与优化

news/2024/6/20 21:25:35/文章来源:https://blog.csdn.net/zzzxxx520369/article/details/137223461

目录

一、关系型数据库与非关系型数据库

1.1关系型数据库

1.2非关系型数据库

1.2.1非关系型数据库产生背景

1.3关系型非关系型区别

二、Redis

2.1redis简介

2.2Redis命中机制和淘汰机制

2.3Redis 具有以下优点

2.3.1具有极高的数据读写速度

2.3.2redis支持丰富的数据类型

2.3.3支持数据的持久化

2.3.4Redis 所有操作都是原子性的

2.3.5支持数据备份

2.4Redis为什么这么快?

三、Redis 安装部署

3.1关闭防火墙并下载依赖环境

3.2解压软件包

3.3make编译

3.4安装到指定目录/usr/local/redis

3.5执行软件包提供的脚本文件

3.6做软链接

3.7过滤端口

3.8Redis 服务控制

3.9进入配置文件添加监听主机

3.10重启服务

四、Redis 命令工具

4.1redis-cli 命令行工具

4.2redis-benchmark测试工具

五、Redis数据库五大类型

5.1String

5.2List

5.3Hash(散列类型)

5.4set无序集合

5.5 sorted set

六、Redis 数据库常用命令

查看数据库中键的情况

6.1 keys 命令

6.2 exists 命令

 6.3 del 命令

6.4 type 命令


一、关系型数据库与非关系型数据库

1.1关系型数据库

  • 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上
  • 一般面向于记录。
  • SQL语句(标准数据查询语言)就是一种基于关系型数据库的语言,用于执行对关系型数据库中数据的检索和操作。

主流的关系型数据库包括 oracle、MySQL、SQL Server、Microsoft Access、DB2、PostgresQL等。 以上数据库在使用的时候必须先建库建表设计表结构,然后存储数据的时候按表结构去存,如果数据与表结构不匹配就会存储失败

1.2非关系型数据库

  • NosQL(NoSQL=Not only SQL),意思是“不仅仅是SQL”,是非关系型数据库的总称
  •  除了主流的关系型数据库外的数据库,都认为是非关系型
  • 不需要预先建库建表定义数据存储表结构,每条记录可以有不同的数据类型和字段个数(比如微信群聊里的文字、图片、视频、音乐等)
  • 主流的NoSQ1.数据库有Redis、MongDB、Hbase、Memcached、ElasticSearch等
  • 大部分用在缓存中

1.2.1非关系型数据库产生背景

可用于应对 web2.0纯动网站类型的三高问题。

High performance—对数据库高并发读写需求

Huge Storage—对海量数据高效存储与访问需求

High scalability&&High Availability一对数据库高可扩展性与高可用性需求

1.3关系型非关系型区别

非关系数据库:数据保存在缓存中,利于读取速度/查询数据、架构中位置灵活、分布式、扩展性高

关系数据库:安全性高(持久化)、事务处理能力强、任务控制能力强、做日志备份、恢复、容灾的能力更强一点。

(1)数据存储方式不同

关系型和非关系型数据库的主要差异是数据存储的方式

关系型数据天然就是表格式的,因此存储在数据表的行和列中。数据表可以彼此关联协作存储,也很容易提取数据。
与其相反,非关系型数据不适合存储在数据表的行和列中,而是大块组合在一起。非关系型数据通常存储在数据集中,就像文档、键值对或者图结构。

你的数据及其特性是选择数据存储和提取方式的首要影响因素。

(2)扩展方式不同

SQL和NoSQL数据库最大的差别可能是在扩展方式上,要支持日益增长的需求当然要扩展。
要支持更多并发量,SQL数据库是纵向扩展,也就是说提高处理能力,使用速度更快速的计算机,这样处理相同的数据集就更快了。

因为数据存储在关系表中,操作的性能瓶颈可能涉及很多克服。

虽然SQL数据库有很大扩展空间,但最终肯定会达到纵向扩展的上限个表,这都需要通过提高计算机性能来。
而NoSQL数据库是横向扩展的。因为非关系型数据存储天然就是分布式的,NoSQL数据库的扩展可以通过给资源池添加更多普通的数据库服务器(节点)来分担负载。

关系数据库:纵向    比如说硬件中添加内存     二维表存储
非关型数据库:横向(加机器)  天然分布式   键值对存储在内存中

(3)对事务性的支持不同

如果数据操作需要高事务性或者复杂数据查询需要控制执行计划,那么传统的SQL数据库从性能和稳定性方面考虑是你的最佳选择。

SQL数据库支持对事务原子性细粒度控制,并且易于回滚事务。
虽然NoSQL数据库也可以使用事务操作,但稳定性方面没法和关系型数据库比较,所以它们真正闪亮的价值是在操作的扩展性和大数据量处理方面。

二、Redis

2.1redis简介

  • Redis(远程字典服务器)是一个开源的、使用C语言编写的NoSQL数据库即非关系数据库。
  •  Redis 基于内存运行并支持持久化,采用key-value(键值对)的存储形式,是目前分布式架构中不可或缺的一环
  • Redis服务器程序是单进程模型,也就是在一台服务器上可以同时启动多个Redis进程,Redis的实际处理速度则是完全依靠于主进程的执行效率。
  • 若在服务器上只运行一个Redis进程,当多个客户端同时访问时,服务器的处理能力是会有一定程度的下降;若在同一台服务器上开启多个Redis进程,Redis在提高并发处理能力的同时会给服务器的CPU造成很大压力。即:在实际生产环境中,需要根据实际的需求来决定开启多少个Redis进程,若对高并发要求更高一些,可能会考虑在同一台服务器上开启多个进程。若CPU资源比较紧张,采用单进程即可。

Redis 6.0 中新增加的多线程也只是针对处理网络请求过程采用了多线性,而数据的读写命令,仍然是单线程处理的。

2.2Redis命中机制和淘汰机制

命中机制:查询数据可以查询到,例如查询100条可以查询到20条即命中20条

淘汰机制:Redis缓存的是高热数据,若负载高于限制则淘汰一些最近没有访问的数据,即删除

2.3Redis 具有以下优点

2.3.1具有极高的数据读写速度

数据读取的速度最高可达到110000次/s,数据写入速度最高可达到81000次/s。

2.3.2redis支持丰富的数据类型

redis支持String(字符串)、List(列表)、Hash(散列)、Set(无序集合)及Sorted Set(有序集合)等数据类型操作。key-value数据结构。

2.3.3支持数据的持久化

可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

2.3.4Redis 所有操作都是原子性的

原子性:Redis 所有操作都是原子性的

2.3.5支持数据备份

即master-slave模式的数据备份。

Redis作为基于内存运行的数据库,是一个高性能的缓存,一般应用在Session缓存、队列、排行榜、计数器、最近最热文章、最近最热评论、发布订阅等。

Redis适用于数据实时性要求高、数据存储有过期和淘汰特征的、不需要持久化或者只需要保证弱一致性、逻辑简单的场景。

2.4Redis为什么这么快?

①redis是一款纯内存结构工作在内存中,避免了磁盘I/O等操作耗时操作

②redis命令处理的核心模块是单线程,减少了锁竞争,以及频繁创建线程和销毁线程的代价,减少了线程上下文切换的消耗

③采用I/O多路复用技术,大大提高并发效率

三、Redis 安装部署

yum install -y   gcc  gcc-c++ make 
#安装工具
cd /opt 
#进入opt目录将软件包上传
tar  zxvf  redis-5.0.7.tar
#解压安装包
cd /opt/redis-5.0.7
#进入解压的文件夹中
make 
#将源代码转换成二进制make install prefix=/usr/local/redis
#安装进硬盘,永久保存在硬盘上 指定安装目录到/usr/local/redis
cd /opt/redis-5.0.7/utils 
#进入到安装目录执行安装脚步
./install_server.sh
#执行安装脚步
Please select the redis port for this instance: [6379]
#第一个是询问设置redis端口不设置直接回车则默认是6379
Please select the redis config file name [/etc/redis/6379.conf]
#第二个询问设置redis主配置文件路径,不设置直接回车则是/etc/redis/6379.conf此文件
Please select the redis log file name [/var/log/redis_6379.log]
#第三个询问设置redis日志文件位置,不设置直接回车是/var/log/redis_6379.log文件
Please select the data directory for this instance [/var/lib/redis/6379]
#第四个询问设置管理redis的RDB文件保存路径不设置直接回车是/var/log/redis_6379.log文件
Please select the redis executable path [/usr/local/bin/redis-server]
#第五个设置redis执行文件路径redis-cli等若设置则直接填写,比如设置为/usr/local/redis/bin/redis-server。
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
#询问是否配置完成确认安装,回车表示配置完成确认安装,Ctrl-C终止安装
netstat  -antp |grep redis
#安装完成后redis是自动启动的。查询是否有redis进程有则安装成功
ln -s /usr/local/redis/bin/* /usr/local/bin/
#把redis的可执行程序文件放入路径环境变量的目录中便于系统识别即可以在任何位置使用此文件内命令

3.1关闭防火墙并下载依赖环境

[root@localhost ~]#yum install gcc gcc-c++ make -y

3.2解压软件包

进入opt目录将软件包上传

由于Redis源码包中直接提供了 Makefile 文件,所以在解压完软件包后,不用先执行 ./configure 进行配置,可直接执行 make 与 make install 命令进行安装。

3.3make编译

将源代码转换成二进制

3.4安装到指定目录/usr/local/redis

[root@localhost redis-5.0.7]#make install prefix=/usr/local/redis

3.5执行软件包提供的脚本文件

redis安装成功

Selected config:
Port           : 6379                                #默认侦听端口为6379
Config file    : /etc/redis/6379.conf                #配置文件路径
Log file       : /var/log/redis_6379.log            #日志文件路径
Data dir       : /var/lib/redis/6379                #数据文件路径
Executable     : /usr/local/redis/bin/redis-server    #可执行文件路径
Cli Executable : /usr/local/bin/redis-cli            #客户端命令工具

3.6做软链接

把redis的可执行程序文件放入路径环境变量的目录中便于系统识别即可以在任何位置使用此文件内命令

[root@localhost utils]#ln -s /usr/local/redis/bin/* /usr/local/bin/

3.7过滤端口

#当 install_server.sh 脚本运行完毕,Redis 服务就已经启动,默认监听端口为 6379
netstat -natp | grep redis

3.8Redis 服务控制

/etc/init.d/redis_6379 stop               #停止
/etc/init.d/redis_6379 start              #启动
/etc/init.d/redis_6379 restart            #重启
/etc/init.d/redis_6379 status             #查看状态

3.9进入配置文件添加监听主机

vim /etc/redis/6379.conf

 /etc/redis/6379.conf 相关参数解读如下:

#修改配置 /etc/redis/6379.conf 相关参数解读

bind 127.0.0.1 192.168.10.23				#70行,添加 监听的主机地址
port 6379									#93行,Redis默认的监听端口
daemonize yes								#137行,启用守护进程
pidfile /var/run/redis_6379.pid				#159行,指定 PID 文件
loglevel notice								#167行,日志级别
logfile /var/log/redis_6379.log				#172行,指定日志文件

3.10重启服务

[root@localhost utils]#pwd
/opt/redis-5.0.7/utils
[root@localhost utils]#/etc/init.d/redis_6379 restart

四、Redis 命令工具

  • redis-server:用于启动 Redis 的工具
  • redis-benchmark:用于检测 Redis 在本机的运行效率
  • redis-check-aof:修复 AOF 持久化文件
  • redis-check-rdb:修复 RDB 持久化文件
  • redis-cli:Redis 命令行工具

4.1redis-cli 命令行工具

语法:redis-cli -h host -p port -a password
-h :指定远程主机
-p :指定 Redis 服务的端口号
-a :指定密码,未设置数据库密码可以省略-a 选项
若不添加任何选项表示,则使用 127.0.0.1:6379 连接本机上的 Redis 数据库

redis-cli -h 192.168.246.8 -p 6379      #登录指定主机redis
redis-cli                               #登录本机redis

4.2redis-benchmark测试工具

redis-benchmark 是官方自带的 Redis 性能测试工具,可以有效的测试 Redis 服务的性能。

 基本的测试语法:redis-benchmark [选项] [选项值]

选项  

-h :指定服务器主机名。
-p :指定服务器端口。
-s :指定服务器 socket
-c :指定并发连接数
-n :指定请求数。
-d :以字节的形式指定 SET/GET 值的数据大小。
-k :1=keep alive 0=reconnect 。
-r :SET/GET/INCR 使用随机 key, SADD 使用随机值。
-P :通过管道传输<numreq>请求。
-q :强制退出 redis。仅显示 query/sec 值。
--csv :以 CSV 格式输出。
-l :生成循环,永久执行测试。
-t :仅运行以逗号分隔的测试命令列表。
-I (大写):Idle 模式。仅打开 N 个 idle 连接并等待

#向 IP 地址为 192.168.246.8 端口为 6379 的 Redis 服务器发送 100 个并发连接与 100000 个请求测试性能

redis-benchmark -h 192.168.246.8 -p 6379 -c 100 -n 100000

​#测试存取大小为100字节的数据包的性能
redis-benchmark -h 192.168.246.8 -p 6379 -q -d 100#测试本机上Redis服务在进行 set与1push操作时的性能
redis-benchmark -t set,lpush -n 100000 -q

#测试本机上 Redis 服务在进行 set 与 lpush 操作时的性能
redis-benchmark -t set,lpush -n 100000 -q

五、Redis数据库五大类型

5.1String

String是 redis 最基本的类型,最大能存储 512MB 的数据,String类型是二进制安全的,即可以存储任何数据、比如数字、图片、序列化对象等。默认是此数据类型

5.2List

列表的元素类型为string,按照插入顺序排序,在列表的头部或尾部添加元素

5.3Hash(散列类型)

hash用于存储对象,可以采用这样的命名方式(hash格式):对象类别和ID构成键名,使用字段表示对象的属性,而字段值则存储属性值。

5.4set无序集合

元素类型为string类型,元素具有唯一性, 不允许存在重复的成员。多个集合类型之间可以进行并集、交集和差集运算

5.5 sorted set

a、有序集合,元素类型为Sting,元素具有唯一性, 不能重复。b、每个元素都会关联–个double类型的分数score(表示权重),可以通过权重的大小排序,元素的score可以相同。

六、Redis 数据库常用命令

set:存放数据,命令格式为 set key value
get:获取数据,命令格式为 get key不区分大小写

6.1set 与get 的使用

①查看数据库中键的情况

 keys    命令可以取符合规则的键值列表,通常情况可以结合*、?等选项来使用。exists  命令可以判断键值是否存在。del     命令可以删除当前数据库的指定 key。type    命令可以获取 key 对应的 value 值类型。

6.1 keys 命令

可以取符合规则的键值列表,通常情况可以结合*、?等选项来使用

6.2 exists 命令

可以判断键值是否存在

 6.3 del 命令

可以删除当前数据库的指定 key

del 键名

6.4 type 命令

可以获取key对应的value值类型

type 键名

②rename 命令 是对已有 key 进行重命名(覆盖)

命令格式:rename 源key 目标key

使用rename命令进行重命名时,无论目标key是否存在都进行重命名,且源key的值会覆盖目标key的值。在实际使用过程中,建议先用 exists 命令查看目标 key 是否存在,然后再决定是否执行 rename 命令,以避免覆盖重要数据

③renamenx 命令

的作用是对已有 key 进行重命名,并检测新名是否存在,如果目标 key 存在则不进行重命名。(不覆盖)

命令格式:renamenx 源key 目标key

④dbsize 命令的作用是查看当前数据库中 key 的数目

127.0.0.1:6379> dbsize


#使用config set requirepass yourpassword命令设置密码
127.0.0.1:6379> config set requirepass 123456

#使用config get requirepass命令查看密码(一旦设置密码,必须先验证通过密码,否则所有操作不可用)
127.0.0.1:6379> auth 123456
127.0.0.1:6379> config get requirepass


---- Redis 多数据库常用命令 ----
Redis 支持多数据库,Redis 默认情况下包含 16 个数据库,数据库名称是用数字 0-15 来依次命名的。
多数据库相互独立,互不干扰。

#多数据库间切换
命令格式:select 序号
使用 redis-cli 连接 Redis 数据库后,默认使用的是序号为 0 的数据库。

127.0.0.1:6379> select 10            #切换至序号为 10 的数据库

127.0.0.1:6379[10]> select 15        #切换至序号为 15 的数据库

127.0.0.1:6379[15]> select 0            #切换至序号为 0 的数据库

#多数据库间移动数据
格式:move 键值 序号

127.0.0.1:6379> set k1 100
OK
127.0.0.1:6379> get k1
"100"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> get k1
(nil)
127.0.0.1:6379[1]> select 0            #切换至目标数据库 0
OK
127.0.0.1:6379> get k1                #查看目标数据是否存在
"100"
127.0.0.1:6379> move k1 1            #将数据库 0 中 k1 移动到数据库 1 中
(integer) 1
127.0.0.1:6379> select 1                #切换至目标数据库 1
OK
127.0.0.1:6379[1]> get k1            #查看被移动数据
"100"
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> get k1                #在数据库 0 中无法查看到 k1 的值
(nil)

#清除数据库内数据
FLUSHDB :清空当前数据库数据
FLUSHALL :清空所有数据库的数据,慎用!
 

总结:

1.关系型数据库与非关系型数据库区别

非关系数据库:数据保存在缓存中,利于读取速度/查询数据、架构中位置灵活、分布式、扩展性高

关系数据库:安全性高(持久化)、事务处理能力强、任务控制能力强、做日志备份、恢复、容灾的能力更强一点。

2.redis简介

  • Redis(远程字典服务器)是一个开源的、使用C语言编写的NoSQL数据库即非关系数据库。
  •  Redis 基于内存运行并支持持久化,采用key-value(键值对)的存储形式,是目前分布式架构中不可或缺的一环

3.Redis 具有以下优点

3.1具有极高的数据读写速度

数据读取的速度最高可达到110000次/s,数据写入速度最高可达到81000次/s。

3.2redis支持丰富的数据类型

redis支持String(字符串)、List(列表)、Hash(散列)、Set(无序集合)及Sorted Set(有序集合)等数据类型操作。key-value数据结构。

3.3支持数据的持久化

可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

3.4Redis 所有操作都是原子性的

原子性:Redis 所有操作都是原子性的

3.5支持数据备份

即master-slave模式的数据备份。

Redis作为基于内存运行的数据库,是一个高性能的缓存,一般应用在Session缓存、队列、排行榜、计数器、最近最热文章、最近最热评论、发布订阅等。

Redis适用于数据实时性要求高、数据存储有过期和淘汰特征的、不需要持久化或者只需要保证弱一致性、逻辑简单的场景。

4.Redis为什么这么快?

①redis是一款纯内存结构工作在内存中,避免了磁盘I/O等操作耗时操作

②redis命令处理的核心模块是单线程,减少了锁竞争,以及频繁创建线程和销毁线程的代价,减少了线程上下文切换的消耗

③采用I/O多路复用技术,大大提高并发效率

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1033367.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年最受欢迎的 19 个 VS Code 主题排行榜

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

四川古力未来科技抖音小店:把握电商新风口,前景无限广阔

在数字化浪潮席卷全球的今天&#xff0c;电商行业以其独特的魅力和无限潜力&#xff0c;成为了众多创业者和投资者关注的焦点。四川古力未来科技抖音小店&#xff0c;正是站在这一风口浪尖上的新兴力量&#xff0c;其前景之广阔&#xff0c;令人瞩目。 抖音&#xff0c;作为一款…

[Python人工智能] 四十五.命名实体识别 (6)利用keras构建CNN-BiLSTM-ATT-CRF实体识别模型(注意力问题探讨)

从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前文讲解融合Bert的实体识别研究,使用bert4keras和kears包来构建Bert+BiLSTM-CRF模型。这篇文章将详细结合如何利用keras和tensorflow构建基于注意力机制的CNN-BiLSTM-ATT-CRF模型,并实现中文实体识别…

RWKV_Pytorch:支持多硬件适配的开源大语言模型推理框架

亲爱的技术探索者们&#xff0c;今天我要向大家隆重推荐一个在开源社区中崭露头角的项目——RWKV_Pytorch。这是一个基于Pytorch的RWKV大语言模型推理框架&#xff0c;它不仅具备高效的原生Pytorch实现&#xff0c;而且还扩展了对多种硬件的适配支持&#xff0c;让模型的部署和…

Ubuntu joystick 测试手柄 xbox

Ubuntu joystick 测试手柄 xbox 测试使用Ubuntu20.04 测试环境在工控机 安装测试 实际测试使用的手柄是北通阿修罗2pro 兼容xbox Ubuntu20.04主机 连接手柄或者无线接收器后查看是否已经检测到&#xff1a; ls /dev/input找到输入中的 js0 即为手柄输入 需要安装joysti…

数据可视化为什么能在智慧港口中发挥作用?

随着全球贸易活动日益频繁&#xff0c;港口作为国际贸易的重要节点&#xff0c;其运营效率与智能化程度直接影响着整个物流链的效能。在此背景下&#xff0c;智慧港口的概念应运而生&#xff0c;它借助先进的信息技术手段对传统港口进行改造升级&#xff0c;其中&#xff0c;数…

HarmonyOS 应用开发之任务(Mission)管理场景介绍

任务&#xff08;Mission&#xff09;管理相关的基本概念如下&#xff1a; AbilityRecord&#xff1a;系统服务侧管理一个UIAbility实例的最小单元&#xff0c;对应一个应用侧的UIAbility组件实例。系统服务侧管理UIAbility实例数量上限为512个。MissionRecord&#xff1a;任务…

物联网学习2、MQTT 发布/订阅模式介绍

MQTT 发布/订阅模式 发布订阅模式&#xff08;Publish-Subscribe Pattern&#xff09;是一种消息传递模式&#xff0c;它将发送消息的客户端&#xff08;发布者&#xff09;与接收消息的客户端&#xff08;订阅者&#xff09;解耦&#xff0c;使得两者不需要建立直接的联系也不…

Kubernetes(K8S)学习(四):K8S之Storage

K8S之Storage 一、Storage1.1、Volume1.2、PersistentVolume&#xff08;PV&#xff09;1.3、PersistentVolumeClaim&#xff08;PVC&#xff09;1.4、StorageClass1.5、PV的状态和回收策略 kubernetes使用NFS共享存储有两种方式&#xff1a; &#xff08;1&#xff09;手动方式…

Spring——框架介绍

每一个Java技术中都会存在一个“核心对象”&#xff0c;这个核心对象来完成主要任务为了得到核心对象&#xff0c;需要创建若干个辅助对象&#xff0c;从而导致开发步骤增加JDBC中 JDBC 核心对象——PreparedStatement 通过DriverManager得到数据库厂商提供的Driver对象DriverM…

如何在Win10部署Oracle数据库并实现无公网IP使用PL SQL远程访问

文章目录 前言1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射 3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程Oracle 前言 Oracle&#xff0c;是甲骨文公司的一款关系…

Vivado VIO IP核(Virtual Input/Output)的使用

前言 在Aurora通信工程中&#xff0c;有一个专门产生Aurora数据包的模块&#xff0c;该模块在Aurora ip准备好后会自动根据计数器产生发送的数据包。 但现在希望能实时地控制数据包的发送以及中断&#xff0c;这时候可以采用vivado的vio ip核处理。 VIO IP 调用VIO IP核可以…

MySQL主从复制与读写分离(重要!)

目录 引言 一、主从复制 1.1 MySQL主从复制原理 1.1.1 为什么进行复制&#xff1f; 1.1.2 谁复制谁&#xff1f; 1.1.3 数据放在什么地方&#xff1f; 1.1.4 MySQL主从版本问题 1.2 MySQL的复制类型 1.3 MySQL主从复制的工作过程 1.4 MySQL主从复制延迟原因 1.5 MyS…

云原生(七)、Kubernetes初学 + 裸机搭建k8s集群

Kubernetes简介 Kubernetes&#xff08;通常简称为K8s&#xff09;是一个开源的容器编排平台&#xff0c;最初由Google设计和开发&#xff0c;现在由Cloud Native Computing Foundation&#xff08;CNCF&#xff09;维护。它旨在简化容器化应用程序的部署、扩展和管理。 Kube…

[GN] Spring Security 和 SHiro的配置使用

文章目录 SHiroSpring Security SHiro Shrio安全框架更灵活和简单&#xff0c;代码易读使用简单 但授权第三方登录需要手动实现 配置shrio的核心内容 安全管理器 realm Configuration public class ShiroConfig {//0.配置shrioFilterBean("shiroFilter")public Sh…

什么是跨域问题,SpringBoot如何解决?

目录 什么是跨域&#xff1f;如何解决跨域问题&#xff1f;JSONP (JSON with Padding)CORS(跨源资源共享)CrossOrigin注解实现WebMvcConfigurer addCorsMappingsCorsFilter 代理服务器反向代理(推荐) 什么是跨域&#xff1f; 跨域是指浏览器为了安全性&#xff0c;设定的一种同…

蓝桥杯第八届c++大学B组详解

目录 1.购物单 2.等差素数列 3.承压计算 4.方格分割 5.日期问题 6.包子凑数 7.全球变暖 8.k倍区间 1.购物单 题目解析&#xff1a;就是将折扣字符串转化为数字&#xff0c;进行相加求和。 #include<iostream> #include<string> #include<cmath> usin…

【Java面试题系列】基础篇

目录 基本常识标识符的命名规则八种基本数据类型的大小&#xff0c;以及他们的封装类3*0.10.3返回值是什么short s1 1; s1 s1 1;有什么错? short s1 1; s1 1;有什么错?简述&&与&的区别&#xff1f;简述break与continue、return的区别&#xff1f;Arrays类的…

常见的三维建模软件有哪些?

云端地球是一款免费的在线实景三维建模软件&#xff0c;不需要复杂的技巧&#xff0c;只要需要手机&#xff0c;多拍几张照片&#xff0c;就可以得到完整的三维模型&#xff01; 无论是大场景倾斜摄影测量还是小场景、小物体建模&#xff0c;都可以通过云端地球将二维数据向三…

宝塔面板 -- 打包前端项目并部署提升访问速度

文章目录 前言一、打包前端项目二、添加PHP项目三、部署打包文件四、开通防火墙五、运行网站总结 前言 在前面写到的文章使用宝塔面板部署前端项目中&#xff0c;并没有将前端项目打包而是直接部署&#xff0c;导致网站访问速度非常慢&#xff0c;加载甚至要十几秒。因此&…