我想将redis用于文章(帖子) - 读取处理。我想在redis中存储每个用户读取的每篇文章的idex。
所以关键是userId和value(可能是list)是文章索引列表。我想为每个索引值设置过期时间。
可能吗?我想知道redis命令。
- 附加信息
我想键 - 值(列表),并使列表中的每个值到期。如果到期一个键,我不希望所有的值丢失。我想删除特定的一个键。
数据显示,songkeyy - [1,2,3,4,5]到期1:100ms,2:200ms,3:30ms ......就像这样。
如果您可以推荐相应的redis命令,那将是很好的。
是的,这肯定是可能的
redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 10
(integer) 1
redis> TTL mykey
(integer) 10
redis>
您可以在键上设置TTL(生存时间),该TTL将在给定时间后到期。
redis列表的设计和实现不支持此操作。但还有另一种方法可以实现它。
写:
zadd user_id article_id expired_time
读:
zrange user_id 0 -1 WITHSCORES
当读取req到来时,获取此用户已读取的所有article_id,并删除所有过期的项目:
for i in res:
if i.score < time.now()
zrem user_id i.article_id