首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Redis

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

  •  
  •   verfino · 2013-04-12 11:40:21 +08:00 · 20784 次点击
    这是一个创建于 2376 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在有一个List队列,不停的写入,并读取最近写入的3笔,但是长度只能不断增加

    现在用的方法是

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

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

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

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

    :-D 明天去公司测试下效果,谢谢
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1019 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 20ms · UTC 22:40 · PVG 06:40 · LAX 15:40 · JFK 18:40
    ♥ Do have faith in what you're doing.