V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
wangleineo
V2EX  ›  分享创造

Redis-plus - 扩展了一下 Redis 的命令集

  •  
  •   wangleineo ·
    RealHacker · 2016-02-17 22:24:54 +08:00 · 2274 次点击
    这是一个创建于 2997 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Redis 支持的数据结构有一些操作并没有命令支持,需要借助 Pipeline 或者 Lua 脚本完成。我 fork 了 Redis ,用 C 实现了几个命令:

    https://github.com/RealHacker/redis-plus

    命令

    HPOP HKEY KEY

    • 从散列表中 Pop 一个 Key ,并返回它的值。相当于 HGET + HDEL 。

    LFIND LKEY STARTAT VALUE

    • 返回列表中值为 Value 的第一个位置,从 STARTAT 开始搜索。

    LINSERTAT LKEY INDEX VALUE

    • 在列表中 INDEX 的位置处插入 VALUE 节点。

    LCOUNT LKEY VALUE

    • 返回列表中值是 VALUE 的节点个数。

    SXOR SKEY1 SKEY2

    • 集合的异或操作 XOR

    大家认为还有什么命令是比较常用的?欢迎 feature request 或 pull request 。

    4 条回复    2016-02-18 13:09:19 +08:00
    Zzzzzzzzz
        1
    Zzzzzzzzz  
       2016-02-17 23:04:30 +08:00   ❤️ 1
    提个小建议, 项目名字最好换一个, redis 使用的 BSD 协议是禁止这么干的

    "Neither the name of Redis nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission."

    而且一般开源项目的第三方衍生项目用原项目的名字+plus 也不妥.
    wangleineo
        2
    wangleineo  
    OP
       2016-02-17 23:14:21 +08:00
    @Zzzzzzzzz 但是这并不是一个 product ,感觉并没有违反协议,而且未来可以 merge 到 redis ,虽然很可能不被接受。
    zts1993
        3
    zts1993  
       2016-02-18 10:42:40 +08:00
    上述所有命令是不是都可以通过 lua 实现?
    wangleineo
        4
    wangleineo  
    OP
       2016-02-18 13:09:19 +08:00
    @zts1993 是的

    Redis 现在支持的命令集合也不是最精简的,也就是说其中一些命令(比如 GETSET )完全可以用一些核心命令+Lua 实现。所以我觉得增加一些命令也没有违背它的设计原则。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2192 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 849ms · UTC 15:33 · PVG 23:33 · LAX 08:33 · JFK 11:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.