English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

المجموعات الم排序ة (sorted set) في Redis

تجمع Redis هو تجمع من عناصر النوع string، ولا يسمح بالأعضاء المكررة.

الفرق هو أن كل عنصر يحتوي على نقطة من نوع double. Redis يستخدم النقاط لترتيب أعضاء التجمع من الأصغر إلى الأكبر.

أعضاء تجمع الترتيب الفعلي الفريد، ولكن يمكن تكرار النقاط (النقاط).

تجمع يتم تنفيذه من خلال جدول البحث، لذا تعقدية إضافة، إزالة، والبحث هي O(1). أكبر عدد من الأعضاء في التجمع هو 232 - 1 (4294967295، يمكن لتجمع كل مجموعة حفظ أكثر من 4 مليار عضو).

النموذج المتاح على الإنترنت

redis 127.0.0.1:6379> ZADD w3codeboxkey 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD w3codeboxkey 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD w3codeboxkey 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD w3codeboxkey 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD w3codeboxkey 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE w3codeboxkey 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"

在以上示例中我们通过命令 ZADD 向 redis 的有序集合中添加了三个值并关联上分数。

Redis 有序集合命令

下表列出了 redis 有序集合的基本命令:

序号命令及描述
1ZADD key score1 member1 [score2 member2]
向有序集合添加一个或多个成员,或者更新已存在成员的分数
2ZCARD key
获取有序集合的成员数
3ZCOUNT key min max
计算在有序集合中指定区间分数的成员数
4ZINCRBY key increment member
有序集合中对指定成员的分数加上增量 increment
5ZINTERSTORE destination numkeys key [key ...]
计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 destination 中
6ZLEXCOUNT key min max
在有序集合中计算指定字典区间内成员数量
7ZRANGE key start stop [WITHSCORES]
通过索引区间返回有序集合指定区间内的成员
8ZRANGEBYLEX key min max [LIMIT offset count]
通过字典区间返回有序集合的成员
9ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]
通过分数返回有序集合指定区间内的成员
10ZRANK key member
返回有序集合中指定成员的索引
11ZREM key member [member ...]
إزالة عضو أو أعضاء من المجموعة الم排序ة
12ZREMRANGEBYLEX key min max
إزالة جميع الأعضاء في نطاق الحروف المحدد من المجموعة الم排序ة
13ZREMRANGEBYRANK key start stop
إزالة جميع الأعضاء في نطاق الترتيب المحدد من المجموعة الم排序ة
14ZREMRANGEBYSCORE key min max
إزالة جميع الأعضاء في نطاق التقييم المحدد من المجموعة الم排序ة
15ZREVRANGE key start stop [WITHSCORES]
إرجاع أعضاء المجموعة الم排序ة المحددة بناءً على نطاق التقييم، من خلال الفهرس، حيث يتم ترتيب التقييمات من الأعلى إلى الأدنى
16ZREVRANGEBYSCORE key max min [WITHSCORES]
إرجاع أعضاء المجموعة الم排序ة المحددة بناءً على نطاق التقييم، حيث يتم ترتيب التقييمات من الأعلى إلى الأدنى
17ZREVRANK key member
إرجاع ترتيب member المحدد في المجموعة الم排序ة، حيث يتم ترتيب أعضاء المجموعة الم排序ة بناءً على القيم التقييمية بشكل تنازلي (من الأعلى إلى الأدنى)
18ZSCORE key member
إرجاع قيمة التقييم لمember في المجموعة الم排序ة
19ZUNIONSTORE destination numkeys key [key ...]
حساب الاتحاد لعدة مجموعات م排序ة معينة، وتخزينها في مفتاح جديد
20ZSCAN key cursor [MATCH pattern] [COUNT count]
التحول إلى عناصر المجموعة الم排序ة المكررة (بما في ذلك عضو العنصر والمقارنة بالعنصر)