【问题标题】:Storing different data using RedisTemplate (Spring)使用 RedisTemplate (Spring) 存储不同的数据
【发布时间】:2013-04-05 21:16:33
【问题描述】:

我正在使用 Spring 的 RedisTemplate 与 Redis 交互。

目前我存储在 Redis 中的数据使用 OpsForHash 操作,因为这最适合我存储的数据。

但现在我想添加不同结构的数据,即 Key -> List

因此,我是否应该在我的每个 daos 中使用不同的 RedisTemplate 实例(根据需要进行参数化)但连接到同一个 Redis 实例?那是对的吗?或者我应该有一个共享的 RedisTemplate 实例,我可以使用它来存储散列结构数据和列表结构数据?如果是后者,当我受到实例参数化的限制时,我该怎么做?即目前我有

键(字符串)--> 映射

现在我想添加

键(字符串)--> 列表

这可能使用单个 RedisTemplate 吗?

谢谢!

【问题讨论】:

    标签: spring redis


    【解决方案1】:

    由于您的键类型在这两种情况下都是 String,因此您应该能够使用相同的 RedisTemplate 实例,假设您已使用 List 的值类型参数化 RedisTemplate。例如:

    RedisTemplate<String, String> template;
    // Hash Key/Value types can be anything as long as the proper serializers are set
    HashOperations<String,String,Integer> hashOps = template.opsForHash();
    hashOps.put("foo", "bar", 3);
    // List value types are taken from RedisTemplate parameterization
    ListOperations<String,String> listOps = template.opsForList();
    listOps.leftPush("foolist", "bar");
    

    【讨论】:

    • 这真的有效吗?如果我尝试将列表添加到字符串类型,它会说类型不兼容。与列表到哈希或哈希到列表等相同。这是在 redis cli 中,但我无法想象这在春天会有所不同。
    【解决方案2】:

    提供的第一个解决方案对我不起作用。但我确实找到了解决方案并将其发布为另一个问题的解决方案

    查看这个答案https://stackoverflow.com/a/30484834/4671737

    【讨论】:

    • 这不是答案,更像是评论。
    • 好的,但我没有添加评论的声誉 - 第一个答案不起作用
    猜你喜欢
    • 2014-05-15
    • 2014-04-01
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    相关资源
    最近更新 更多