redis集群(主从复制)

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的配置

你可能感兴趣的:(redis)