1、Redis 安装
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar zxcf redis-5.0.5.tar.gz
cd redis-5.0.5
cd src
make
yum install -y tcl
make test
make install PREFIX=/home/redis-sentinel #指定目录安装,注意 PREFIX 大写
2、配置文件
mkdir /home/redis-sentinel/conf
cp redis.conf /home/redis-sentinel/conf
cd /home/redis-sentinel/conf
vi redis.conf #编辑配置文件
cp redis.conf redis-6380.conf
3、启动redis
./redis-server ../conf/redis.conf
./redis-server ../conf/redis-6380.conf
1、从下载文件中复制sentinel.conf配置文件到安装目录下
2、在配置文件中修改以下内容
此处的
protected-mode :关闭保护模式(默认情况下,redis node和sentinel的protected-mode都是yes,在搭建集群时,若想从远程连接redis集群,需要将redis node和sentinel的protected-mode修改为no,若只修改redis node,从远程连接sentinel后,依然是无法正常使用的,且sentinel的配置文件中没有protected-mode配置项,需要手工添加。依据redis文档的说明,若protected-mode设置为no后,需要增加密码证或是IP限制等保护机制,否则是极度危险的。)
3、将此配置文件再复一份,分别是sentinel-26479.conf
4、分别修改复制配置文件中的端口号
5、启动哨兵
./redis-sentinel ../conf/sentinel.conf
./redis-sentinel ../conf/sentinel-26479.conf
到此哨兵配置就结束了,可以模拟宕机的情况来测试主从切换。
6、如果以上配置出现了错误,就把redis自动生成的代码删掉,再试试。
#删掉以下代码,重试
sentinel myid 82198d08eeae6a1123d935baa4aab0184ff42210
# Generated by CONFIG REWRITE
sentinel config-epoch mymaster 3
sentinel leader-epoch mymaster 3
sentinel known-slave mymaster 172.19.246.6 6379
sentinel known-slave mymaster 172.19.246.5 6379
sentinel known-sentinel mymaster 172.19.246.6 26379 fd6559342c1da75344258efc09027693863b61b6
sentinel known-sentinel mymaster 172.19.246.7 26379 82198d08eeae6a1123d935baa4aab0184ff42210
7.客户端连接测试
redis-cli -h 172.16.4.220 -p 46379 info Sentinel
redis-cli -h 172.16.4.220 -p 46379 SENTINEL get-master-addr-by-name mymaster
1、依赖引入
org.springframework.boot
spring-boot-starter-data-redis
redis.clients
jedis
3.0.1
org.apache.commons
commons-pool2
2.6.2
1、yaml文件的配置
spring.redis.sentinel.master=mymaster #哨兵集群的名称
spring.redis.sentinel.nodes=192.168.1.112:26379,192.168.1.112:26479,192.168.1.112:26579 #哨兵节点
#spring.redis.sentinel.password=123456 如果有密码则设置密码
# 以下配置是org.springframework.boot.autoconfigure.data.redis低版本才有的。。
spring.redis.pool.max-active=50 #最大连接数
spring.redis.pool.max-idle=10 #最大等待连接数
spring.redis.pool.max-wait=10000 #最大等待毫秒数
spring.redis.pool.min-idle=5 #最小等待连接数
spring.redis.timeout=0 #超时时间
# 高版本的连接池的配置,选一个就可以
#spring.redis.jedis.pool.max-active=50
#spring.redis.jedis.pool.max-idle=10
#spring.redis.jedis.pool.max-wait=10000ms
#spring.redis.jedis.pool.min-idle=5
#spring.redis.jedis.timeout=0
spring.redis.lettuce.pool.max-active=50
spring.redis.lettuce.pool.max-wait=10000ms
spring.redis.lettuce.pool.max-idle=8
spring.redis.lettuce.pool.min-idle=5
2、使用spring-data-redis中的RedisTemplate可以完成自动配置,开箱即用
@Autowired
private RedisTemplate redisTemplate;
注意redisTemplate必须是这个名,才能自动注入,这是源码中写好的 org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration
---------------------