使用Redis,相当熟悉。现在,我面临着一种情况,正常的 PUBSUB 机制并不是处理某些情况的好方法。
取一个散列,我们说使用 HSET 存储对另一个散列的引用。
HSET "davids.trips" "trip1" "Stockholm"
HSET "davids.trips" "trip2" "London"
HSET "david" "age" "12"
HSET "david" "trips" "davids.trips" # Reference to the previous hash
现在,最后一个在内部已知并作为引用哈希处理。
然而,我们现在面临的问题是,什么时候expire现在出现在地图上"david"
我们希望能够使davids.trips
也因此它不会徘徊。
现在,我们可以 pubsub 使其在 HSET“david” 上过期,但是如果我们的服务器宕机了,那么我们将无法获取它,并且它将会丢失。
从 Java 中执行此操作,我们可能会丢失过期的 pubsub 消息。
相反,如果我们通过何处接收消息stream
相反,该消息必须至少被一个消息消耗,并且我们可以确保它被清除。
现在,我们怎样才能做到这一点?
我们可以轻松地将 pubsub 消息转换为类似流的行为吗?
如果是这样,怎么办?我正在使用 Jedis,但我可以发送一些代码来执行此操作。理想情况下,转换将在 Redis 服务器内进行,以便 pubsub 消息永远不会not转变为流。
顺便说一句:https://redis.io/topics/pubsub https://redis.io/topics/pubsub我们可以找:“请注意,一旦进入订阅模式,redis-cli 将不会接受任何命令,只能使用 Ctrl-C 退出该模式。”所以问题是,如果我们在 Redis 中订阅,然后尝试使用它们并将它们转换为流,它就会阻塞。
必须有一种方法可以使用 lua 和 pubsub 创建线程吗?