如何强制redis客户端在流数据结构过期时抛出异常?

pxyaymoc  于 2021-06-09  发布在  Redis
关注(0)|答案(0)|浏览(177)

这是用redis命令表示的senario:

127.0.0.1:6381> xadd test 1 field1 data1
"1-0"
127.0.0.1:6381> xrange test - +
1) 1) "1-0"
   2) 1) "field1"
      2) "data1"
127.0.0.1:6381> expire test 10
(integer) 1
127.0.0.1:6381> xrange test - +
1) 1) "1-0"
   2) 1) "field1"
      2) "data1"
127.0.0.1:6381> xrange test - +
(empty list or set)

在这个序列中,流数据结构被设置为在10秒内过期。10秒后 xrange 命令返回 (empty list or set) . 我可以向警方证实 keys 命令那把钥匙 test 已经不存在了。
如果我把上面的顺序翻译成莴苣,我会找到最后一个 xrange 命令只返回一个空列表。即使密钥不再存在,它也不会抛出任何异常。

key = 'test'
    slot = SlotHash.getSlot(key);
    var nodeId = cluster.getPartitions().getPartitionBySlot(slot).getNodeId();
    shard = cluster.getConnection(nodeId);
    shard.sync().xrange(key, Range.from(Boundary.unbounded(), Boundary.unbounded()), 100)

是否可以使xrange在密钥过期时抛出异常?
我已经阅读了keyspace通知的文档(https://redis.io/topics/notifications). 然而,由于这是“一发不可收拾”,通知的送达不能得到保证。因此,我不能使用键空间通知作为解决方案。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题