Redis 对 zset 操作的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhyzhy
V2EX    Redis

Redis 对 zset 操作的问题

  •  
  •   zhyzhy 2018-12-09 19:51:34 +08:00 7958 次点击
    这是一个创建于 2498 天前的主题,其中的信息可能已经有所发展或是发生改变。

    业务是这样的,对每一个活动做一个 zset 保存参与用户的 id 和参与时间
    判断的时候,如果返回 null,不知道是 key 被删了还是没有此 member,对于这两个情况后续操作不一样
    目前只得全部套上了 pipeline 先判断下 exist 这个 key

    用 redis-cli 的时候似乎对这两种情况也都是返回的 nil
    你们平时有这种情况吗,咋解决的呢。。。

    7 条回复    2018-12-10 15:38:37 +08:00
    charles2java
        1
    charles2java  
       2018-12-09 22:25:46 +08:00 via Android
    那就不要删除 key,设置为默认值?
    hbpeng
        2
    hbpeng  
       2018-12-10 09:11:00 +08:00 via iPhone
    pipeline 没办法解决吧 pipeline 里面第二条命令是没办法依赖第一条的结果的 感觉你这个只能用 lua
    br00k
        3
    br00k  
       2018-12-10 09:11:54 +08:00
    如果没有数据的我的操作是初始化一条数据进去。取的时候把这条过滤掉。
    server
        4
    server  
       2018-12-10 12:05:46 +08:00
    小哥,入库前不检查下用户吗?
    myzWILLmake
        5
    myzWILLmake  
       2018-12-10 14:51:20 +08:00
    不太清楚你使用 zset 是用来做什么业务的,但是可能对于 zset 的理解有些偏差。zset 的数据结构为跳表,单个数据为跳表中的一个节点。删除操作的话会将这个节点从这个跳表中移出并且释放掉。所以对于 zset 已经删除的节点就是不存在的数据,当然不会查到。
    zhyzhy
        6
    zhyzhy  
    OP
       2018-12-10 15:36:22 +08:00
    @hbpeng 是没法依赖第一条,所以 key exist 和 member value 的结果全部捞出来了,key 不存在就执行不存在的逻辑,不去查看 member 的结果了
    zhyzhy
        7
    zhyzhy  
    OP
       2018-12-10 15:38:37 +08:00
    @myzWILLmake = = 没看明白。。。我的意思是就比如 zrank myzset user1 这个命令,返回了 nil,我不知道到底是没有这个 zset,还是 zset 中没有 user1 这个 member
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2623 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 10:35 PVG 18:35 LAX 03:35 JFK 06:35
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86