redis是一个复杂的数据结构

2w2cym1i  于 2021-06-09  发布在  Redis
关注(0)|答案(2)|浏览(507)

我想将redis pubsub功能与哈希表这样的复杂数据结构结合使用。我在网上看到的所有示例都只发布字符串。
我希望能够做到这一点:

redis> HSET dog name "Fido" weight 65
redis> PUBLISH pets dog

当我尝试这个的时候,我得到的回答是 "dog" ,而不是哈希表。
有办法吗?
我考虑过的另一种方法是:让发布者执行与上面相同的命令,然后订阅者将收到文本,然后立即发出 HGETALL 那把钥匙的命令。但是这样就有多个对redis的调用,而不是一次发送哈希表。
有没有办法通过redis pubsub发送一个复杂的数据结构?

fsi0uk1n

fsi0uk1n1#

是的,我们能做到。首先创建哈希。散列总是由唯一键组成,唯一键将是一个字符串,之后发布散列的键。
而不是对散列进行序列化。上述方法简单明了。
发布散列密钥的一大优点是,如果我们更新了一些字段,并且已经将发布的密钥存储在列表或集合中,那么将来我们可以很容易地获得最新/更新的散列对象。
它可以节省我们的带宽和网络通话。

nqwrtyyt

nqwrtyyt2#

有办法吗?
不可能。只能发布字符串。你的另一个选择就是解决这个问题。
有没有办法通过redis pubsub发送一个复杂的数据结构?
为了避免多次调用redis,可以将hash序列化为json字符串,例如{“name”:“fido”,“weight”:65},然后发布json字符串。

相关问题