Redis持久化
1、Rdb方式
Redis默认的方式,redis通过快照来将数据持久化到磁盘中。
(1)设置持久化快照的条件:在redis.conf中修改持久化快照的条件,如下:
图表示的意思:900秒内操作1次或者300秒内操作10次或者60秒内操作10000次,将数据写到磁盘
(2)持久化文件存储的目录:在redis.conf中可以指定持久化文件存储的目录
(3)Rdb问题
一旦redis非法关闭,那么会丢失最后一次持久化之后的数据。如果数据不重要,则不必要关心。如果数据不能允许丢失,那么要使用aof方式。实际项目开发中两种方式同时使用。
2、Aof方式
Redis默认是不使用该方式持久化的。Aof方式的持久化,是操作一次redis数据库,则将操作的记录存储到aof持久化文件中。
(1)开启aof方式的持久化方案
将redis.conf中的appendonly改为yes,即开启aof方式的持久化方案
(2)Aof文件存储的名称
Aof文件存储的目录和rdb方式的一样。
(3)结论
在使用aof和rdb方式时,如果redis重启,则数据从aof文件加载。
Redis的主从复制
1、什么是主从复制
持久化保证了即使redis服务重启也不会丢失数据,因为redis服务重启后会将硬盘上持久化的数据恢复到内存中,但是当redis服务器的硬盘损坏了可能会导致数据丢失,如果通过redis的主从复制机制就可以避免这种单点故障,如下图:
说明:
(1)主redis中的数据有两个副本(replication)即从redis1和从redis2,即使一台redis服务器宕机其它两台redis服务也可以继续提供服务。
(2)主redis中的数据和从redis上的数据保持实时同步,当主redis写入数据时通过主从复制机制会复制到两个从redis服务上。
(3)只有一个主redis,可以有多个从redis。
(4)主从复制不会阻塞master,在同步数据时,master 可以继续处理client 请求。
(5)一个redis可以即是主又是从,如下图:
2、主从复制设置
主机无需配置
从机配置
这里在一台机器上有两个bin文件,模拟两台机器
(1)复制出一个从机
[hadoop@mini01 redis]$ cp bin/ bin2 –r
(2)修改从机的redis.conf
语法:Slaveof masterip masterport
(3)修改从机的port地址为6380(在redis.conf中修改)