设为首页 收藏本站
查看: 601|回复: 0

[经验分享] redis 结合Spring的应用

[复制链接]

尚未签到

发表于 2016-12-18 09:26:25 | 显示全部楼层 |阅读模式
  一 Redis的安装
  1:Window版Redis的安装
  请参考网址http://os.iyunv.com/art/201403/431103.htm
  2:Linux版Redis的安装
  请参考网址http://www.cnblogs.com/silent2012/p/3499654.html
  安装完成之后,需要下载的几个jar文件。
  
DSC0000.png
 
  
DSC0001.png
 
DSC0002.png
 
  二 配置和测试
  1 配置

Redis.properties 写道

redis.ip=localhost
redis2.ip=192.168.1.1
#Port
redis.port=6379
#password
redis.password=mima

#最大能够保持idel状态的对象数
redis.pool.maxIdle=200
#当调用borrow Object方法时,是否进行有效性检查
redis.pool.testOnBorrow=true
#当调用return Object方法时,是否进行有效性检查
redis.pool.testOnReturn=true
  application-redis.xml的配置信息如下

<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxIdle"       value="${redis.pool.maxIdle}" />  
<property name="testOnBorrow"  value="${redis.pool.testOnBorrow}" />
</bean>
<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" >
<property name="hostName"   value="${redis.ip}" />  
<property name="port"       value="${redis.port}" />
<property name="password" value="${redis.password}"/>
<property name="poolConfig" ref="jedisPoolConfig" />
</bean>
<bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">  
<property name="connectionFactory"   ref="jedisConnectionFactory" />  
</bean>  
  并在application-redis.xml中加入<bean id="testDao" class="impl.TestDao" />
  2 测试。
  在TestDao实现你基本添加和获取的方法。
  (1)定义一个抽象类,并在该抽象类注入redisTemplate的方法

public abstract class AbstractRedisDao<K, V> {
@Autowired   
protected RedisTemplate<K, V> redisTemplate;  
public void setRedisTemplate(RedisTemplate<K, V> redisTemplate) {  
this.redisTemplate = redisTemplate;  
}  
protected RedisSerializer<String> getRedisSerializer() {  
return redisTemplate.getStringSerializer();  
}  
}
  (2)定义添加和获取接口方法

public interface ITestClassDao {
/**
* 新增
* @param testClass
* @return
*/  
boolean add(TestClass testClass);  
/**
* 获取
* @param keyId
* @return  
*/  
TestClass get(String keyId);  
}

  (3) 定义实现

public class TestClassDao extends AbstractBaseRedisDao<String, TestClass>  implements ITestClassDao  {
/**  
* 新增
* @param testClass
* @return
*/  
public boolean add(final TestClass testClass) {  
boolean result = redisTemplate.execute(new RedisCallback<Boolean>() {  
public Boolean doInRedis(RedisConnection connection)  
throws DataAccessException {  
RedisSerializer<String> serializer = getRedisSerializer();  
byte[] key  = serializer.serialize(testClass.getId());  
byte[] name = serializer.serialize(testClass.getName());  
return connection.setNX(key, name);  
}  
});  
return result;  
}  

/**  
* 获取
* @param keyId
* @return
*/  
public TestClass get(final String keyId) {  
TestClass result = redisTemplate.execute(new RedisCallback<TestClass>() {  
public TestClass doInRedis(RedisConnection connection)  
throws DataAccessException {  
RedisSerializer<String> serializer = getRedisSerializer();  
byte[] key = serializer.serialize(keyId);  
byte[] value = connection.get(key);  
if (value == null) {  
return null;  
}  
String name = serializer.deserialize(value);  
return new TestClass(keyId, name);  
}  
});  
return result;  
}  
}

  三 结束
  当然redis还有更复杂的多表查询,正在学习。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-315832-1-1.html 上篇帖子: Redis:五、pipeline 下篇帖子: Redis学习例子
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表