您的位置:首页 > 数据库 > Redis

redis集群(主从复制)

2018-01-03 10:55 387 查看

14 redis集群(主从复制)

14.1 集群的优点

1、主从备份 防止主机宕机 丢失数据 无法提供服务
2、读写分离,分担主机的任务
3、任务分离


14.2 集群搭建

1、这里使用同一台机器不同的端口来作集群

192.168.202.136:6379 master
192.168.202.136:6380 slave1
192.168.202.136:6381 slave2

2、redis.conf 文件配置

由于需要使用三个不同端口开启三个redis。因此需要再复制两份redis.conf 分别重命名为:redis6380.conf,redis6381.conf。(当然也可以将redis整个目录复制成两份,这里只是复制redis.conf文件)

cp redis.conf redis6380.conf
cp redis.conf redis6381.conf

3、修改redis6380.conf文件
pidfile /var/run/redis_6380.pid
port 6380
dbfilename dump6380.rdb(这个是为了分担master的压力,也可以不配置)
slaveof 127.0.0.1 6379
slave-read-only yes
4、同上修改redis6381.conf文件
5、测试
5.1 启动服务
./bin/redis-server redis.conf
./bin/redis-server redis6380.conf
./bin/redis-server redis6381.conf
5.2 启动客户端
./bin/redis-cli -h 127.0.0.1 -p 6379
./bin/redis-cli -h 127.0.0.1 -p 6380
./bin/redis-cli -h 127.0.0.1 -p 6381
6、 redis设置密码
6.1、修改redis.conf:
requirepass 123456
6.2、修改redis6380.conf,redis6381.conf:
masterauth 123456
7、手动切换master主机
第一步:master主机 执行shutdown
第二步:slave0主机 执行 slaveof no one 使得该主机变为master
第三步:salve0主机 config set slave-read-only no 使得该主机可写
第四步:salve1主机 slaveof ip port 指向 第二步中主机的地址和端口
8、自动切换master主机,sentinel.conf 配置
第一步:复制两份sentinel.conf,分别为sentinel6380.conf,sentinel6381.conf
sentinel.conf配置说明:
1、sentinel monitor mymaster 127.0.0.1 6379 2
为哨兵起名字为mymaster,并且该哨兵监控的为6379这个redis服务,
2、sentinel down-after-millisenconds mymaster 30000
三十秒钟链接不上,认为宕机
3、sentinel can-failover mymaster yes
4、sentinel parallel-syncs mymaster 1(同时将1台指向master)
5、sentinel failover-timeout mymaster 900000(15分钟没有设置成功则认为失败)
6、redis.conf文件配置作为master的优先级slave-priority 100 (值越小,越优先)
第二步:编辑复制出来的两份sentinel文件,并修改端口


14.3 常用维护命令

1.time
127.0.0.1:6379> time
1) "1514890285"  #秒数
2) "558782       # 微秒数
2.bgrewriteaof
立即重写aof
3.save :手动导出rdb,当前进程
4.lastsave :上次保存rdb时间
5.bgsave :手动导出rdb,后台进程
6.flushall:清空所有db的数据
7.flushdb:清空当前db的数据
8.showlog :
9.info:返回服务器的信息
10.config get key :获取redis.conf中的配置信息
11.config set key value:设置redis.conf中的配置信息


14.4 恢复数据

当flushdb或者flushall后,发现误删,想要恢复数据?
第一步:立即shutdown nosave
第二步:vim aof日志文件 删除flushall或者flushdb命令
第三步:重启redis


14.5 将A服务器上的redis数据 导入到 B服务器上的redis

A服务器:
第一步:执行bgsave
第二步:复制一份rdb文件,提供给B服务器使用(这里需要将,redis-server关闭,否则复制的rdb文件是有问题的)
B服务器:
第一步:检查redis.conf文件中rdb的配置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: