1、下载redis jar包redis-4.0.11.tar.gz放在/data/redis目录下 ,下载地址:http://download.redis.io/releases/
2、解压 命令:tar -zxvf redis-4.0.11.tar.gz
解压后如图所示
3、在/usr/local目录下创建redis_sentinel文件夹
4、将/data/redis目录下解压后的redis文件夹移动到/usr/local/redis_sentinel目录下,
命令 mv /data/redis/redis-4.0.11 /usr/local/redis_sentinel/
5、在/usr/local/redis_sentinel目录下创建6379 6380 6381 sentinel_server四个文件夹
命令 mkdir 6379 6380 6381 sentinel_server
6、进入到redis-4.0.11目录下,命令 make all
将redis-4.0.11/redis.conf文件分别拷贝到6379 6380 6381的目录下,将redis-4.0.11/sentinel.conf文件拷贝到sentinel_server的目录下如
命令:
cp /usr/local/redis_sentinel/redis-4.0.11/redis.conf /usr/local//redis_sentinel/6379/
cp /usr/local/redis_sentinel/redis-4.0.11/redis.conf /usr/local//redis_sentinel/6380/
cp /usr/local/redis_sentinel/redis-4.0.11/redis.conf /usr/local//redis_sentinel/6381/
cp /usr/local/redis_sentinel/redis-4.0.11/sentinel.conf /usr/local//redis_sentinel/sentinel_server/
7、我们将6379作为主服务,编辑6379下的redis.conf文件
daemonize 设置为 yes
protected-mode 设置为no 如果不设置为no,web服务是连接不上的
注释掉bind ip地址,或者设置为0.0.0.0否则远程连接是访问不了的
8、编辑6380下的redis.conf文件
daemonize 设置为 yes;protected-mode 设置为no;注释掉bind ip地址(这三步同上);
另外修改 port为6380
设置当前节点的主节点 slaveof 127.0.0.1 6379
9、编辑6381下的redis.conf文件
daemonize 设置为 yes;protected-mode 设置为no;注释掉bind ip地址(这三步同上);
另外修改 port为6381
设置当前节点的主节点 slaveof 127.0.0.1 6379
编辑sentinel_server下的sentinel.conf文件
10、设置sentinel monitor mymaster 127.0.0.1 6379 1 (mymaster可以随意取,但是下面的需要跟这里一致;如果要在web程序中使用,127.0.0.1必须改为对应的ip地址,否则会连不上)
设置sentinel down-after-milliseconds mymaster 10000 也可以默认不变
添加 daemonize yes
这里默认不变
设置 failover-timeout mymaster 60000
11、启动 6379 6380 6381三个节点服务,如下图所示
12、启动sentinel服务
13、测试哨兵模式:进入6379节点,显示为 主节点;设置aaa 为 111,并且能获取成功
进入6380节点,显示为从节点,可以成功获取aaa的值,但是不能添加值,这就是redis读写分离
进入6381节点,同6380节点一样
现在我们尝试将6379节点shutdown
我们在进入6380节点,发现master已经变成6381节点了
进入6381节点,如下图所示
我们发现 6381节点确实变成主节点,而且可以设置新的值;这就是redis哨兵集群,当主节点down掉之后,会在从节点中选一个作为新的主节点