环境
所使用的系统为Ubuntu系统,Redis所安装版本为5.0.3,当前redis已可以正常启动,并且已经开启rdb文件备份和aof日志备份。
查看当前数据库的key的数量
dbsize
后台进程重写AOF
bgrewriteaof
后台保存rdb快照
bgsave
保存rdb快照
save
在rdb保存完成之前,当前进程为阻塞状态
后台进程重写AOF
bgrewriteaof
查看上次保存时间
lastsave
清空服务器
flushdb
flushdb
获取服务器信息
info 后边添加更加详细的参数
info clients
info stats
主从同步
sync
flushdb或flushall的恢复策略
注:如果进行flush操作之后,aof已经进行了重写,导致aof文件为空,那么是无法恢复的.
shutdown nosave #不保存当前命令进aof文件,进行关机
vi appendonly.aof #需要找到shutdown命令所在,并将它删除即可
./bin/redis-server redis.conf #然后进行重启
在aof恢复文件中,一个完整的命令从*开始,由于flushdb命令比较短,所以只占三行。
两个redis服务器的同步操作
由于rdb文件是需要满足一定条件才会进行保存,所以会丢失一部分数据,建议通过aof文件进行同步。如果想两个服务器的数据一直同步,可以将两个服务器设为集群。
1.通过aof文件同步
cp redis.conf redis6380.conf
vi redis6380.conf #将6380端口的aof文件名字改为新的文件名
cp appendonly.aof appendonly6380.aof
./bin/redis-server ./redis6380.conf
./bin/redis-cli -p 6380 #进入6380的客户端
2.通过rdb文件同步
由于rdb和aof同时存在的时候,会自动通过aof进行同步,所以需要首先关闭aof同步
vi redis6380.conf #修改下边的配置文件
appendonly no #是否打开aof日志功能
./bin/redis-cli #进入6379的客户端
save #手动进行rdb文件的保存
shutdown nosave
cp dump.rdb dump6380.rdb
./bin/redis-server ./redis6380.conf
redis服务器集群的配置
slave服务器为master提供服务,能够分担master的负担
redis集群主要分为线型和星型,线型的好处是master宕机之后,可以切换到slave1,如果slaver2宕机,可以切换到slave2。这里所使用的星型
1.复制配置文件
因为redis的启动是基于配置文件的启动,所以仅需要对配置文件进行修改即可
cp redis.conf redis6380.conf
2.修改配置文件
vim redis6380.conf #修改pid文件 port salveof
port 6380 #修改端口号
pidfile /var/run/redis_6380.pid #修改pid文件
replicaof localhost 6379 #将它作为谁的复制
3.对原配置文件进行修改
由于有了从服务器,则只打开aof即可,因为rdb比较耗费资源,可以将这一任务转交给从服务器。
vim redis.conf #禁用rdb选项
# save 900 1
# save 300 10
# save 60 10000
4.制作启动脚本
vi startRedis-cluster.sh #制作启动脚本
chmod +x startRedis-cluster.sh #添加执行权限
手工修改slave为master服务器
1.修改要作为master服务器的配置
info Replication #查看配置
slaveof no one #修改为master
config set slave-read-only no #修改为可写
2.修改其他slave服务器的配置
slaveof localhost 6380 #将前一个slave置为master
使用sentinel实现主从服务器的切换、
1.环境介绍
6379端口的为主服务器,6380和6381端口的为从服务器,并且要要添加3个哨兵,来观察6379端口所运行的主服务器的状况。
2.修改配置文件(以6379和6380的配置文件为例)
6379所需改动:
cp sentinel.conf ../../redis-cluster/ #将源码包下边的配置文件复制到集群文件夹下边
vi sentinel.conf #修改sentinel的配置文件
daemonize yes #改为后台启动
sentinel monitor mymaster 127.0.0.1 6379 2
# sentinel monitor <master-name> <ip> <redis-port> <quorum>
# master-name:为这个哨兵起一个名字,在这个配置文件保持一致
# quorum :quorum个哨兵发现主服务器宕机之后,进行切换
6380所需修改:
cp sentinel.conf sentinel6380.conf
vi redis6380.conf #对候选master的配置文件进行改动
port 26380 #修改端口
pidfile "/var/run/redis-sentinel6380.pid" #修改pid文件
sentinel myid be4051e6b19fc3b507df8b8fd4493c5517b90e7c
#修改id的值,以免跟6379端口的值重复
3.启动三个哨兵
./bin/redis-sentinel ./sentinel.conf
./bin/redis-sentinel ./sentinel6380.conf
./bin/redis-sentinel ./sentinel6381.conf
也可以制作启动脚本具体步骤跟集群脚本的制作过程一样
3.想设置那个从服务器的第一候选,则修改它的redis.conf
vi redis6380.conf
replica-priority 10 #设置优先级,优先级越小则越靠前,如果设置为0,则永远不会升为主站
官方文档参考:官方提供sentinel文档