redis的持久化和集群

redis持久化:

1.1 什么是持久化?

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

1.2 持久化的好处

使 redis 宕机后数据不会丢失。

1.3 redis持久化的方式

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

2 RDB的持久化方式。

2.1 savebgsave的区别

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

2.2 通过配置文件来触发RDB ----- bgsave命令

2.3恢复数据

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

2.4 rdb持久化方式的优缺点

优点:

(1RDB文件紧凑,全量备份,非常适合用于进行备份和灾难恢复。

(2bgsave生成RDB文件的时候,redis主进程会fork()一个子进程来处理所有保存工作,主进程不需要进行任何磁盘 IO操作。

3 RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快。
缺点:
(1) 快照持久化期间修改的数据不会被保存,可能丢失数据。数据完整性比较差。

3.AOF持久化方式

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

3.1AOF默认是没有开启。需要配置手动开启。(redis.conf)

3.2 什么时候会触发aof

当进行写操作则会把写的命令放入 appendonly.aof,可以查看里面的信息

3.3 aof的优缺点

优点:

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

缺点:

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

redis的集群 :

1 redis主从关系

2 如何搭建主从关系

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

3 搭建主从的关系

1. 配从不配主
1 )配置 redis 配置文件 6380( ) 6381 (从) 6382 (从)
2 )修改 rdb 持久化文件的路径以及端口
分别连接不同的 redis 服务
检验上面上个 redis 服务之间的关系
上面三个redis 服务之间是没有任何主从关系。
可以通过以下命令设置 81,82 为 80 的从
输入上面命令后再查询某个节点的关系时 会出现如下结果
通过测试我们知道 主节点可以负责读写操作,但是从节点只能负责读操作。
如果主节点宕机了,那么从节点不会上位。还是等待主节点的归来。
如果新增一个从节点,该从节点会会和所有节点数据同步。
主从关系的缺点 :
如果主节点挂掉,则从节点无法上位,导致客户端无法进行写操作了。

4 搭建哨兵模式

如何设置哨兵模式

启动哨兵:
redis-sentinel sentinel.conf
测试让 80 宕机 shutdown

如果80端口重新开启,82接口已成为新的主节点了,那么80端口不会再是主节点,而是一个82接口的从节点。

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

配置三主三从:
1. 7001 7002
2. 8001 8002
3. 9001 9002

对其中的相应变量进行修改:

为上面这些 redis 分配主从关系以及槽:
主节点后只有一个从节点:(前边三个写主,后边三个写从)
redis-cli --cluster create --cluster-replicas 1 192.168.67.129:7001 192.168.67.129:8001
192.168.67.129:9001 192.168.67.129:7002 192.168.67.129:8002 192.168.67.129:9002
==   必须保证 aof 开启,保证 redis 中没有数据。 ==
客户端访问:
redis-cli -c -h 127.0.0.1 -p 7001 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值