spring整合redis單機版與redis叢集版
阿新 • • 發佈:2018-12-25
前言:
有時候我們部署了叢集版的redis,還希望開發的時候使用單機版(畢竟省事兒),但是比較常用的Java客戶端(Jedis和Lettuce)的單機和叢集api是不統一的。經過調研,發現spring-data-redis可以實現這個需求,本文就是將spring-data-redis和Jedis整合,來統一操作的API。
本文假設你已熟悉spring-data-redis和Jedis的基本使用,這些教程Google或者百度一下一大堆的。
這裡也只是簡單的做個筆記,看這篇只是給你一定的思路,程式碼也只是一個參考!!!關鍵是一個邏輯的思維....
一:配置,天才第一步,全靠依賴庫,站在巨人的肩膀不斷去學習,注意1.8.12版本要求spring 4.3.17以上
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.8.12.RELEASE</version> </dependency>
二:spring-data-redis配置,這樣的話,你需要使用哪個就直接開戶註釋即可
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="50"/> <property name="maxTotal" value="100"/> <property name="maxWaitMillis" value="20000"/> </bean> <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate"> <constructor-arg name="connectionFactory" ref="jedisConnectionFactory"/> </bean> <!-- 單機配置 --> <!--<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">--> <!--<property name="hostName" value="127.0.0.1"/>--> <!--<property name="port" value="6379"/>--> <!--<property name="timeout" value="20000"/>--> <!--<property name="poolConfig" ref="jedisPoolConfig" />--> <!--</bean>--> <!-- 叢集配置 --> <bean id="redisClusterConfiguration" class="org.springframework.data.redis.connection.RedisClusterConfiguration"> <property name="maxRedirects" value="3"/> <property name="clusterNodes"> <set> <bean class="org.springframework.data.redis.connection.RedisClusterNode"> <constructor-arg name="host" value="127.0.0.1"/> <constructor-arg name="port" value="6481"/> </bean> <bean class="org.springframework.data.redis.connection.RedisClusterNode"> <constructor-arg name="host" value="127.0.0.1"/> <constructor-arg name="port" value="6482"/> </bean> <bean class="org.springframework.data.redis.connection.RedisClusterNode"> <constructor-arg name="host" value="127.0.0.1"/> <constructor-arg name="port" value="6483"/> </bean> <bean class="org.springframework.data.redis.connection.RedisClusterNode"> <constructor-arg name="host" value="127.0.0.1"/> <constructor-arg name="port" value="6484"/> </bean> <bean class="org.springframework.data.redis.connection.RedisClusterNode"> <constructor-arg name="host" value="127.0.0.1"/> <constructor-arg name="port" value="6485"/> </bean> <bean class="org.springframework.data.redis.connection.RedisClusterNode"> <constructor-arg name="host" value="127.0.0.1"/> <constructor-arg name="port" value="6486"/> </bean> </set> </property> </bean> <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <constructor-arg name="clusterConfig" ref="redisClusterConfiguration" /> <constructor-arg name="poolConfig" ref="jedisPoolConfig" /> <property name="timeout" value="20000"/> </bean> </beans>
如果覺得此篇文章,沒有看懂,沒關係,請繼續加油,redis的資源網上相對來說,目前也很多了。小編我這裡也是一直在學習當中,目前也技術也菜,還在不斷學習中................