博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis整合spring @Bean写法
阅读量:5129 次
发布时间:2019-06-13

本文共 2569 字,大约阅读时间需要 8 分钟。

是一款java连接redis的客户端,spring基于jedis进行了封装,提供了简洁的操作redis的方法。

使用maven进行管理jar包之间的依赖:

Code   
  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的配置。 依据所需要的版本。

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

spring-data-redis用的1.4.2的版本

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

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

Code   
  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了,这些都是一个道理。

Code   
  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

Code   
  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的三种使用模式: 

转载于:https://www.cnblogs.com/wangdaijun/p/6178143.html

你可能感兴趣的文章
MyBaits动态sql语句
查看>>
用户空间与内核空间,进程上下文与中断上下文[总结]
查看>>
JAVA开发环境搭建
查看>>
Visual Studio基于CMake配置opencv1.0.0、opencv2.2
查看>>
SDN第四次作业
查看>>
django迁移数据库错误
查看>>
Data truncation: Out of range value for column 'Quality' at row 1
查看>>
字符串处理
查看>>
HtmlUnitDriver 网页内容动态抓取
查看>>
ad logon hour
查看>>
罗马数字与阿拉伯数字转换
查看>>
Eclipse 反编译之 JadClipse
查看>>
距离公式汇总以及Python实现
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
[ JAVA编程 ] double类型计算精度丢失问题及解决方法
查看>>
好玩的-记最近玩的几个经典ipad ios游戏
查看>>
PyQt5--EventSender
查看>>
Sql Server 中由数字转换为指定长度的字符串
查看>>