Redis的List,如何控制其长度?

2013-04-12 11:40:21 +08:00
 verfino
现在有一个List队列,不停的写入,并读取最近写入的3笔,但是长度只能不断增加

现在用的方法是

1. 初始化这个list,插入5个值
2. 每次新lpush进去的时候,执行完后用rpop一个

但是这个队列大概使用频度巨大,保守估计进出1000次/s左右,而且要持续2个小时左右时间

server是用NodeJS来做的,不会有大的阻塞

求控制Redis长度更好的解决方案
28427 次点击
所在节点    Redis
6 条回复
Cadina
2013-04-12 13:38:53 +08:00
看下LTRIM这个命令
http://redis.io/commands/ltrim
每次插入完LTRIM一下
verfino
2013-04-12 14:00:21 +08:00
@Cadina 谢谢 恐怕真的只能通过这个控制 Stack Overflow里面求助也是只有这个方法
Cadina
2013-04-12 14:17:40 +08:00
@verfino 这个也是redis推荐的用法呢
verfino
2013-04-12 15:46:22 +08:00
@Cadina 确实,看了下网上大部分介绍redis api的文章....貌似都是这么举例用的
ugg
2013-06-16 00:40:41 +08:00
可以用个小技巧,比如你需要最新的10条记录,可以使list保存15条记录,每到15条的时候再去删除到10条,这样操作的次数就会大大减少~
verfino
2013-06-17 21:19:30 +08:00
5次数据更新时
你的方案是: 判断5次长度,然后对Redis进行一次del操作
相比我之前: 5次del操作

:-D 明天去公司测试下效果,谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/65663

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX