Redis pubsub 一个复杂的数据结构
Redis pubsub a complex data structure
我想将 redis PUBSUB 功能与散列等复杂数据结构一起使用 table。我在网上看到的所有例子都只发布字符串。
我希望能够做到这一点:
redis> HSET dog name "Fido" weight 65
redis> PUBLISH pets dog
当我尝试这个时,我得到的响应是 "dog"
,而不是散列 table。
我有办法做到这一点吗?
我考虑过的一种替代方案是这样的:让发布者执行与上述相同的命令,然后订阅者将收到文本,然后立即为该密钥发出 HGETALL
命令。但是这样可以多次调用 redis,而不是一次发送哈希 table。
有没有办法通过 redis PUBSUB 发送复杂的数据结构?
Is there a way I can do this?
没办法。您只能发布一个字符串。而您的替代方案是解决它的解决方案。
Is there a way I can send a complex data structure over redis PUBSUB?
为了避免多次调用 Redis,可以将哈希序列化为 JSON 字符串,例如{"name" : "Fido", "weight" : 65}, 并发布 JSON 字符串。
是的,我们可以做到。
首先创建你的哈希。哈希总是由唯一键组成,唯一键将是一个字符串,然后发布你的哈希键。
而不是序列化散列。以上方法简单明了。
发布哈希键的一大优势是,如果我们更新了一些字段并且我们已经将发布的键存储在列表或集合中,那么将来我们可以很容易地获得 latest/updated 哈希对象。
它节省了我们的带宽和网络通话。
我想将 redis PUBSUB 功能与散列等复杂数据结构一起使用 table。我在网上看到的所有例子都只发布字符串。
我希望能够做到这一点:
redis> HSET dog name "Fido" weight 65
redis> PUBLISH pets dog
当我尝试这个时,我得到的响应是 "dog"
,而不是散列 table。
我有办法做到这一点吗?
我考虑过的一种替代方案是这样的:让发布者执行与上述相同的命令,然后订阅者将收到文本,然后立即为该密钥发出 HGETALL
命令。但是这样可以多次调用 redis,而不是一次发送哈希 table。
有没有办法通过 redis PUBSUB 发送复杂的数据结构?
Is there a way I can do this?
没办法。您只能发布一个字符串。而您的替代方案是解决它的解决方案。
Is there a way I can send a complex data structure over redis PUBSUB?
为了避免多次调用 Redis,可以将哈希序列化为 JSON 字符串,例如{"name" : "Fido", "weight" : 65}, 并发布 JSON 字符串。
是的,我们可以做到。 首先创建你的哈希。哈希总是由唯一键组成,唯一键将是一个字符串,然后发布你的哈希键。
而不是序列化散列。以上方法简单明了。
发布哈希键的一大优势是,如果我们更新了一些字段并且我们已经将发布的键存储在列表或集合中,那么将来我们可以很容易地获得 latest/updated 哈希对象。
它节省了我们的带宽和网络通话。