91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis與spring整合使用的示例分析

發布時間:2021-08-09 11:00:24 來源:億速云 閱讀:123 作者:小新 欄目:編程語言

小編給大家分享一下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整合使用的示例分析

看完了這篇文章,相信你對“redis與spring整合使用的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东安县| 镶黄旗| 垣曲县| 柳林县| 岳西县| 手游| 壤塘县| 巴南区| 博野县| 青河县| 道孚县| 中阳县| 浦江县| 万州区| 西畴县| 镇赉县| 清原| 阿城市| 夹江县| 石阡县| 盐津县| 禄劝| 平乡县| 壶关县| 大城县| 梅河口市| 高淳县| 茶陵县| 静安区| 武义县| 永春县| 金寨县| 饶阳县| 宜章县| 同江市| 沁源县| 隆昌县| 清流县| 隆尧县| 正宁县| 巴彦淖尔市|