温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-08-09 11:00:24 来源:亿速云 阅读:168 作者:小新 栏目:编程语言

小编给大家分享一下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