Redis 整合Redis. Templace
创建时间:2025-10-26 18:45
长度:2644
浏览:0
评论:0
在我们使用Jedis的时候,如果我们想要完成一些Redis的操作,对应的命令其实就是对应的方法,比如Set在Jedis中也就是set(方法,虽然很好上手,但是这会导致我们的代码比较臃肿,而既然SpringData出手整合了,它必然会按照一定的规律做进一步的封
装,具体如下:
redisTemplate.ops..方法囊括了几乎所有的Redis不同数据类型的命令操作
• 操作String类型数据:redisTemplate.opsForValue()
• 操作List数据类型:redisTemplate.opsForList()
• 操作Hash数据类型:redisTemplate.opsForHash()
• tRIFSet#*#: redisTemplate.opsForSet()
• 操作ZSet数据类型:redisTemplate.opsForZSet()
• 以上这些方法返回的都是...Operations类型,比如
• ValueOperations其中包括的就是String类型的所有操作:Set、Get等
注意:RedisTemplate中还封装着一些通用的或者特殊的操作
要使用Redis Templace
就要用到一些依赖
如果是新项目

依赖(如果勾选了Spring Data redis,就不用管)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>在项目中的application.yml配置redis
spring:
data:
redis:
database: 1
host: localhost
port: 6379
这样就可以完成使用了
package org.huangcy.redisdemo;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
@SpringBootTest
class RedisDemoApplicationTests {
@Autowired
private RedisTemplate redisTemplate;
@Test
void contextLoads() {
redisTemplate.opsForValue().set("aa:name", "huangcy");
System.out.println(redisTemplate.opsForValue().get("name"));
}
}
自定义配置redisTemplace (解决key乱码的问题,原来key是用Object)
package org.huangcy.redisdemo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
// 为了开发方便,key直接设置为String 类型
RedisTemplate<String, Object> template = new RedisTemplate<>();
// 设置连接工厂
template.setConnectionFactory(redisConnectionFactory);
// 序列化配置,通过JSON 解析任意对象
GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
// 设置key和value的序列化方式
template.setKeySerializer(RedisSerializer.string());
template.setHashValueSerializer(RedisSerializer.string());
template.setValueSerializer(genericJackson2JsonRedisSerializer);
template.setHashValueSerializer(genericJackson2JsonRedisSerializer);
template.afterPropertiesSet();
return template;
}
}