redis中列表过期技巧

在操作 redis 的 list 的时候,发现 list 不能设置过期时间。

1
LPUSH languages python

LPUSH 将一个值推送到以 languages 为 key 的列表中,在 push 的时候是没有办法设置过期时间的。
所以需要在第一次 push 后设置过期时间。

写出伪代码

1
2
3
4
5
6
$len= LLEN languages
if $len == 0
LPUSH languages python
EXPIRE languages 100
ELSE
LPUSH languages python

发现如果这样操作,每次都需要访问 redis 两遍,当 list 中数据过多时就会有性能问题,简单优化了一下,就可以少访问一遍 redis。

1
2
3
$len= LPUSH languages python
if $len == 1
EXPIRE languages 100

这里的核心点就是 push 函数会放会当前 list 中目前的列表长度。

参考文档

坚持原创技术分享,您的支持将鼓励我继续创作!