redis哨兵模式增加密码认证
------------服务器端修改---------------
1、首选找到各个节点的redis.conf
打开文件内找到这一行
#requirepass 后面写密码
改成
requirepass 你自己的密码
2、然后修改 多个节点下的sentinel.conf
# 当在Redis实例中开启了requirepass foobared 授权密码 这样所有连接Redis实例的客户端都要提供密码
# 设置哨兵sentinel 连接主从的密码 注意必须为主从设置一样的验证密码
# sentinel auth-pass <master-name> <password>
sentinel auth-pass mymaster 密码
3、关闭Redis
进入redis-cli
save
shutdown
ps -ef | grep sentinel
kill sentinel的进程号。
4、重启
在redis安装目录执行
先启动master,后启动slave。
cd /usr/redis/redis-3.2.8/src/ ./redis-server /home/redis/6379/redis.conf ./redis-server /home/redis/6380/redis.conf ./redis-server /home/redis/6381/redis.conf #然后执行 ./redis-sentinel /home/redis/6379/sentinel.conf ./redis-sentinel /home/redis/6380/sentinel.conf ./redis-sentinel /home/redis/6381/sentinel.conf
------------java代码的修改----------------
//连接池配置 JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxTotal(10); jedisPoolConfig.setMaxIdle(5); jedisPoolConfig.setMinIdle(5); //哨兵信息 Set<String> sentinels = new HashSet<String>(Arrays.asList( "192.168.11.128:26379", "192.168.11.129:26379", "192.168.11.130:26379" )); //创建连接池 //mymaster是我们配置给哨兵的服务名称 //sentinels是哨兵信息 //jedisPoolConfig是连接池配置 //abcdefg是连接Redis服务器的密码 //new JedisSentinelPool("mymaster", sentinels, jedisPoolConfig);改为下面的代码就行其他的不用动 JedisSentinelPool pool = new JedisSentinelPool("mymaster", sentinels, jedisPoolConfig, "abcdefg");