【问题标题】:Clear Redis Cache periodically using Lambda使用 Lambda 定期清除 Redis 缓存
【发布时间】:2018-10-25 16:37:14
【问题描述】:

我正在编写一个连接到 AWS ElastiCache Redis 的 Lambda 函数。此 Lambda 函数将与数据库对话以返回记录列表并将这些记录缓存到 ElastiCache Redis。有时,新记录会添加到数据库中,我希望我的 Lambda 每天清除一次 Redis 缓存并重新缓存所有记录。有谁知道如何配置 ElastiCache Redis 以定期清除其缓存?

【问题讨论】:

  • Redis 带有一个内置的EXPIRE,您可以在编写密钥时使用它。如果你愿意,你也可以通过 lambda 函数flush db。 AFAIK,没有内置功能可以为您做到这一点。
  • 在 Node github.com/NodeRedis/node_redis 的 Redis 文档中,我发现:client.set('key', 'value!', 'EX', 10); 但是当我实现了它,我在 SET 中遇到了无效参数的错误。我最终使用了 EXPIRE

标签: node.js redis aws-lambda amazon-elasticache


【解决方案1】:

如果您想每天删除一次缓存,只需将其到期时间设置为一天结束。

但您是在说“删除并重新缓存”。 Redis 将如何做到这一点?您需要配置您的 Lambda(或编写另一个)来为您执行此操作。而且您最好在删除旧值之前计算新值。

【讨论】:

  • 据我研究,没有这样的 Redis 命令可以为我执行“删除和重新缓存”,因此我添加了一些条件语句来为我执行该功能。 伪代码 if (cachedData) { // 用它做点什么 } else { // 请求服务数据,捕获它,然后设置过期时间 }
  • 对,这是一个反问。
猜你喜欢
  • 2016-09-10
  • 1970-01-01
  • 1970-01-01
  • 2015-04-16
  • 1970-01-01
  • 2014-11-13
  • 1970-01-01
  • 2015-05-06
  • 1970-01-01
相关资源
最近更新 更多