redis|redis-py zadd 和 zincrby的设计简直让我理解不能啊

redis
zadd命令为 zadd 变量 val key
zincrby命令为 zincrby 变量 val key

hset的命令为 hset 变量 key val 像hash这种赋值为key val的赋值方式我是很理解的

z系列的东西是val key就算了,然而redis.py里面的设计为什么这么诡异

conn.zadd 变量 val key 跟 redis的zadd顺序一致
conn.zincrby 变量 key val跟 redis的zincrby顺序相反

理解不能啊,首先zadd里面当年为毛设计成val key而不是key val,其次写redis-py的作者是怎么想的,为毛zadd与zincrby一个跟默认命令顺序相同,一个跟默认命令相反?

阅读 6.4k
2 个回答

因为这几个参数的叫法不是你写的这样:

zadd命令为 zadd 变量 val key

而是

zadd key score member

key是有序集合的key,你所谓的val是集合里面每个成员的分数,而最后是成员。这东西和普通的set key value根本是两回事。

但为啥是score member而不是member score我就不太清楚了,个人瞎猜可能设计者认为这个跟排行榜是类似的,排行榜一般都是排名在前,谁是这个排名在后

新手上路,请多包涵

首先你要搞清楚,redis-py中有两个类:Redis和StrictRedis。
其次,Redis这种score在前,member在后的设计,可能真的是当时作者脑子抽了
链接描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进