redis的使用(2)

目录

1.redis的持久化

(1)什么是持久化?

(2)持久化的好处

(3)redis持久化的方式 

 2.RDB的持久化方式

(1)什么时候会触发RDB. ----默认dump.rdb

(2) save和bgsave的区别

(3) 通过配置文件来触发RDB ----- bgsave命令 

(4) 恢复数据 

(5) rdb持久化方式的优缺点 

3. AOF持久化方式

(1)AOF默认是没有开启。需要配置手动开启。

(2) 什么时候会触发aof 

(3) aof的优缺点

4. redis的集群 

(1) redis主从关系

(2) 如何搭建主从关系

(3) 搭建主从的关系 

(4)搭建哨兵模式 

 (5)redis集群搭建---去中心化

1.redis的持久化

(1)什么是持久化?

 把内存中的数据持久化到磁盘。这个过程就是持久化。 当redis启动时会从磁盘上读取数据并加载到内存。

(2)持久化的好处

Redis作为分布式缓存架构中重要的一环,用于保存一些较为重要的数据,抗住系统的高并发访问。因此Redis中的数据必须持久化,防止服务或系统宕机导致数据丢失。

(3)redis持久化的方式 

1. RDB: 以快照的方式进行持久化。 在一定时间间隔内进行快照。把数据进行保存到磁盘。 
2. AOF: 会把每次对redis的写操作命令追加到一个日志尾,当redis启动时则把该日志中的命令执行一遍.

 2.RDB的持久化方式

(1)什么时候会触发RDB. ----默认dump.rdb

1. save命令
2. bgsave命令
3. 配置redis配置文件。

(2) save和bgsave的区别

该命令会阻塞当前Redis服务器,执行save命令期间,Redis不能处理其他命令,直到RDB过程完成为止。执行完成时候如果存在老的RDB文件,就把新的替代掉旧的。我们的客户端可能都是几万或者是几十万,这种方式显然不可取。

bgsave执行该命令时,Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求。

(3) 通过配置文件来触发RDB ----- bgsave命令 

redis的使用(2)

(4) 恢复数据 

可以把dump.rdb放入到redis启动目录下。 当redis再次被启动时则会加载该数据。

(5) rdb持久化方式的优缺点 

优点:

(1)RDB文件紧凑,全量备份,非常适合用于进行备份和灾难恢复。
(2)bgsave生成RDB文件的时候,redis主进程会fork()一个子进程来处理所有保存工作,主进程不需要进行任何磁盘IO操作。
(3)RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快。

缺点:

快照持久化期间修改的数据不会被保存,可能丢失数据。数据完整性比较差。

3. AOF持久化方式

 提供一种更加高效的方式AOF,工作机制很简单,redis会将每一个收到的写命令都通过write函数追加到文件中。通俗的理解就是日志记录。

(1)AOF默认是没有开启。需要配置手动开启。

redis的使用(2)

(2) 什么时候会触发aof 

redis的使用(2)

当进行写操作则会把写的命令放入appendonly.aof 

redis的使用(2)

(3) aof的优缺点

优点:

(1)AOF可以更好的保护数据不丢失,一般AOF会每隔1秒,通过一个后台线程执行一次fsync操作,最多丢失1秒钟的数据。
(2)AOF日志文件没有任何磁盘寻址的开销,写入性能非常高,文件不容易破损。
(3)AOF日志文件即使过大的时候,出现后台重写操作,也不会影响客户端的读写。

缺点:

(1)对于同一份数据来说,AOF日志文件通常比RDB数据快照文件更大.
 (2) 恢复数据时时间要比快照模式慢很多。 

4. redis的集群 

(1) redis主从关系

redis的使用(2)

(2) 如何搭建主从关系

 准备三台机器 (1 主节点   2 从节点) 为了节省资源 在一个虚拟机上启动三台redis 只是他们的端口号不同。

(3) 搭建主从的关系 

1.配从不配主
(1)配置redis配置文件 6380(主)  6381(从)  6382(从)
(2)修改rdb持久化文件的路径以及端口

分别为80 81 82 

redis的使用(2)

分别连接不同的redis服务

redis的使用(2)

上面三个redis服务之间是没有任何主从关系。

可以通过以下命令设置 81 82 跟随80混 

redis的使用(2)

输入上面命令后再查询某个节点的关系时 会出现如下结果

redis的使用(2)

通过测试我们知道 主节点可以负责读写操作,但是从节点只能负责读操作。

思考:

如果主节点宕机了,那么从节点会不会上位。还是等待老大的归来。[等待老大归来]

如果新增一个从节点,该从节点会从当前增加的不会添加数据还是会和所有节点数据同步?【同步】

主从关系的缺点: 

  • Redis不具备自动容错和恢复功能,主机从机的宕机都会导致前端部分读写请求失败,需要等待机器重启或者手动切换前端的IP才能恢复
  • 主机宕机,宕机前有部分数据未能及时同步到从机,切换IP后还会引入数据不一致的问题,降低了系统的可用性

(4)搭建哨兵模式 

如何设置哨兵模式

redis的使用(2)

redis的使用(2)

启动哨兵

redis-sentinel sentinel.conf

测试让80宕机 shutdown

redis的使用(2)

redis的使用(2)

思考:

如果80回来了,老大会是谁?(答案如下图)

redis的使用(2)

 (5)redis集群搭建---去中心化

redis的使用(2)

配置三主三从

1. 8001 8002 
2. 7001 7002
3. 9001 9002

port 8001
bind 0.0.0.0
daemonize yes
appendonly yes  必须有aof持久化
# 开启集群
cluster-enabled yes             833行
# 集群的配置文件,该文件自动生成   
cluster-config-file nodes-8001.conf  841行
# 集群的超时时间
cluster-node-timeout 5000         847行

 其他上面这些端口号的redis

redis的使用(2)

为上面这些redis分配主从关系以及槽。

#主节点后只有一个从节点
redis-cli --cluster create --cluster-replicas 1 192.168.223.128:7001 192.168.223.128:8001 192.168.223.128:9001  192.168.223.128:7002  192.168.223.128:8002 192.168.223.128:9002

==必须保证aof开启,保证redis中没有数据。==

客户端访问:

redis-cli -c -h 127.0.0.1 -p 8001

上一篇:RocketMQ中的角色解释


下一篇:pytest--allure-pytest