Configuration 将Redis配置为仅保留过去一天的密钥
我让一个应用程序将密钥写入Redis,而不指定密钥的过期时间。无法更改应用程序,但我想将Redis配置为在过去24小时内仅保留密钥,并删除旧密钥Configuration 将Redis配置为仅保留过去一天的密钥,configuration,redis,Configuration,Redis,我让一个应用程序将密钥写入Redis,而不指定密钥的过期时间。无法更改应用程序,但我想将Redis配置为在过去24小时内仅保留密钥,并删除旧密钥 如何?要在24小时后使密钥过期,您需要显式地为每个密钥设置TTL。要在24小时后使密钥过期,您需要显式地为每个密钥设置TTL。好了,没有办法配置Redis只在过去24小时内保留密钥并删除旧密钥,正如您所说的,至少您设置了TTL,但是有一个技巧你可以做到 我假设您不能更改您告诉我们的应用程序中的任何内容。。。因此,您需要创建一个脚本/命令/应用程序,它每
如何?要在24小时后使密钥过期,您需要显式地为每个密钥设置TTL。要在24小时后使密钥过期,您需要显式地为每个密钥设置TTL。好了,没有办法配置Redis只在过去24小时内保留密钥并删除旧密钥,正如您所说的,至少您设置了TTL,但是有一个技巧你可以做到 我假设您不能更改您告诉我们的应用程序中的任何内容。。。因此,您需要创建一个脚本/命令/应用程序,它每隔一个小的时间间隔(比如1分钟)连接到Redis服务器。时间间隔将取决于您在Redis中假设的平均键数 应用程序很简单,只需迭代所有键并使用三个命令:
- KEYS*->以获取完整的密钥列表
- TTL keyName->了解密钥是否已指定过期时间。如果没有,它将返回-1
- 过期keyName 86400->如果密钥未分配TTL,则设置24小时的TTL
在生产环境中,不建议使用带有大量密钥的KEYS命令,但您可以使用我以前建议的这种解决方法。AFAIK没有办法将Redis配置为仅在过去24小时内保留密钥并删除旧密钥,正如您所说,至少您设置了一个TTL,但有一个技巧您可以做到 我假设您不能更改您告诉我们的应用程序中的任何内容。。。因此,您需要创建一个脚本/命令/应用程序,它每隔一个小的时间间隔(比如1分钟)连接到Redis服务器。时间间隔将取决于您在Redis中假设的平均键数 应用程序很简单,只需迭代所有键并使用三个命令:
- KEYS*->以获取完整的密钥列表
- TTL keyName->了解密钥是否已指定过期时间。如果没有,它将返回-1
- 过期keyName 86400->如果密钥未分配TTL,则设置24小时的TTL