【问题标题】:Spring data redis atomic integer variable key nameSpring数据redis原子整数变量键名
【发布时间】:2015-03-19 00:15:45
【问题描述】:

我想我可能遗漏了一些重要的东西,但是如何使用 Spring Data redis 对给定键进行原子递减?

RedisAtomicLongRedisAtomicInteger 绑定到我们在实例化它们时指定的键。

如何对我选择的任何键进行原子递减?

我必须求助于多执行吗?在 vanilla redis 中,我可以通过简单的 DECR 命令自动递减任何键,而无需使用 multi exec。我在这里遗漏了什么吗?

谢谢, 理查德。

【问题讨论】:

    标签: java spring spring-data-redis


    【解决方案1】:

    如果您想通过动态键递减,您可以执行以下操作

    // inject the actual template
    @Autowired
    private RedisTemplate<String, Integer> template; // This can be RedisTemplate<String, Long> also based on your need
    
    // inject the template as ValueOperations
    @Resource(name="redisTemplate")
    private ValueOperations<String, Integer> valueOps;
    
    public Integer decrement(String key) {
        return ((Long)valueOps.increment(key, -1l)).intValue();
    }
    

    【讨论】:

    • 嗨,但是使用简单的 StringRedisTemplate 也无法做到这一点吗?我的意思是如果我所要做的只是增加一个负值,那么是否有必要使用整数/长模板?
    猜你喜欢
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多