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

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

但是现在我想添加另一种结构的数据,即键->列表

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

键(字串)->映射

现在我要添加

键(字串)-> list

是否可以使用单个RedisTemplate?

谢谢!

最佳答案

由于在两种情况下您的键类型均为String,因此假设您已经使用List的值类型对RedisTemplate进行了参数化设置,则您应该能够使用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");

10-05 19:04