jedis是一款java连接redis的客户端,spring基于jedis进行了封装,提供了简洁的操作redis的方法。
使用maven进行管理jar包之间的依赖:

  1. <dependency>
  2. <groupId>org.springframework.data</groupId>
  3. <artifactId>spring-data-redis</artifactId>
  4. <version>${spring-data-redis-version}</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>redis.clients</groupId>
  8. <artifactId>jedis</artifactId>
  9. <version>${redis.clients-jedis-version}</version>
  10. </dependency>

spring-data-redis需要依赖jedis包,事实上spring-data-redis pom文件中就自动包含了jedis的配置。http://www.mvnrepository.com/ 依据所需要的版本。

jedis客户端版本过高,我手动采用的是2.7.2的版本的jedis 或导致报错

spring-data-redis用的1.4.2的版本

讲jedis的版本号换位2.6.2以下就好了

(1)、JedisConnectionFactory redis连接工厂
类似于数据库连接池一样,redis客户端也建立一个连接工厂

  1. import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
  2. @Bean
  3. public JedisConnectionFactory jedisConnectionFactory() {
  4. JedisConnectionFactory connFactory = new JedisConnectionFactory();
  5. connFactory.setHostName("127.0.0.1"); //此处可以换成配置文件属性注入进来
  6. connFactory.setPort(6379);
  7. connFactory.setUsePool(true);//使用连接池
  8.          JedisPoolConfig config=new JedisPoolConfig();
             config.setMaxTotal(100);
             config.setMaxIdle(30);
             config.setMinIdle(8); 
             config.setMaxWaitMillis(30000);
             //向调用者输出“链接”资源时,是否检测是有有效,如果无效则从连接池中移除,并尝试获取继续获取。设为true,一个挂都不能用 
             config.setTestOnBorrow(false); 
             //向连接池“归还”链接时,是否检测“链接”对象的有效性。
             config.setTestOnReturn(true);
            connFactory.setPoolConfig(config);
     
  9. return connFactory;
  10. }

(2)、redis RedisTemplate
有了redis连接工厂,就要具体的redis session了,这些都是一个道理。

  1. import org.springframework.data.redis.core.RedisTemplate;
  2. import org.springframework.data.redis.serializer.StringRedisSerializer;
  3. @Bean
  4. public  RedisTemplate<String, String> redis() {
  5. RedisTemplate<String, String> redisTemplate = new RedisTemplate<String, String>();
  6. redisTemplate.setConnectionFactory(jedisConnectionFactory());
  7. redisTemplate.setKeySerializer(new StringRedisSerializer());//key的序列化适配器
  8. redisTemplate.setValueSerializer(new StringRedisSerializer());//value的序列化适配器,也可以自己编写,大部分场景StringRedisSerializer足以满足需求了。
  9. return redisTemplate;
  10. }

(3)、操作redis

  1. import org.springframework.beans.factory.annotation.Autowired;
  2. import org.springframework.data.redis.core.RedisTemplate;
  3. import org.springframework.stereotype.Component;
  4. @Component
  5. public class CacheDemo {
  6. @Autowired private RedisTemplate<String, String> redis;
  7. public void set(String key,String value){
  8. redis.opsForValue().set(key, value);
  9. }
  10. }

(4)、总结。
要是一切事情都像这么简单就好了,不过spring已经封装的极其简洁,操作起来也非常方便。
redis.opsForValue() 封装操作strings
redis.opsForList() 封装操作list
redis.opsForSet() 封装操作sets
redis.opsForZSet() 封装操作sorted sets
redis.opsForHash() 封装操作hashs

redis的三种使用模式: http://blog.csdn.net/zhousenshan/article/details/51822253

