redis的sentinel使用以及spring集成方面的问题 5C

一. 我已经在linux端做好了master以及两个slave的redis,sentinel配置

二. 但是关于spring集成方面(即redis.xml的配置),我用了网上两种方法都没有成功。

1.参考于http://sumory.com/2014/08/15/spring-redis-sentinel/

 <bean id="jedisConnectionFactory"
        class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
        <property name="usePool" value="true"></property>
        <property name="hostName" value="192.168.86.5" />
        <property name="port" value="6371" />
        <property name="password" value="" />
        <property name="timeout" value="100000" />
        <property name="database" value="0"></property>
        <constructor-arg index="0" ref="jedisPoolConfig" />
    </bean>


    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxTotal" value="300" />
        <property name="maxIdle" value="100" />
        <property name="maxWaitMillis" value="1000" />
        <property name="testOnBorrow" value="false" />
        <property name="testOnReturn" value="true" />
    </bean>

    <bean id="jedisPool" class="redis.clients.jedis.JedisSentinelPool">
        <constructor-arg index="0" value="mymaster" />
        <constructor-arg index="1">
            <set>
                <value>192.168.86.5:26370</value>
                <value>192.168.86.5:26372</value>
            </set>
        </constructor-arg>
        <constructor-arg index="2" ref="jedisPoolConfig" />
    </bean>

    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
        <property name="connectionFactory" ref="jedisConnectionFactory" />
        <property name="KeySerializer">
            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
        </property>
        <property name="ValueSerializer">
            <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" />
        </property>
    </bean>

我想了想,应该是我的以上配置没有写正确,配置了jedispool但是没有调用。但是我的确不知道该怎么改,求懂sentinel的大神帮我看一下。

2.参考于http://blog.csdn.net/peterwanghao/article/details/44980085


    <bean id="redisSentinelConfiguration"
        class="org.springframework.data.redis.connection.RedisSentinelConfiguration">
        <property name="master">
            <bean class="org.springframework.data.redis.connection.RedisNode">
                <property name="name" value="mymaster"></property>
            </bean>
        </property>
        <property name="sentinels">
            <set>
                <bean class="org.springframework.data.redis.connection.RedisNode">
                    <constructor-arg name="host" value="192.168.86.5"></constructor-arg>
                    <constructor-arg name="port" value="26370"></constructor-arg>
                </bean>
                <bean class="org.springframework.data.redis.connection.RedisNode">
                    <constructor-arg name="host" value="192.168.86.5" />
                    <constructor-arg name="port" value="26371" />
                </bean>
                <bean class="org.springframework.data.redis.connection.RedisNode">
                    <constructor-arg name="host" value="192.168.86.5" />
                    <constructor-arg name="port" value="26372" />
                </bean>
            </set>
        </property>
    </bean>

    <bean id="jeidsConnectionFactory"
        class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
        <constructor-arg ref="redisSentinelConfiguration" />
    </bean>
    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"
        p:connection-factory-ref="jeidsConnectionFactory" />

用这个方法就更离奇了,我新建了一个项目用以测试这个配置时是可以使用的,整个redis的sentinel功能一切正常。但是我把这个代码移植到要做的项目运行中,始终都会报错( org.springframework.beans.NotWritablePropertyException: Invalid property 'sentinels' of bean class [org.springframework.data.redis.connection.RedisSentinelConfiguration]: Bean property 'sentinels' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?)

按理说sentinel不可写这个错是因为RedisSentinelConfiguration中没有sentinel的set、get方法,但确实是有的,不然测试的时候也不会成功。实在是不知道怎么解决了,查遍了百度,求大神帮我看看

0

2个回答

今天终于解决问题了,终于知道第二种方法为什么会出错。
今天我把公司项目里其余的依赖全删掉,一个一个排查,终于找到是spring-web,spring-webmvc这两个依赖导致的问题,之前的版本是3.2.2,然后我把改成4.0.0之后就可以使用了。我想是因为版本低导致有冲突。

1

