之前写了 CentOS 7 安装 Redis,今天说说 Redis 的持久化和主从配置。
Redis持久化
Redis 有两种持久化方式,RDB 和 AOF。RDB 是将 Redis 的内存状态保存到磁盘,也就是所谓的快照。AOF 保存对 Redis 的写命令(如set、sadd、rpush)来记录数据库状态的,即保存对 Redis数据库的写操作。
Redis 默认开启RDB,在配置文件中可以配置自动保存条件,默认如下
# 服务器在900秒之内被修改了1次
save 900 1
# 服务器在300秒之内被修改了10次
save 300 10
# 服务器在60秒之内被修改了10000次
save 60 10000
只要满足其中一个条件,服务器就会执行 BGSAVE 命令进行快照持久化
开启 AOF 持久化,在配置文件中找到 appendonly,设置为 yes,以下是 AOF 相关的配置
#AOF 和 RDB 持久化方式可以同时启动并且无冲突。
#如果AOF开启,启动redis时会加载aof文件,这些文件能够提供更好的保证。
appendonly yes
# 只增文件的文件名称。(默认是appendonly.aof)
# appendfilename appendonly.aof
#redis支持三种不同的写入方式:
#
# no:不调用,之等待操作系统来清空缓冲区当操作系统要输出数据时。很快。
# always: 每次更新数据都写入仅增日志文件。慢,但是最安全。
# everysec: 每秒调用一次。折中。
appendfsync everysec
# 设置为yes表示rewrite期间对新写操作不fsync,暂时存在内存中,等rewrite完成后再写入.官方文档建议如果你有特殊的情况可以配置为'yes'。但是配置为'no'是最为安全的选择。
no-appendfsync-on-rewrite no
# 自动重写只增文件。
# redis可以自动盲从的调用‘BGREWRITEAOF’来重写日志文件,如果日志文件增长了指定的百分比。
# 当前AOF文件大小是上次日志重写得到AOF文件大小的二倍时,自动启动新的日志重写过程。
auto-aof-rewrite-percentage 100
# 当前AOF文件启动新的日志重写过程的最小值,避免刚刚启动Reids时由于文件尺寸较小导致频繁的重写。
auto-aof-rewrite-min-size 64mb
Redis 主从配置
Redis 的主从配置是在从服务器配置的,只需要在从服务器的配置文件中指定主服务器的ip和端口号。
Redis 5.0.0版本前,使用 SLAVEOF 作为复制命令,但是从 5.0.0开始 SLAVEOF 改为了 REPLICAOF。以 Redis3.0.503为例
slaveof 127.0.0.1 6379
前面写过一篇 Windows包管理器Chocolatey ,在 windows 10 中使用下面的命令安装 redis
choco install redis-64
安装完后,打开console,执行下面的命令启动主服务器
redis-server
新打开一个console,输入下面的命令启动从服务器,端口号为 6380,并指定主服务器为 127.0.0.1 6379
redis-server --port 6380 --slaveof 127.0.0.1 6379
主服务器打印如下信息
redis-cli 登录主服务器,设置 name chengxulvtu
redis-cli -h 127.0.0.1 -p 6380 登录从服务器,查看 name