service层 怎么根据key获取redis里得数据 并转成list
时间: 2024-02-24 13:54:27 浏览: 151
首先,需要在service层注入redisTemplate对象,然后可以使用该对象的opsForValue()方法获取ValueOperations对象,通过该对象的get方法即可根据key获取redis中的数据,代码示例如下:
```
@Autowired
private RedisTemplate redisTemplate;
public List<Object> getListByKey(String key) {
ValueOperations<String, Object> valueOps = redisTemplate.opsForValue();
Object obj = valueOps.get(key);
List<Object> list = null;
if(obj != null && obj instanceof List) {
list = (List<Object>) obj;
}
return list;
}
```
其中,redisTemplate需要在配置文件中进行配置,配置方法可以参考下面的示例:
```
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(factory);
template.setKeySerializer(new StringRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
return template;
}
}
```
在这个示例中,我们使用的是StringRedisSerializer和GenericJackson2JsonRedisSerializer来对redis中的key和value进行序列化和反序列化,具体的序列化方式可以根据自己的需求进行配置。
阅读全文