用分数获取zrange

时间:2018-09-30 22:16:23

标签: python redis

是否可以在ZSET中获取元素的元组及其得分的列表?例如:

<key>CFBundleURLTypes</key>
<array>
  <dict>
  <key>CFBundleURLSchemes</key>
  <array>
    <string>fb29476792337468632</string>
  </array>
  </dict>
</array>
<key>FacebookAppID</key>
<string>29476792337468632</string>
<key>FacebookDisplayName</key>
<string>My App Name</string>

1 个答案:

答案 0 :(得分:2)

对于redis-py,根据docs for zrange()zrange()中有一个可选参数:

  

zrange(name, start, end, desc=False, withscores=False, score_cast_func=<type 'float'>)

     

从排序后的集合名称中返回以升序排序的值的范围。

     

...

     

withscores表示返回分数和值。返回类型是(值,分数)对的列表

示例:

In [292]: import redis

In [293]: r = redis.Redis()

In [294]: r.zadd('channel', 'a', 0, 'b', 5, 'c', 8, 'd', 20)
Out[294]: 4

In [295]: r.zrange('channel', 0, -1, withscores=True)
Out[295]: [(b'a', 0.0), (b'b', 5.0), (b'c', 8.0), (b'd', 20.0)]