redis整合spring @Bean写法的更多相关文章

  1. Redis windows环境安装 以及 redis整合spring

    Redis对于Linux是官方支持的,安装和使用没有什么好说的,普通使用按照官方指导,5分钟以内就能搞定.详情请参考: http://redis.io/download Redis官方是不支持wind ...

  2. redis整合Spring入门

    首先 衷心感谢这篇博客给我入门时的启发  三颗心脏 你需要知道,spring的官方文档中已经注明,与redis整合时,spring的jar包版本不能低于4.2.6,否则不支持,会报错的哟 测试的时候请 ...

  3. Redis整合Spring结合使用缓存实例

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文介绍了如何在Spring中配置redis,并通过Spring中AOP的思想,将缓存的 ...

  4. Redis整合Spring结合使用缓存实例(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文介绍了如何在Spring中配置redis,并通过Spring中AOP的思想,将缓存的 ...

  5. Redis整合spring总结

    一:Redis简介: Redis是一个开源(BSD许可)的内存数据结构存储,用作数据库,缓存和消息代理. 简单来说,它是一个以(key,value)的形式存储数据的数据库. 官网:https://re ...

  6. Redis学习总结(3)——Redis整合Spring结合使用缓存实例

    摘要:本文介绍了如何在Spring中配置redis,并通过Spring中AOP的思想,将缓存的方法切入到有需要进入缓存的类或方法前面. 一.Redis介绍 什么是Redis? redis是一个key- ...

  7. Redis整合Spring结合使用缓存实例(三)

    一.Redis介绍 什么是Redis? redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set( ...

  8. Redis整合Spring实现分布式锁

    spring把专门的数据操作独立封装在spring-data系列中,spring-data-redis是对Redis的封装 <dependencies> <!-- 添加spring- ...

  9. redis整合Spring之序列化对象与反序列化

    写在最前面 1.Spring必须是4.2.6及以上版本才支持redis 2.jar包版本建议统一 需要准备jar包 1.aopalliance-1.0.jar 2.spring-data-common ...

随机推荐

  1. 映像备份与恢复管理工具Easy Image X使用说明

    Easy Image X(简称EIX)是一个支持Ghost映像(.gho)和ImageX映像(.wim)的映像管理工具,具有友好的图形界面,仅需几步简单操作即可完成映像备份与恢复工作.维护时使用最多的 ...

  2. scrollview始终显示滚动条 Android

    设置scrollview的:android:fadeScrollbars="false"表示始终显示垂直滚动条

  3. 第三章—Windows程序

    这一章我都不知道该如何写了,呵呵~~ 毕竟,Win32是一个非常深奥的系统,目前还容不得我这种 小辈在这儿说三道四,不过,我既然是要写给那些入门阶段的朋友们看的,又不是写给那些搞程序设计老鸟看的,所以 ...

  4. 修改Tomcat内存大小

    Windows下,在文件/bin/catalina.bat,Linux下,在文件/bin/catalina.sh的前面,增加如下设置: JAVA_OPTS=-Xms[初始化内存大小] -Xmx[可以使 ...

  5. HDOJ多校联合第四场

    B题: C题:仅由'A','G','C','T',4个字母组成,给定一个字符串S,|S|<=15,给定一个整数m,以m为长度且仅含4种字母的字符串T,求LCS(S,T)为0,1,2,3....| ...

  6. FireMonkey vs. VCL (FMX的UI更灵活,图形效果更强,硬件加速,内嵌3D,使用浮点数更精确,跨平台,可使用Mida converter转换和TFireMonkeyContainer内嵌)

    Frequently when I am talking about the VCL or FireMonkey I get some of these common questions: Is VC ...

  7. 从 Android 静音看正确的查找 bug 的姿势

    0.写在前面 没抢到小马哥的红包,无心回家了,回公司写篇文章安慰下自己TT..话说年关难过,bug多多,时间久了难免头昏脑热,不辨朝暮,难识乾坤...艾玛,扯远了,话说谁没踩过坑,可视大家都是如何从坑 ...

  8. cat ,more, Less区别

    使用cat more less都可以查看文本内容,但是它们三者有什么区别呢?more和less的功能完全重复吗?以下是我个人的总结,欢迎大家一起来分享 cat        连续显示.查看文件内容mo ...

  9. [LOJ 1008] Fibsieve`s Fantabulous Birthday

    A - Fibsieve`s Fantabulous Birthday Time Limit:500MS     Memory Limit:32768KB     64bit IO Format:%l ...

  10. STL总结之deque

    STL中deque是我们常说的双端队列,既可以从头添加元素,也可以从尾部添加元素,deque的成员函数和vector的成员函数十分相似,但是它们的内部实现却又很多不同.   deque的模板声明: t ...