1、Redis集群
1.1、Redis集群
在redis3.0 以前,提供了Sentinel(哨兵)工具来监控个Master的状态,如果Master异常,则会做主从切换,将slave切换为master。当以前的master再次加入的时候,则会当成slave。其配置也是有点复杂,性能也是一般。在redis 3.0版本开始支持集群功能了,并且简单高效。
1.2、Redis集群与基于哨兵的主从复制的区别
Redis2.x版本,是基于哨兵的主从复制,主节点的数据和从节点的数据是一样的。体现不了分布式集群的概念。
在Redis3.0版本开始,提供了集群的实现。至少需要3个master节点。这个集群的实现体现了分布式,数据分布在多个master 节点上。在集群的每个master节点,有对应的槽数,用于存储整个集群数据的一部分数据。
2、Redis集群的搭建(至少需要三个master)
1、启动6台centos,分别打开各自的启动配置文件redis.conf进行修改。命令 vim /usr/local/redis/etc/redis.conf
1.1 daemonize yes 配置后台启动
1.2 #bind127.0.0.1 注销绑定,可以允许所有的ip连接登录到这台redis服务上)
1.3 protected-mode no 关闭保护模式
1.4 dir "/usr/local/redis/etc/" 文件存放路径
1.5 cluster-enabled yes 启动集群模式
1.6 cluster-config-filenodes-6379.conf 用于去获取其他节点的信息
1.7 cluster-node-timeout 5000 集群中的节点能够失联的最大时间
1.8 appendonly yes 数据持久化的aof方式
2、由于Redis的安装需要 ruby命令,所以需要安装ruby
2.1yum install ruby
2.2yum install rubygems
2.3gem install redis
在第三步时可能会遇到问题
使用下面命令进行安装即可
wgethttps://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem
gem install -l ./redis-3.2.1.gem
3、分别启动六台机器上的redis并检查是否启动成功
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf 启动redis
ps -ef | grep 6379 测试端口
4、首先到redis的安装目录下,再执行 redis-trib.rb 的命令
4.1 cd /usr/local/redis/redis-4.0.8/src/
4.2 ./redis-trib.rb create --replicas 1192.168.43.201:6379 192.168.43.64:6379 192.168.43.106:6379 192.168.43.108:6379 192.168.43.180:6379 192.168.43.96:6379
出现上图时,大功告成,三主三从的集群创建成功了
有时会出现下面这样的错误
清空各个节点上的数据,并执行cluster reset指令
3、Redis集群测试
1、登录集群的任意一个节点
/usr/local/redis/bin/redis-cli -c -h 192.168.43.201 -p 6379 登录到192.168.43.201
2、查看集群信息
3、查看集群的节点信息
4、测试数据是不是分布在多个master 节点上
5、测试数据的读取
4、Redis集群停止
多机版:
/usr/local/redis/bin/redis-cli -h 192.168.43.201 -p 6379 shutdwon 关闭节点192.168.43.201
单机版:
在/usr/local/redis/bin(自己的安装目录) 路径下使用 ./redis-cli -p 6379 shutdown 命令关闭即可