zoukankan      html  css  js  c++  java
  • Redis集群的部署

      Redis集群分为主节点Master和从节点Slave,主节点只有1个,而从节点可以有多个,这样从节点和主节点可以进行数据的传输,Redis集群的性能将比单机环境更高,接下来是配置的过程

      首先配置Master节点,主节点的配置和之前Redis单机配置完全一样,并不需要额外的其他任何配置

      然后配置Slave节点,这里使用一台主节点,一台从节点做演示,Slave节点释放安装过程完全一样,redis.conf配置首先保证和之前的配置参数一样,即daemonize要设置为yes、logfile日志位置正确设置,dir数据目录正确设置,然后在这个基础上继续添加下面的配置:

      找到slave-read-only这一项,默认是yes,这里不用修改,是指Slave只能从Master上读数据

      

      然后再找到# slaveof <masterip> <masterport>这个位置,根据提示这里是设置master的ip地址和端口号,slave就是根据这个设置去和master通信的,所以去掉注释设置为:slaveof 192.168.1.14 6379

      

      补充完这些设置,保存并退出redis.conf即可,然后分别手动建立数据目录和日志目录

      这时候执行命令 redis-server redis.conf  就可以启动slave的redis服务了,然后使用 redis-cli  就可以进入redis客户端了

      然后我们输入: keys * 查看所有存在的key,默认情况下因为我们没有添加任何数据,所以应该返回空,但是之前在主节点我们添加过数据,所以在集群环境下会从master读取数据,这里返回并不是空:

      

      到这里最简单的redis集群就算部署完成了,接下来补充一下安装Sentinel这个工具来监控redis集群,Sentinel就是redis自带的一个组件,我们可以在另外一台服务器上重新安装redis和Sentinel监控节点,这里为了简单就直接使用上面这一个Slave节点继续补充安装Sentinel

      在Redis释放安装的目录下,这里是/usr/redis/redis-3.0.7,这下面除了redis.conf之外,还有一个sentinel.conf就是用来配置Sentinel的,执行 vim sentinel.conf  编辑配置文件

      首先在某一位置添加配置:daemonize yes,这个配置是默认没有的,仍然表示Sentinel服务后台运行

      

      然后找到sentinel monitor mymaster 127.0.0.1 6379 2这样的一个默认配置,其中mymater是服务名称127.0.0.1要改成master节点IP,我这里就是:sentinel monitor mymaster 192.168.1.14 6379 1 注意最后的2要改成1,这个表示哨兵的队列,如果多个哨兵,那么可以依次往后排,这里是单哨兵,所以必须改为1,否则故障无法转移;默认sentinel不打印日志,所以建议设置一下日志目录,方面观察集群的变动情况,设置比如:logfile "/usr/redis/sentinel.log" 指定一个日志文件位置即可,具体如下图所示:

      

      配置这些,保存并退出sentinel.conf

      然后使用命令 redis-sentinel sentinel.conf  启动Sentinel服务,

      然后测试服务是否正常,执行命令 redis-cli -h localhost -p 26379 进入监控管理,26379就是Sentinel服务的端口号,在配置文件可以看到

      

      进入管理界面之后,执行: sentinel master mymaster 可以查看master的信息

      

      执行 sentinel slaves mymaster 可以查看slave的信息

      

      到这里,监控服务Sentinel也部署完毕了,生产中可以专门有一台机器用于运行Sentinel和其他redis节点分开

      另外可以扩展上面的sentinel配置至多个,来管理多个redis的集群或者主从,只是服务名不再是mymaster而是多个,比如master1,master2....等,非常简单

      现在可以简单验证故障转移是否好用,在主节点执行 redis-cli -p 6379 shutdown 停止master节点

      这时候查看sentinel.log日志可以看到主节点从14转移到15,可以通过上面的命令查看或者在sentinel节点使用命令: redis-cli -p 26379 info Sentinel 查看管理信息,这时候就会看到主节点变为15,状态仍然是良好,现在如果再次启动14上面的redis,那么会被sentinel重新加入到管理,只是此时变为从节点了

      到这里redis集群故障转移是好用的,下面是常用到的一些命令:

      查看本机redis节点的信息: redis-cli -p 6379 info Replication 如果端口默认,那么可以省略-p参数,作用和上面sentinel看到的类似

      查看远程redis节点信息,比如从主节点查看从节点信息: redis-cli -h 192.168.1.22 -p 26379 info Replication # -h后跟远程ip地址 

      停止远程主机redis服务: redis-cli -p 26379 -h 192.168.1.22 shutdown 

      连接远程客户端redis命令行: redis-cli -p 6379 -h 192.168.1.22 默认端口时-p同样可以省略

  • 相关阅读:
    MySQL没有备份情况下误删除表恢复
    CentOS 6下安装MySQL5.6
    关于mysql占用内存不释放的实验结论
    几种相似性度量(Similarity Measurement)
    几种平均数(Mean function)
    Ansible 多机文件分发、执行脚本并单机合并实验结果(Check point, 多线程异步执行,主机状态检测等)
    nginx-1.11.10 hello world module
    nginx-1.11.10 download, install, start and stop
    U-disk format
    test for cvx library in matlab
  • 原文地址:https://www.cnblogs.com/freeweb/p/5362628.html
Copyright © 2011-2022 走看看