在做一个每日热点新闻的功能,每条新闻的浏览量以news_${id}
的key形式存在redis中,这时我需要在每天0点取清除所有news_${id}
形式的key。应该如何实现呢~
在做一个每日热点新闻的功能,每条新闻的浏览量以news_${id}
的key形式存在redis中,这时我需要在每天0点取清除所有news_${id}
形式的key。应该如何实现呢~
key
改成 news_${id}_${date}
的形式。5 回答4.8k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答1.8k 阅读✓ 已解决
5 回答1.9k 阅读
2 回答1.4k 阅读✓ 已解决
3 回答2k 阅读
跟node其实没什么关系,因为也不知道你用的什么adapter连接redis。从redis来讲,就是
keys news_*
获取所有你要的key,然后再挨个删除;另一种方法是自动删除,你更新浏览量时设置一个TTL让这个key恰好在0点过期。第二种方法不要直接使用,在并发浏览较多时可能会有问题,比如把昨天的浏览量带到今天什么的。要用第二种方法的话你要在key里面包含日期,比如
news_2020_03_03_<id>
,这样就不会有问题了。另外,根据你存储的数据的含义,建议你把key改成news_view_<date>_<id>
。