您好,登錄后才能下訂單哦!
小編給大家分享一下redis與spring整合使用的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
方法如下
第一步,在項目中加入redis的pom代碼:
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.6.0</version> </dependency>
第二步,spring中加載redis配置文件:applicationContext-redis.xml,內容如下
<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxTotal" value="${redis.maxTotal}" /> </bean> <bean class="redis.clients.jedis.ShardedJedisPool"> <constructor-arg index="0" ref="poolConfig" /> <constructor-arg index="1"> <list> <bean class="redis.clients.jedis.JedisShardInfo"> <constructor-arg index="0" value="${redis.node1.host}" /> <constructor-arg index="1" value="${redis.node1.port}" /> </bean> </list> </constructor-arg> </bean> </beans>
第三步,編寫連接redis服務端的屬性文件:redis.properties
redis.maxTotal=100 redis.node1.host=127.0.0.1 redis.node1.port=6379
第四步,編寫redis的相關操作方法類,Function類和RedisService類:
Funcrion類:
package xx.service; /** * 為了抽取相同的操作代碼 * @author yeying *<p>Description:</p> *<p>Company:</p> * @date:2017年12月5日 下午9:02:44 */ public interface Function<T,E> { public T callback(E e); }
RedisService類:
package com.taotao.common.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import redis.clients.jedis.ShardedJedis; import redis.clients.jedis.ShardedJedisPool; /** * redis的相關操作 * @author yeying *<p>Description:</p> *<p>Company:</p> * @date:2017年12月3日 下午2:11:47 */ @Service public class RedisService { @Autowired(required=false) //需要再注入進去 private ShardedJedisPool shardedJedisPool; private <T> T execute(Function<T, ShardedJedis> fun){ ShardedJedis shardedJedis = null; try { // 從連接池中獲取到jedis分片對象 shardedJedis = shardedJedisPool.getResource(); // 從redis中獲取數據 return fun.callback(shardedJedis); } catch (Exception e) { e.printStackTrace(); } finally { if (null != shardedJedis) { // 關閉,檢測連接是否有效,有效則放回到連接池中,無效則重置狀態 shardedJedis.close(); } } return null; } /** * 執行set操作 * @param key * @param value * @return */ public String set(final String key,final String value){ return this.execute(new Function<String, ShardedJedis>() { @Override public String callback(ShardedJedis e) { return e.set(key, value); } }); } /** * 執行set操作,并設置生存時間,單位為秒 * @param key * @param value * @param seconds * @return */ public String set(final String key,final String value,final Integer seconds){ return this.execute(new Function<String, ShardedJedis>() { @Override public String callback(ShardedJedis e) { String str =e.set(key, value); e.expire(key, seconds); return str; } }); } /** * 執行get操作 * @param key * @return */ public String get(final String key){ return this.execute(new Function<String, ShardedJedis>() { @Override public String callback(ShardedJedis e) { return e.get(key); } }); } /** * 執行set操作 * @param key * @return */ public Long del(final String key){ return this.execute(new Function<Long, ShardedJedis>() { @Override public Long callback(ShardedJedis e) { return e.del(key); } }); } /** * 設置生存時間,單位為秒 * @param key * @param seconds * @return */ public Long expire(final String key, final Integer seconds) { return this.execute(new Function<Long, ShardedJedis>() { @Override public Long callback(ShardedJedis e) { return e.expire(key, seconds); } }); } }
第五步,啟動redis服務,redis-server.exe,雙擊打開:
看完了這篇文章,相信你對“redis與spring整合使用的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。