java支持多个反应式Redis存储和跨存储的事务
我正在学习RedisforJava,我认为我真的缺少RedisAPI
假设我们有以下创建连接的代码:
RedisClient redisClient = RedisClient
.create("redis://password@localhost:6379/");
StatefulRedisConnection<String, String> connection
= redisClient.connect();
这为键类型字符串和值类型字符串定义了客户端
现在,当我需要处理多个Redis对象时,我该怎么做,不仅是字符串/字符串,而且是多个不同类型的集合
我是否应该为每个节点创建不同的连接
我曾尝试使用被动模板,但遇到了相同的问题,即我将创建具有不同类型的多个实例
在处理事务时,我不知道如何跨单个模板使用事务
例如,我想在Redis存储中插入一篇序列化文章,如:
Key postId | Value <post>
但在一个事务中,我还想将posted添加到表示提要的集合中:
Key topic | Value <set with post Id's>
我发现的所有示例都在同一个模板上执行事务,但我不知道如何继续
欢迎指点
# 1 楼答案
定义
StatefulRedisConnection
时的String, String
部分仅适用于正在使用的编解码器。当你定义:预定义的
StringCodec
被RedisClient
用来在java客户机和Redis之间传输数据如果您想在Redis和客户端之间来回传输数据时更改密钥和值的编码和解码方式,可以在此处使用自定义编解码器。有关RedisCodec here的更多详细信息
为了解决你的问题。如果键和值都是
String
类型,那么仍然应该能够为不同类型的操作使用相同的连接。对于Object
类型的键和值,应该序列化它们并将序列化结果传递给上述连接下面是一个示例片段(未运行/测试)
希望这有帮助