redis记录三 RDB AOF,主从复制(读写分离)配置

1、RDB

RDB(Redis DataBase)是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis重启会通过加载dump.rdb文件恢复数据

2、AOF

Redis以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),

只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。

总结:

Redis 需要手动开启AOF持久化方式,AOF 的数据完整性比RDB高,但记录内容多了,会影响数据恢复的效率。

关于Redis持久化的使用:若只打算用Redis 做缓存,可以关闭持久化。若打算使用Redis 的持久化建议RDB和AOF都开启。其实RDB更适合做数据的备份,留一后手。AOF出问题了,还有RDB。

AOF与RDB模式可以同时启用,这并不冲突。如果AOF是可用的,那Redis启动时将自动加载AOF,这个文件能够提供更好的持久性保障。

 

3、主从复制,读写分离

主从复制:主机数据更新后根据配置和策略,自动同步到从机的master/slave机制;

读写分离:主机(Master)以写为主,从机 (Slave)以读为主,因此读写分离;

配置一主二从redis:

(1)复制redis.conf文件分别为  redis6380.conf  redis6382.conf  redis6384.conf; 清空redis6380.conf  redis6382.conf  redis6384.conf三个配置文件的内容,然后复制下面(2)(3)(4)目录中的代码;

(2)配置主服务器 redis6380.conf,文件中加入以下代码:
include /opt/redis-6.0.6/redis.conf
daemonize yes
port 6380
pidfile  /var/run/redis_6380.pid
logfile 6380.log
dbfilename dump6380.rdb


(3)配置第一个从服务器 redis6382.conf,文件中加入以下代码:
include /opt/redis-6.0.6/redis.conf
daemonize yes
port 6382
pidfile  /var/run/redis_6382.pid
logfile 6382.log
dbfilename dump6382.rdb
slaveof 127.0.0.1 6380

(4)配置第二个从服务器 redis6384.conf,文件中加入以下代码:
include /opt/redis-6.0.6/redis.conf
daemonize yes
port 6384
pidfile  /var/run/redis_6384.pid
logfile 6384.log
dbfilename dump6384.rdb
slaveof 127.0.0.1 6380

 

故障处理,若主redis挂掉,可以将从服务器设置成主,然后将另外一台从服务器挂接在新的主上;

(1)slaveof no one,可通过该命令将从服务器设置成新的主;如:127.0.0.1:6382> slaveof no one,将6382声明为主。

(2)slaveof 127.0.0.1  port,通过该命令将另外一台从挂机到新的主上, port代表新的主 端口号。如:127.0.0.1:6384> slaveof 127.0.0.1 6382,将6384设置为6382的从。

 

冷处理:机器都凉透了,所以是冷处理。哈哈。


版权声明:本文为p1i2n3g4原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。