redis sentinel:使用Spring-data-redis操作Redis的Sentinel

本文介绍如何使用Redis Sentinel进行集群管理,包括哨兵机制原理、环境配置、哨兵配置及常见问题解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

redis整合spring(redisTemplate工具类):
[url]https://blog.youkuaiyun.com/qq_34021712/article/details/75949706[/url]
sentinel[ˈsentɪnl] 哨兵
[url]http://blog.youkuaiyun.com/peterwanghao/article/details/44980085[/url]
[b]一.哨兵机制:[/b]
Redis Sentinel是Redis官方提供的集群管理工具,使用一个或多个sentinel和Redis的master/slave(主/从)可以组成一个群集,可以检测master实例是否存活,并在master实例发生故障时,将slave提升为master,并在老的master重新加入到sentinel的群集之后,会被重新配置,作为新master的slave。这意味着基于Redis sentinel的HA群集是能够自我管理的。
Redis内的sentinel会实时扫描节点,如果发现了宕机的节点就会执行故障转移,选主等操作,我们来看一下具体的过程。
[b]二.环境配置:[/b]
本文基于redis-2.8.19和jedis2.4.2版本,3.0以上可用cluster。
在一台机器上启动2个redis,一个做master,一个做slave。
Master 端口:6379
Slave1 端口:6380

	    
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.4.1.RELEASE</version>
</dependency>
<!--redis客户端-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.6.2</version>
</dependency>

以上配置在
[url]http://572327713.iteye.com/blog/2358403[/url]
senssion跨域共享的时候也用到过。

Spring-Data-Redis提供了一个基础的泛型RedisTemplate供开发者快速的利用代码完成基础的crud工作。而StringRedisTemplate则提供了最常用的String类型的实现。在实践中可以考虑完全省去dao层的设计,直接在service层注入相应的template实例。

[b]三.Sentinel配置:[/b]
[img]http://dl2.iteye.com/upload/attachment/0123/8138/22fcc2b5-08e6-3b7d-a183-3c63b4317ce1.png[/img]

[b]redis主从:[/b]
[b]Master:[/b]
redis.conf
port 6379
[b]Slave1:[/b]
redis.conf
port 6380
slaveof 192.168.92.130 6379
[img]http://dl2.iteye.com/upload/attachment/0123/8313/8439cce5-cb1f-3c5d-9d5d-ccd8ba8c96b6.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0123/8315/d3a60d7e-46a8-3a15-ad5d-9329f17b50c6.png[/img]
[img]http://dl2.iteye.com/upload/attachment/0123/8309/28901568-9864-37ab-a7ed-b4c4c3bade06.png[/img]
关于redis另外配置看
[url]http://572327713.iteye.com/admin/blogs/2346196[/url]

[b]sentinel集群:[/b]
[img]http://dl2.iteye.com/upload/attachment/0123/8317/d8d7fc3d-9f68-3a74-a303-0b191e4eb635.png[/img]
sentinel.conf
port 26379
sentinel monitor mymaster 192.168.0.100 6379 2

sentinel.conf
port 26380
sentinel monitor mymaster 192.168.0.100 6379 2

sentinel.conf
port 26381
sentinel monitor mymaster 192.168.0.100 6379 2

运行启动redis:
$ redis-server /usr/local/redis/sentinel/redis-6379/redis.conf 


对于 redis-sentinel 程序, 你可以用以下命令来启动 Sentinel 系统:
[code="java"]
# redis-sentinel sentinel.conf
[/code]
对于 redis-server 程序, 你可以用以下命令来启动一个运行在 Sentinel 模式下的 Redis 服务器:
[code="java"]
# redis-server sentinel.conf --sentinel
[/code]

[b]遇到问题:[/b]
WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

执行 echo 511 > /proc/sys/net/core/somaxconn
[img]http://dl2.iteye.com/upload/attachment/0123/8311/84922133-7c64-3029-b8d7-958fda437f30.png[/img]

其他项目可能用到redis keepalive
redis+keepalive+LVS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值