REDIS耐用性?如何自动过期数据?

ski*_*406 4 .net caching redis durability

我使用REDIS来存储数据(字符串).例如:关键"s1"商店价值"你好世界".关键"s2"商店价值"再见".我想在5分钟后s1自动过期(可用内存),但s2永不过期.我用C#,.net 4.0 >>如何编码?谢谢

wow*_*609 7

关于 EXPIRE 的文档允许您以秒为单位设置每个键的 EXPIRE 值。

EXPIRE s1 300
Run Code Online (Sandbox Code Playgroud)

将在 5 分钟内使密钥 s1 过期。

请参阅此处的文档:REDIS EXPIRE

如果您正在寻找 C# 代码,我认为这取决于您用于访问 REDIS 的库。还有一些其他 SO 问题可能会有所帮助,但也讨论了expire 不起作用的问题:Redis Expire does not work

  • 更好 - 使用 SET 内置的 EX 指令,即: SET s1 "hello world" EX 300 (2认同)

arg*_*eng 5

如果您计划将Redis用作每个密钥都有过期集的缓存,您可以考虑使用以下配置(假设最大内存限制为2兆字节为例):

maxmemory 2mb
maxmemory-policy allkeys-lru
Run Code Online (Sandbox Code Playgroud)

在此配置中,应用程序无需使用EXPIRE命令(或等效命令)为密钥设置生存时间,因为只要我们达到2兆字节的内存限制,所有密钥都将使用近似LRU算法逐出.

基本上在这种配置中,Redis的行为与memcached类似.我们有关于将Redis用作LRU缓存的更多文档.