spring-date-redis用法

本文详细介绍了Spring Data Redis与Spring框架的整合过程,包括导入依赖、配置连接池、设置连接工厂及操作模板,并通过测试代码验证整合效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spring全家桶之spring-date-redis
今天在项目中用到了spring-date-redis,顺便记录一下

概念:

  • 是一内存型的数据库。最大特点:速度快。不擅长处理数据量太大的数据。
  • jedis 是redis官方针对java推出一款操作API
  • spring data redis 是对jedis的一个封装。

spring data redis的整合技巧

如果整合的框架是需要单独启动一个外部服务,则与spring框架整合的流程,如下:
a>导入pom文件

<dependency>
     <groupId>redis.clients</groupId>
     <artifactId>jedis</artifactId>
     <version>2.8.1</version>
</dependency>
<dependency>
     <groupId>org.springframework.data</groupId>
     <artifactId>spring-data-redis</artifactId>
     <version>1.7.2.RELEASE</version>
</dependency>

b>配置与spring整合的配置文件
配置文件放在 src/main/resource目录下,文件名:applicationCotext-redis.xml

配置要整合的技术的连接池(为了与当前整合技术的外部服务建立连接)

  1. 如果要将redis连接所需的参数进行统一管理,则还需要导入 *.properties文件
<context:property-placeholder location="classpath*:properties/*.properties" /> 
<!-- redis 相关配置 --> 
<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">  
     <property name="maxIdle" value="${redis.maxIdle}" />   
     <property name="maxWaitMillis" value="${redis.maxWait}" />  
     <property name="testOnBorrow" value="${redis.testOnBorrow}" />  
</bean>  

2.配置与spring( data)整合后的连接工厂(将这个连接的操作交给spring( data)来管理)

<bean id="JedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" 
      p:host-name="${redis.host}" p:port="${redis.port}" p:password="${redis.pass}" p:pool-config-ref="poolConfig"/> 

3.配置spring 的操作模板

<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">  
     <property name="connectionFactory" ref="JedisConnectionFactory" />  
</bean> 

c>测试框架是否整合成功

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:spring/applicationContext-redis.xml")
public class TestValue {
     @Autowired
     private RedisTemplate redisTemplate;

     @Test
     public void setValue(){
          redisTemplate.boundValueOps("name").set("---");		
     }
     @Test
     public void getValue(){
          String str = (String) redisTemplate.boundValueOps("name").get();
          System.out.println(str);		
     }
     @Test
     public void deleteValue(){
          redisTemplate.delete("name");
     }
}
rg.springframework.data.redis.serializer.SerializationException: Could not read JSON: Cannot construct instance of `org.springframework.security.core.authority.SimpleGrantedAuthority` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator) at [Source: (byte[])"{"@class":"com.yejiali.backend.entity.MyUserDetails","user":{"@class":"com.yejiali.backend.entity.User","id":11,"username":"bbb","password":"$2a$10$ETfXTIbWnRibT1NzDuloX.WytSiUpm2Pze6TNoXLHud9p9zhzjkFq","realName":null,"role":null,"avatar":null,"phonenumber":null,"email":null,"updataTime":["java.util.Date",1747105503000],"createTime":["java.util.Date",1747105503000],"lastLogin":null,"delFlag":0},"authorities":["java.util.ArrayList",[{"@class":"org.springframework.security.core.authority.SimpleGr"[truncated 230 bytes]; line: 1, column: 517] (through reference chain: com.yejiali.backend.entity.MyUserDetails["authorities"]->java.util.ArrayList[0]) at org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer.deserialize(GenericJackson2JsonRedisSerializer.java:239) ~[spring-data-redis-3.0.1.jar:3.0.1] at org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer.deserialize(GenericJackson2JsonRedisSerializer.java:216) ~[spring-data-redis-3.0.1.jar:3.0.1] at org.springframework.data.redis.core.AbstractOperations.deserializeValue(AbstractOperations.java:360) ~[spring-data-redis-3.0.1.jar:3.0.1] at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:62) ~[spring-data-redis-3.0.1.jar:3.0.1] at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:406) ~[spring-data-redis-3.0.1.jar:3.0.1] at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:373) ~[spring-data-redis-3.0.1.jar:3.0.1] at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:97) ~[spring-data-redis-3.0.
05-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值