一般情况下yum安装redis的启动目录在:/usr/sbin ;配置目录在/etc/redis/在其目录下会有默认的redis.conf和redis-sentinel.conf
redis高可用配置:
配置哨兵(redis-sentinel),我的所有配置文件都放在/etc/redis-cluster/目录下
1、创建redis-sentinel_26379.conf,主要内容如下:
#基本配置 port 26379 daemonize yes logfile "/var/log/redis/sentinel_26379.log" protected-mode no dir /var/lib/redis-cluster/sentinel #检查配置 sentinel monitor mymaster 127.0.0.1 6379 1 (指向master服务器或端口) #sentinel auth-pass mymaster passwd sentinel parallel-syncs mymaster 1 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 18000
2、创建redis-sentinel_26380.conf,主要内容如下:
#基本配置 port 26380 daemonize yes logfile "/var/log/redis/sentinel_26380.log" protected-mode no dir /var/lib/redis-cluster/sentinel #检查配置 sentinel monitor mymaster 127.0.0.1 6379 1 (指向master服务器或端口) #sentinel auth-pass mymaster passwd sentinel parallel-syncs mymaster 1 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 18000
sentinel monitor的参数声明的含义如下所示:
sentinel monitor [master-group-name] [ip] [port] [quorum]
第一行用于告诉Redis监控一个master叫做mymaster,它的地址在127.0.0.1,端口为6379,法定人数是2。每个参数都很容易理解,但是quorum需要解释一下:
1、quorum是Sentinel需要协商同意master是否可到达的数量。为了真正的标记slave为失败,并最终是否需要启动一个故障转移进程。
2、无论怎样,quorum只用于检测故障。为了实际执行故障转移,Sentinel需要选举leader并进行授权。这只发生在大多数Sentinel进程的选举。
其他的选项通常是这种形式:
其他的选项通常是这种形式:sentinel [option_name] [master_name] [option_value]
1. down-after-milliseconds - 一个实例不可到达(不能ping通或者有错误),Sentinel开始认为它是down的毫秒数。
2. parallel-syncs - 设置在故障转移之后同时可以重新配置使用新master的slave的数量。数字越低,更多的时间将会用故障转移完成,但是如果slaves配置为服务旧数据,你可能不希望所有的slave同时重新同步master。因为主从复制对于slave是非阻塞的,当停止从master加载批量数据时有一个片刻延迟。通过设置选项为1,确信每次只有一个slave是不可到达的。
3、创建redis-master-6379.conf,master配置基本和默认文件没有差别,主要内容如下:
daemonize yes protected-mode no port 6379 #requirepass "passwd" #masterauth "passwd"
4、创建redis-slave-6380.conf,主要内容如下:
protected-mode no port 6380 daemonize yes #requirepass "passwd" #masterauth "passwd" slaveof 127.0.0.1 6379
5、接下来就可以启动了。
cd /usr/sbin/ #启动master redis redis-server /etc/redis-cluster/redis-master-6379.conf #启动slave redis redis-server /etc/redis-cluster/redis-slave-6380.conf #启动redis-sentinel redis-sentinel /etc/redis-cluster/redis-sentinel_26379.conf redis-sentinel /etc/redis-cluster/redis-sentinel_26380.conf
我们可以在/var/log/redis/sentinel_26379.log目录下查看响应的日志。
6、spring boot集成redis-sentinel
来单机的配置注释掉
#spring.redis.host=127.0.0.1 # Redis服务器连接端口 #spring.redis.port=6379
增加高可用配置
#哨兵监听redis server名称 spring.redis.sentinel.master=mymaster #哨兵的配置列表 spring.redis.sentinel.nodes=127.0.0.1:26379,127.0.0.1:26380
代码中就可以在RedisUtils直接用了,如:
@Autowired private RedisTemplate redisTemplate;
后面在控制器可以直接用RedisUtils定义的方法了
最后测试一下
具体RedisUtils代码见下面的地址:https://coding.net/u/evening/p/development-tool-summary/git/blob/master/RedisUtils
现在就已经部署成功了,我们可以断掉一台redis-sentinel或者redis测试一下,会自动切换的。
这个过程也遇到了很多坑,总结一下。
1:全部配置完成后启动项目报:All sentinels down, cannot determine where is mymaster master is running…
这个可能有两个原因:端口没有开放或者redis-sentinel文件中没有加protected-mode no
2:集成spring boot后redis存值会多个xacxedx00x05tx00x0c东西。
这个是因为使用了默认的序列化,我们使用jackson2JsonRedisSerializer就可以了,详见上面连接地址。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]