太感谢了,我也卡在这2天了,找不出原因,换了spring的版本确实可以了。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Spring整合redis,通过sentinel进行主从切换。(何志雄)
实现功能描述:         redis服务器进行Master-slaver主从配置,通过2台sentinel进行failOver故障转移,自动切换,采用该代码完全可以用于实际生产环境。         该代码模拟多线程向redis中set/get。   1、maven依赖配置 org.springframework.data spring-data-redis 1
Spring Boot Redis-Sentinel—实现Redis高可用之哨兵模式
废话简论     Redis高可用之哨兵模式它就是,当你的reids挂掉了之后,它可以自己切换到其他redis上.不影响用户的正常使用. 简述Sentinel:      Sentinel具有四个特点: 监控,通知,自动故障转移,配置提供者 监控:哨兵不断的检查master和slave是否正常的运行。 通知:当监控的某台Redis实例发生问题时,可以通过API通知系统管理员和其他的应用程...
Spring-boot 2中配置Lettuce作Redis客户端以及Sentinel配置
springboot 2中默认使用lettuce作为redis客户端,下面介绍如何利用lettuce通过sentinel连接redis。 RedisConfiguration类 @Configuration @EnableConfigurationProperties(RedisProperties.class) public class RedisConfiguration { pri...
spring Session + Redis集群 + 哨兵部署下实现Session共享
1.共享Session问题 HttpSession是通过Servlet容器创建和管理的,像Tomcat/Jetty都是保存在内存中的。而如果我们把web服务器搭建成分布式的集群,然后利用LVS或Nginx做负载均衡,那么来自同一用户的Http请求将有可能被分发到两个不同的web站点中去。那么问题就来了,如何保证不同的web站点能够共享同一份session数据呢? 最简单的想法就是把sess
spring注解方式配置redis哨兵
配置文件: #redis哨兵配置文件 sentinel.host1=192.168.xx.xx sentinel.host2=192.168.xx.xx sentinel.port1=xxxx sentinel.port2=xxxx redis.password=xxxx redis.database=0 redis.pool.maxTotal=500 #最大能够保持idel状态的对象数...
基于哨兵【sentinel】模式的redis服务集群并与spring集成
最近接手了一个PHP老项目,里面用到了redis缓存,基于sentinel模式的集群。项目里面redis的连接读写都是用PHP实现的,并把不同的信息存储于不同的dbindex下,即分db存储内容。看了下,由于本人是搞Java的,决定用Java进行重构。于是就进行一遍完整的基于sentinel模式redis的集群搭建,并集成于spring。以下为具体的实施过程。  一、redis的下载安装部分
基于DOCKER安装Redis Sentinel 集群以及springboot连接Redis哨兵集群demo
基于DOCKER安装Redis Sentinel 集群 配置规划 首先创建redis网络:docker network create --subnet=192.168.100.0/24 redisnet host ip port remark redis-6001 192.168.100.11 6001:6379 初始主节点 redis-6002 192.168.100.1...
spring + redis + sentinel 配置
spring + redis + sentinel 配置文件,同学们可以下载使用,有问题请指教。
12、Spring技术栈-Redis Sentinel实现高可用缓存集群方案实战
Redis Sentinel是一个分布式系统,Sentinel运行在有许多Sentinel进程互相合作的环境下,它本身就是这样被设计的。通过Redis Sentinel模式,我们可以实现缓存系统的高可用,本文从实践的角度为读者讲解具体实现方案。
Spring整合redis,通过sentinel进行主从切换
实现功能描述:         redis服务器进行Master-slaver-slaver-....主从配置,通过2台sentinel进行failOver故障转移,自动切换,采用该代码完全可以直接用于实际生产环境。                题外话:          一般来说这样的部署足以支持数以百万级的用户,但如果数量实在是太高,此时redis的Master-Sl
springboot 整合 redis 主从同步 sentinel哨兵 实现商品抢购秒杀
这段时间利用周末学习了一下redis的主从同步,同时配合sentinel哨兵机制,sentinel是redis实现HA的一种方式。为了能学以致用,这里使用springboot 把redis 主从同步及sentinel整合起来实现一个商品抢购的demo,同时在开发过程中遇到的问题也都整理下来了。一方面加深对所学知识的印象,另一方面希望可以为那些刚接触过这些知识的同学提供点实际帮助,springboo
Redis详解之-集群方案:高可用(使用Redis Sentinel)(三)
对以前的内容进行一下总结和复习。 了解Redis的基本参数配置和使用。了解事件订阅和持久化存储方式(RDB和AOF)。Redis集群方案:高可用(使用Redis Sentinel),官网Rdeis3.x推荐三主三从的方式,后面再介绍,参考(https://www.cnblogs.com/zhongkaijun/p/4728334.html)。 接下来让我熟知一下:Redis集群
Springboot整合Redis-sentinel哨兵模式集群
Springboot整合Redis-sentinel哨兵模式集群 近日在项目中整合redis缓存,查了好多SpringBoot整合Redis的博客。经过多日研究测试终于成功了。特留博客供查阅。 1. pom.xml 添加Redis依赖 &amp;amp;amp;lt;!-- redis --&amp;amp;amp;gt; &amp;amp;amp;lt;dependency&amp;amp;amp;gt; &amp;amp;amp;lt;groupId&amp
搭建Redis主从集群搭建、redis-sentinel的配置以及Jedis对Sentinel的使用[ by 嗡汤圆 ]
前言 某web项目中需要快速存取部分非结构化数据,对数据的安全性要求不高,同时由于web项目有多台服务器同时提供服务,并通过nginx负载均衡,需要保证客户端从任意一台服务器中均能读取到完整的数据。因此不能简单的在每台服务器中安装redis缓存,同时为避免单点故障,需要部署多台redis服务组成主从集群,而默认的主从配置仅仅保证了数据的复制与安全,并没有提供节点失败时的请求转移,因此需要配合re
java使用Redis6–sentinel单点故障主从自动切换
Redis Sentinel Sentinel(哨兵)是用于监控redis集群中Master状态的工具,其已经被集成在redis2.4+的版本中 一、Sentinel作用: 1):Master状态检测  2):如果Master异常,则会进行Master-Slave切换,将其中一个Slave作为Master,将之前的Master作为Slave 3):Master-Slave切换后,ma
Redis学习之二 —— SpringBoot整合Redis单实例主从复制模式(Sentinel实现)—— 亲测可用
参考:https://blog.csdn.net/Mars13889146832/article/details/79534981 注意:这里是Redis单实例的,什么是单实例呢,就是只有一个主(master),后面会有多实例(多个master)的案例。 目录结构 redis.properties redis.nodes=10.24.54.245:26379,10.24.54.246...
Redis(五)Sentinel简介及SpringBoot访问
参考:https://blog.csdn.net/men_wen/article/details/72724406 1. Sentinel介绍 1.1 主从复制的问题   Redis主从复制可将主节点数据同步给从节点,从节点此时有两个作用:   一旦主节点宕机,从节点作为主节点的备份可以随时顶上来。扩展主节点的读能力,分担主节点读压力。 但是问题来了: 一旦主节点宕机,从节点晋升成主节点,同...
各版本lettuce sentinel spring集成流程(连接池、哨兵配置)
spring-data-2与其上一个版本1.8是一个分水岭,2.0用的是io.lettuce:lettuce-core,2.0之前的spring-data用的是biz.paluch.redis:lettuce spring-data-2.0以上版本配置 spring-data-redis版本2.0.9.RELEASE io.lettuce:lettuce-core版本5.0.4.RELE...
Redis sentinel 节点修改密码
Sentinel和Redis身份验证 当一个master配置为需要密码才能连接时,客户端和slave在连接时都需要提供密码。 master和slave节点 master通过requirepass设置自身的密码,不提供密码无法连接到这个master。 slave通过masterauth来设置访问master时的密码。 但是当使用了sentinel时,由于一个master可...
Redis Sentinel(哨兵模式)配置
前言:      redis在主从模式下,如果master节点出现故障,redis不会进行切换主节点。如果要测试redis sentinel,首先要启动redis主从,看我的另一篇博客。      redis sentinel主要功能:监控redis的运行状态,若master节点出现问题,能够选举一个slave为主节点,并修改其他从节点的主节点地址。单个sentinel是不可靠的,sentin...
java客户端Jedis操作Redis Sentinel 连接池
pom.xml配置         org.springframework.data     spring-data-redis     1.0.2.RELEASE     redis.clients     jedis     2.7.0     jar     compile         public class JedisPoolUtil {  
官网中关于Redis + Sentinel主从切换的一些说明
  在redis官网中关于redis + Sentinel主从切换的一些说明,主从切换会丢失数据,无论用何种持久化方式都无法保证主从数据强一致性。        在每个Sentinel设置里,redis数据复制是异步的,总是会有丢失写入数据的风险,因为一个确认写入的数据不能到达新的master。就如上面的设置,有很大的风险,由于客户端分区在老的master里。如图所示。     在这个案...
SpringBoot实战之16 整合redis哨兵
前言 对springboot整合redis感兴趣的可以参考此篇博客 SpringBoot实战之13 整合redis 对spring整合redis感兴趣的参考这里 spring实战3 spring整合单例redis spring整合哨兵参考这里 spring实战4 spring整合redis哨兵 本篇介绍springboot整合哨兵模式 开始 建项目 新建springboot-...
redis,sentinel配置详解
一、redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程    daemonize no2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定    pidfile /var/run/redis.pid3. 指定Redis监听端口,默认端口为...
Docker和Redis搭配进行Sentinel或Cluster使用的大坑
docker默认是使用bridge的网络环境构建container 由于slave是基于对网络环境的检测来告知master自己的IP,类似地,sentinel是也是这样返回有效的master信息以及向其他sentinel广播自身位置,在docker环境中,这通常会导致slave和sentinel无法正常获取真实或有效的IP地址。 通常是类似如下 172.18.0.? 127.0.0.? ...
Redis主从复制,读写分离及sentinel监控的使用
在有redis基础的前提下,你肯定会发现redis真的很强大很实用,至少我是这么觉得的。废话不多说,本文将会简单说明redis集群中主从复制,读写分离的实现,以及监控运维工具sentinel的使用。1.redis的主从配置说明主从复制在redis中的实现非常简单,redis持久化的实现原理是rdb内存快照配合aof日志文件两种方式,本质上只需要将rdb的dump文件和aof日志文件在redis集群...
SpringBoot redis哨兵模式使用
1.pom.xm文件配置 &amp;lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 http://maven.apache.org...
jedis操作sentinel,采用连接池方式
遇到问题总结1.首先server.conf和sentinel.con没有采取密码操作,所以redis默认采取了保护模式,导致没有权限连接,关闭保护模式即可 protected-model no2.接下来是无法获得127.0.0.1 not getSource from the pool 因为的sentinel没有绑定对应master ippackage com;import java.util.Ha
redis配置读写分离以及利用哨兵sentinel进行自动主从切换
redis利用哨兵(sentinel)进行主从切换,断断续续,自己终于通过配置验证了一下该功能,其中遇到过一些的问题,也是耗费了大量的时间才解决,接下来分享下配置的过程以及遇到的问题和解决方法。希望对各位有所帮助。 首先说一下实验环境: redis软件:redis-3.2.1(安装在虚拟机的linux系统中) 宿主主机:windo
springboot_sentinelredis
spring boot 集成sentinelredis,demo 对应博客地址:http://blog.csdn.net/woniu211111/article/details/54646755
Redis高可用集群-哨兵模式(Redis-Sentinel)搭建配置教程【Windows环境】
No cross,no crown . 不经历风雨,怎么见彩虹。 Redis哨兵模式,用现在流行的话可以说就是一个“哨兵机器人”,给“哨兵机器人”进行相应的配置之后,这个”机器人”可以7*24小时工作,它能能够自动帮助你做一些事情,如监控,提醒,自动处理故障等。 Redis-sentinel简介 Redis-sentinel是Redis的作者antirez,因为Redis集群的被...
Spring整合Redis之哨兵与故障转移
前言上篇博客谈到了Spring整合redis集群以及故障转移演示,会发现redis集群模式存在一个很明显的问题:当某个主节点及其所有从节点挂掉,整个集群因为缺少该节点负责范围的哈希槽(hash slot)而宕掉,不具高可用性。redis引入了哨兵(sentinel)模式,能很好解决集群模式存在的不足。引用官网,redis哨兵系统有三个作用: - 监控(Monitoring): Sentinel 会
3分钟-精通-Redis master/slave/sentinel (主从,哨兵)
场景分析:公司原来的项目单war包对应单个redis,如下图:随着war包的增多,redis数量也增多。我们知道redis采用多路复用其性能非常好,考虑到我们单点压力不大和可用性(若redis挂了,项目不能正常运行)。用如下的方式。正文:  目录:1 master slave 哨兵配置2.检验1 master slave 哨兵配置1.1master slave 配置假设有:    192.168....
jedis连接不上redis,sentinel报错
用Java对虚拟机里面的redis和sentinel进行连接的时候,报超时错误,经过检查,发现并没有绑定127.0.0.1错误解决1、关闭防火墙特么的一开始我也不信,结果发现是真的 我的是centos7 关闭防火墙方法如下 service firewalld stop 又可以愉快的玩耍了但是发现sentinel还是连接不上2、sentinel配置文件修改
jedis通过JedisSentinelPool获取jedis操作redis
jedis通过JedisSentinelPool获取jedis操作redis,通过配置sentienl,获取sentinel连接池,通过sentinel,获取jedis信息
redis高可用sentinel原理
在我的电脑下面执行下面的操作构建一个高可用的redis主从集群. 启动两个实例: 1、nohup /usr/local/webserver/redis/src/redis-server /usr/local/webserver/redis/conf/redis_6380.conf & 2、nohup /usr/local/webserver/redis/src/redis-server /u
Spring整合Redis之哨兵集群
1、首先是需要引入的pom.xml文件:&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt; &amp;lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:schemaLocation=&quot;http
四:redis主从读写分离,哨兵模式与spring的集成
本篇主要介绍redis实现主从读写分离,采用哨兵模式后如何与spring集成在项目中进行开发 主要依赖的jar包,其他项目中实际依赖的jar包很多这里就不一一列举了: jar包依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version
redis sentinel搭建以及jedis连接方式
转载自:https://www.cnblogs.com/wangweiNB/p/5620845.html 一、redis主从搭建 1、搭建redis master 1>redis安装 mkdir -p /usr/local/webserver/redis //安装目录 cd /usr/local/webserver/redis wget http://download
Redis之Sentinel主从复制,读写分离,主从切换
当数据量变得庞大的时候,读写分离还是很有必要的。同时避免一个redis服务宕机,导致应用宕机的情况,我们启用sentinel(哨兵)服务,实现主从切换的功能。   redis提供了一个master,多个slave的服务。   准备三个redis服务,依次命名文件夹子master,slave1,slave2.这里为在测试机上,不干扰原来的redis服务,我们master使用6
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 web使用redis教程 redis学习java