spring redis單機(jī)配置和哨兵配置

用spring redis做redis緩存的緩存服務(wù)器時(shí),發(fā)現(xiàn)單機(jī)或單集群的案例很多园细。
市場(chǎng)上還有一種做法惦积,是用哨兵(sentinel)做集群,但是spring redis怎么配置哨兵連接呢猛频?沒(méi)有資料狮崩。我通過(guò)翻源代碼蛛勉,摸索出如下配置,實(shí)踐檢驗(yàn)是可行的睦柴。供君參考诽凌。
sentinel資料介紹 點(diǎn)擊查看

常規(guī)配置如下:

spring redis單機(jī)(或單集群)配置

web.xml

<!--========= spring配置 ========= -->
<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/conf/spring/*-beans.xml</param-value>
</context-param>

application-redis-beans.xml

 <context:property-placeholder file-encoding="UTF-8" location="WEB-INF/conf/redis.properties"/>
   
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
    <property name="maxIdle" value="${redis.maxIdle}"/>
    <property name="maxTotal" value="${redis.maxTotal}"/>
    <property name="maxWaitMillis" value="${redis.maxWaitMillis}"/>
    <property name="testOnBorrow" value="true"/>
</bean>

<bean id="tradeConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
    <property name="hostName" value="${redis.hostName}"/>
    <property name="port" value="${redis.port}"/>
    <property name="password" value="${redis.password}"/>
    <property name="timeout" value="${redis.timeout}"/>
    <property name="poolConfig" ref="jedisPoolConfig"/>
</bean>

<!-- 默認(rèn)的redisTemplate -->
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
    <property name="connectionFactory" ref="tradeConnectionFactory"/>
     <property name="keySerializer">
        <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
    </property>
  <property name="valueSerializer">  
    <!-- <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"/> -->
      <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" />  
  </property>  
  <property name="hashKeySerializer">  
      <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" />  
  </property>  
  <property name="hashValueSerializer">  
      <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" />  
  </property>  
</bean>

<!-- redisTemplate 工廠類(lèi),存放各個(gè)redisTemplate -->
<bean id="redisTemplateFactory" class="cn.cloud.winner.oss.redis.manager.RedisTemplateFactory">
    <property name="redisTemplates">
        <map>
            <entry key="${redis.cachename}" value-ref="redisTemplate" />
        </map>
    </property>
</bean>

redis.properties

##redis數(shù)據(jù)源配置
#redis主機(jī)IP
redis.hostName=10.253.6.124
#redis主機(jī)端口
redis.port=6379
#如果redis有密碼坦敌,則設(shè)置侣诵。否則不設(shè)置
redis.password=hundsun@1
#超時(shí)時(shí)間,單位毫秒
redis.timeout=2000
#最大空閑數(shù) 
redis.maxIdle=500
#最大連接數(shù) 
redis.maxTotal=1000
#最大建立連接等待時(shí)間
redis.maxWaitMillis=5000

#redis業(yè)務(wù)配置
#是否使用redis,true|false
redis.use=true
#緩存名稱(chēng)狱窘,多個(gè)用逗號(hào)區(qū)分
redis.cachename=app

sentinel配置如下:

spring redis哨兵(單哨兵或多哨兵)配置(sentinel)

web.xml

<!--========= spring配置 ========= -->
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/conf/spring/*-beans.xml</param-value>
</context-param>

application-redis-beans.xml

<context:property-placeholder file-encoding="UTF-8" location="WEB-INF/conf/redis.properties"/>

<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
  <property name="maxIdle" value="${redis.maxIdle}"/>
  <property name="maxTotal" value="${redis.maxTotal}"/>
  <property name="maxWaitMillis" value="${redis.maxWaitMillis}"/>
  <property name="testOnBorrow" value="true"/>
 </bean>

<!-- redis哨兵配置 start(如果不使用哨兵杜顺,注釋該段代碼)-->
<bean id="redisNode1" class="org.springframework.data.redis.connection.RedisNode">
    <!-- 使用構(gòu)造函數(shù)注入對(duì)象 -->  
    <constructor-arg index="0" value="${redis.hostName}" />
      <constructor-arg index="1" value="${redis.port}" />
    <property name="name" value="${redis.masterName}"/>
</bean>

<bean id="sentinelConfig" class="org.springframework.data.redis.connection.RedisSentinelConfiguration">
    <property name="master" ref="redisNode1"/>
    <property name="sentinels">
        <set>
             <ref bean="redisNode1"/>
        </set>
      </property>
</bean>
<!-- redis哨兵配置 end-->

<bean id="tradeConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
    <property name="hostName" value="${redis.hostName}"/>
    <property name="port" value="${redis.port}"/>
    <property name="password" value="${redis.password}"/>
    <property name="timeout" value="${redis.timeout}"/>
    <property name="poolConfig" ref="jedisPoolConfig"/>
    <!-- redis哨兵配置,如果不使用哨兵训柴,注釋該行即可 -->
 <constructor-arg index="0" ref="sentinelConfig" />
</bean>

<!-- 默認(rèn)的redisTemplate -->
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
    <property name="connectionFactory" ref="tradeConnectionFactory"/>
     <property name="keySerializer">
        <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
    </property>
  <property name="valueSerializer">  
    <!-- <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"/> -->
      <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" />  
  </property>  
  <property name="hashKeySerializer">  
      <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" />  
  </property>  
  <property name="hashValueSerializer">  
      <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" />  
  </property>  
</bean>

redis.properties

##redis數(shù)據(jù)源配置
#redis哨兵master名稱(chēng)
redis.masterName=master
#redis哨兵IP
redis.hostName=10.253.6.124
#redis哨兵端口
redis.port=6379
#如果redis有密碼哑舒,則設(shè)置。否則不設(shè)置
redis.password=hundsun@1
#超時(shí)時(shí)間幻馁,單位毫秒
redis.timeout=2000
#最大空閑數(shù) 
redis.maxIdle=500
#最大連接數(shù) 
redis.maxTotal=1000
#最大建立連接等待時(shí)間
redis.maxWaitMillis=5000

#redis業(yè)務(wù)配置
#是否使用redis,true|false
redis.use=true
#緩存名稱(chēng)洗鸵,多個(gè)用逗號(hào)區(qū)分
redis.cachename=app
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市仗嗦,隨后出現(xiàn)的幾起案子膘滨,更是在濱河造成了極大的恐慌,老刑警劉巖稀拐,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件火邓,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡德撬,警方通過(guò)查閱死者的電腦和手機(jī)铲咨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蜓洪,“玉大人纤勒,你說(shuō)我怎么就攤上這事÷√矗” “怎么了摇天?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)恐仑。 經(jīng)常有香客問(wèn)我泉坐,道長(zhǎng),這世上最難降的妖魔是什么裳仆? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任腕让,我火速辦了婚禮,結(jié)果婚禮上歧斟,老公的妹妹穿的比我還像新娘纯丸。我一直安慰自己司训,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布液南。 她就那樣靜靜地躺著,像睡著了一般勾徽。 火紅的嫁衣襯著肌膚如雪滑凉。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,718評(píng)論 1 305
  • 那天喘帚,我揣著相機(jī)與錄音畅姊,去河邊找鬼。 笑死吹由,一個(gè)胖子當(dāng)著我的面吹牛若未,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播倾鲫,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼粗合,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了乌昔?” 一聲冷哼從身側(cè)響起隙疚,我...
    開(kāi)封第一講書(shū)人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎磕道,沒(méi)想到半個(gè)月后供屉,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡溺蕉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年伶丐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疯特。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡哗魂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出辙芍,到底是詐尸還是另有隱情啡彬,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布故硅,位于F島的核電站庶灿,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏吃衅。R本人自食惡果不足惜往踢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望徘层。 院中可真熱鬧峻呕,春花似錦利职、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至讯私,卻和暖如春热押,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背斤寇。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工桶癣, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人娘锁。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓牙寞,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親莫秆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子间雀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)镊屎,斷路器雷蹂,智...
    卡卡羅2017閱讀 134,665評(píng)論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,823評(píng)論 6 342
  • springboot配置選項(xiàng)(二) SOLR (SolrProperties) spring.data.solr....
    JanloongDo_0閱讀 4,125評(píng)論 0 5
  • =========================================================...
    lavor閱讀 3,490評(píng)論 0 5
  • 其實(shí)不太喜歡這個(gè)骯臟的世界彰亥,只是因?yàn)樾睦镉刑嗟臓拷O谭梗,而不得不委身于此…… 如果有一天元旬,我的努力可以使父母...
    諳寧閱讀 206評(píng)論 0 0