redis - 为什么redis-cli获取程序设置的对象的值总是nil

标签 redis

我使用了 spring-data-redis 并将模板设置如下:

@Bean
public RedisTemplate<String, Object> redisTemplate() {
    RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
    template.setConnectionFactory(jedisConnectionFactory());
    //template.setDefaultSerializer(new StringRedisSerializer());
    return template;
}



@Autowired
private RedisTemplate<String, Object> redisTemplate;
private ValueOperations<String, Object> valueOps;
public static final String CATEGORY="QUOTE"; 

public void save(String key, String value) {

    valueOps.set(key, value);
    logger.info("redis get key={}, value={}", key, get(key));
}   

当我运行代码时,它可以将值显示为字符串,

Aug 02, 2017 5:00:52 下午 com.web.service.QuoteRepo save
INFO: redis get key=QUOTE:932:324371:rem, value=4

当我去redis客户端的时候

$ ./redis-cli
127.0.0.1:6379>get QUOTE:932:324371:rem
(nil)

最佳答案

注意这行代码:

private ValueOperations<String, Object> valueOps;

您应该将模板作为 ValueOperations 注入(inject)。你忘记了这样的事情:

@resource(name="redisTemplate")
private ValueOperations<String, Object> valueOps;

更多信息请引用:https://docs.spring.io/spring-data/redis/docs/1.8.6.RELEASE/reference/html/ Section5.5对你有帮助。

关于redis - 为什么redis-cli获取程序设置的对象的值总是nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45456262/

相关文章:

c# - 如何从单个命令中获取多个 Redis 列表

.net - Net的Redis客户端缓存

spring - 无法使用 Redis 和 Spring 找到默认的 ScheduledExecutorService bean

node.js - express-session不设置cookie?

node.js - 使用正则表达式对事件进行 Redis 键空间通知

Redis 上的 "subscribe"中的 MongoDB

c++ - 请求有关执行 IPC/事件捕获的建议

Redis 键匹配性能

java - 与 Redisson 的连接池

redis - 生成 RPM 以同时运行 "make"和 "make install"