【问题标题】:Redis DEL vs LRU Eviction?Redis DEL 与 LRU 驱逐?
【发布时间】:2020-11-16 00:40:15
【问题描述】:

如果我使用 redis 检查历史上是否处理过或当前正在处理唯一消息(以防止 Pub/Sub 重复消息处理),并且我不希望再次阅读此 kv 对,我应该打扰删除消息处理程序末尾的 kv 对,还是让 LRU eviction 最终删除它?消息的处理将比重复消息之间的延迟时间长得多。

对于上下文,这是处理过程的一些 JS 伪代码:

// Message comes in
const messageHandler = (message) => {
  const duplicate = checkMessageInRedis(message.ID)
  if (duplicate) return
  registerMessageInRedis(message.ID)
  // ... do some stuff to the message
  deleteMessageInRedis(message.ID) // DO I BOTHER WITH THIS??? OR LET EVICTION DELETE IT?
}

我想问题变成了:驱逐删除是否比 DEL 事务更占用资源?如果是的话,是多少?

【问题讨论】:

    标签: redis publish-subscribe


    【解决方案1】:

    最好的方法是在将消息添加到 Redis 时提供 TTL(生存时间)。

    即registerMessageInRedis(message.ID, ttl)

    这将在 ttl 过期后自动删除消息,并将节省额外的网络往返费用以进行显式删除。

    【讨论】:

      猜你喜欢
      • 2016-06-20
      • 2013-12-29
      • 2015-04-20
      • 2020-02-08
      • 1970-01-01
      • 1970-01-01
      • 2020-07-10
      • 2021-02-05
      • 1970-01-01
      相关资源
      最近更新 更多