1. 程式人生 > >Python-Redis的Set操作

Python-Redis的Set操作

javascrip des store 排行 scrip ber with true art

集合為不重復的列表

無序集合

sadd(name,values):在name對應的集合中添加元素

smembers(name):獲取name對應的集合的所有成員

127.0.0.1:6379> sadd name john jack jack andy
(integer) 3
127.0.0.1:6379> smembers name
1) "andy"
2) "john"
3) "jack"

scard(name):獲取name對應的集合中元素個數

127.0.0.1:6379> smembers name
1) "andy"
2) "john"
3) "jack"
127.0.0.1:6379> scard name
(integer) 3

sdiff(keys, *args):在第一個name對應的集合中且不在其他name對應的集合的元素集合

127.0.0.1:6379> smembers name
1) "andy"
2) "john"
3) "css"
4) "jack"
5) "php"
127.0.0.1:6379> smembers web
1) "php"
2) "javascript"
3) "css"
4) "html"
127.0.0.1:6379> sdiff name web
1) "andy"
2) "john"
3) "jack"

sdiffstore(dest, keys, *args):獲取第一個name對應的集合中且不在其他name對應的集合,再將其添加到dest對應的集合中

127.0.0.1:6379> smembers name
1) "andy"
2) "john"
3) "css"
4) "jack"
5) "php"
127.0.0.1:6379> smembers web
1) "php"
2) "javascript"
3) "css"
4) "html"
127.0.0.1:6379> sdiffstore name_web name web
(integer) 3
127.0.0.1:6379> smembers name_web
1) "andy"
2) "john"
3) "jack"

sismember(name, value):檢查value是否是name對應的集合的成員

127.0.0.1:6379> smembers web
1) "php"
2) "javascript"
3) "css"
4) "html"
127.0.0.1:6379> sismember web asp
(integer) 0
127.0.0.1:6379> sismember web php
(integer) 1

smove(src, dst, value):將某個成員從一個集合中移動到另外一個集合,src為被移動成員的集合,移動成員到dst集合

127.0.0.1:6379> smembers name
1) "andy"
2) "john"
3) "jack"
127.0.0.1:6379> smembers web
1) "php"
2) "javascript"
3) "css"
4) "html"
127.0.0.1:6379> smove web name php
(integer) 1
127.0.0.1:6379> smembers name
1) "php"
2) "andy"
3) "john"
4) "jack"
127.0.0.1:6379> smembers web
1) "javascript"
2) "css"
3) "html"

spop(name):從集合的右側(尾部)返回並移除一個成員

127.0.0.1:6379> smembers name
1) "php"
2) "andy"
3) "john"
4) "jack"
127.0.0.1:6379> spop name
"jack"
127.0.0.1:6379> smembers name
1) "php"
2) "andy"
3) "john"

srandmember(name, numbers):從name對應的集合中隨機獲取 numbers 個元素

127.0.0.1:6379> smembers web
1) "php"
2) "html"
3) "css"
4) "aspx"
5) "asp"
6) "ajax"
7) "javascript"
127.0.0.1:6379> srandmember web 2
1) "ajax"
2) "javascript"
127.0.0.1:6379> srandmember web 5
1) "html"
2) "css"
3) "aspx"
4) "javascript"
5) "ajax"

srem(name, values):在name對應的集合中刪除某些值

127.0.0.1:6379> smembers web
1) "php"
2) "html"
3) "css"
4) "aspx"
5) "asp"
6) "ajax"
7) "javascript"
127.0.0.1:6379> srem web aspx
(integer) 1
127.0.0.1:6379> smembers web
1) "php"
2) "html"
3) "css"
4) "asp"
5) "ajax"
6) "javascript"

sinter(keys, *args):獲取name對應集合的並集

sinterstore(dest, keys, *args):獲取name對應集合的並集,並講結果保存到dest對應的集合中

127.0.0.1:6379> smembers name
1) "jack"
2) "andy"
3) "php"
4) "john"
5) "jane"
6) "html"
7) "css"
127.0.0.1:6379> smembers web
1) "php"
2) "html"
3) "css"
4) "asp"
5) "ajax"
6) "javascript"
127.0.0.1:6379> sinter web name
1) "php"
2) "html"
3) "css"
127.0.0.1:6379> sinterstore web_name web name
(integer) 3
127.0.0.1:6379> smembers web_name
1) "php"
2) "css"
3) "html"

sunion(keys, *args):獲取name對應的集合的並集

sunionstore(dest,keys, *args):獲取name對應的集合的並集,並將結果保存到dest對應的集合中

127.0.0.1:6379> smembers name
1) "andy"
2) "php"
3) "john"
4) "jane"
5) "html"
6) "css"
7) "jack"
127.0.0.1:6379> smembers web
1) "php"
2) "html"
3) "css"
4) "asp"
5) "ajax"
6) "javascript"
127.0.0.1:6379> sunion name web
 1) "john"
 2) "jane"
 3) "css"
 4) "html"
 5) "jack"
 6) "asp"
 7) "andy"
 8) "javascript"
 9) "ajax"
10) "php"
127.0.0.1:6379> sunionstore name_web name web
(integer) 10
127.0.0.1:6379> smembers name_web
 1) "john"
 2) "jane"
 3) "css"
 4) "html"
 5) "jack"
 6) "asp"
 7) "andy"
 8) "javascript"
 9) "ajax"
10) "php"

sscan(name, cursor=0, match=None, count=None):匹配name對應的集合中的value

sscan_iter(name, match=None, count=None):為叠代匹配name對應的集合中的value

127.0.0.1:6379> smembers name_web
 1) "john"
 2) "jane"
 3) "css"
 4) "html"
 5) "jack"
 6) "asp"
 7) "andy"
 8) "javascript"
 9) "ajax"
10) "php"
127.0.0.1:6379> sscan name_web 0  match j*
1) "7"
2) 1) "javascript"
   2) "john"
   3) "jane"
   4) "jack"

有序集合

有序集合中每一個元素有一個值和一個分數,分數專門用來排序

zadd(name, *args, **kwargs):在name對應的有序集合中添加元素

zrange( name, start, end, desc=False, withscores=False, score_cast_func=float):按照索引範圍獲取name對應的有序集合的元素,start為有序集合索引起始位置(非分數),end為有序集合索引結束位置(非分數),desc為排序規則,默認按照分數從小到大排序,withscores為是否獲取元素的分數,默認只獲取元素的值,score_cast_func為對分數進行數據轉換的函數
zrevrange(name, start, end, withscores=False, score_cast_func=float):從大到小排序

127.0.0.1:6379> zadd web 3 html 7 css 12 javascript 4 php
(integer) 4
127.0.0.1:6379> zrange web 0 -1 withscores
1) "html"
2) "3"
3) "php"
4) "4"
5) "css"
6) "7"
7) "javascript"
8) "12"
127.0.0.1:6379> zrevrange web 0 -1 withscores
1) "javascript"
2) "12"
3) "css"
4) "7"
5) "php"
6) "4"
7) "html"
8) "3"

zrangebyscore(name, min, max, start=None, num=None, withscores=False, score_cast_func=float):按照分數範圍獲取name對應的有序集合的元素,從小到大排序

zrevrangebyscore(name, max, min, start=None, num=None, withscores=False, score_cast_func=float):按照分數範圍獲取name對應的有序集合的元素,從大到小排序

127.0.0.1:6379> zadd web 3 html 7 css 12 javascript 4 php 15 asp 6 aspx
(integer) 6
127.0.0.1:6379> zrangebyscore web 0 5
1) "html"
2) "php"
127.0.0.1:6379> zrevrangebyscore web 20 10
1) "asp"
2) "javascript"

zcard(name):獲取name對應的有序集合元素的數量

127.0.0.1:6379> zadd web 3 html 7 css 12 javascript 4 php 15 asp 6 aspx
(integer) 6
127.0.0.1:6379> zcard web
(integer) 6

zcount(name, min, max):獲取name對應的有序集合中分數在min到max之間的個數

127.0.0.1:6379> zadd web 3 html 7 css 12 javascript 4 php 15 asp 6 aspx
(integer) 6
127.0.0.1:6379> zcount web 10 20
(integer) 2

zincrby(name, amount, value):自增name對應的有序集合中value對應的分數

127.0.0.1:6379> zrange web 0 -1 withscores
 1) "html"
 2) "3"
 3) "php"
 4) "4"
 5) "aspx"
 6) "6"
 7) "css"
 8) "7"
 9) "javascript"
10) "12"
11) "asp"
12) "15"
127.0.0.1:6379> zincrby web 2 css
"9"
127.0.0.1:6379> zrange web 0 -1 withscores
 1) "html"
 2) "3"
 3) "php"
 4) "4"
 5) "aspx"
 6) "6"
 7) "css"
 8) "9"
 9) "javascript"
10) "12"
11) "asp"
12) "15"

zrank(name, value):獲取name對應的有序集合中value的排行,從小到大排序,第一位為0

zrevrank(name, value):獲取name對應的有序集合中value的排行,從大到小排序,第一位為0

127.0.0.1:6379> zrange web 0 -1 withscores
 1) "html"
 2) "3"
 3) "php"
 4) "4"
 5) "aspx"
 6) "6"
 7) "css"
 8) "9"
 9) "javascript"
10) "12"
11) "asp"
12) "15"
127.0.0.1:6379> zrank web php
(integer) 1
127.0.0.1:6379> zrevrank web php
(integer) 4

zrem(name, values):刪除name對應的有序集合中的values

127.0.0.1:6379> zrange web 0 -1 withscores
 1) "html"
 2) "3"
 3) "php"
 4) "4"
 5) "aspx"
 6) "6"
 7) "css"
 8) "9"
 9) "javascript"
10) "12"
11) "asp"
12) "15"
127.0.0.1:6379> zrem web aspx css
(integer) 2
127.0.0.1:6379> zrange web 0 -1 withscores
1) "html"
2) "3"
3) "php"
4) "4"
5) "javascript"
6) "12"
7) "asp"
8) "15"

zremrangebyrank(name, min, max): 根據排行範圍刪除

127.0.0.1:6379> zrange web 0 -1 withscores
 1) "html"
 2) "3"
 3) "php"
 4) "4"
 5) "aspx"
 6) "6"
 7) "css"
 8) "7"
 9) "javascript"
10) "12"
11) "asp"
12) "15"
127.0.0.1:6379> zremrangebyrank web 0 2
(integer) 3
127.0.0.1:6379> zrange web 0 -1 withscores
1) "css"
2) "7"
3) "javascript"
4) "12"
5) "asp"
6) "15"

zremrangebyscore(name, min, max): 根據分數範圍刪除

127.0.0.1:6379> zrange web 0 -1 withscores
 1) "html"
 2) "3"
 3) "php"
 4) "4"
 5) "aspx"
 6) "6"
 7) "css"
 8) "7"
 9) "javascript"
10) "12"
11) "asp"
12) "15"
127.0.0.1:6379> zremrangebyscore web 0 5
(integer) 2
127.0.0.1:6379> zrange web 0 -1 withscores
1) "aspx"
2) "6"
3) "css"
4) "7"
5) "javascript"
6) "12"
7) "asp"
8) "15"

zscore(name, value):獲取name對應的有序集合中value對應的分數

127.0.0.1:6379> zrange web 0 -1 withscores
1) "aspx"
2) "6"
3) "css"
4) "7"
5) "javascript"
6) "12"
7) "asp"
8) "15"
127.0.0.1:6379> zscore web css
"7"

zinterstore(dest, number, keys, aggregate=None):獲取number個有序集合的交集,並存入到dest集合中,如果遇到相同值不同分數,則按照aggregate進行操作,aggregate的值為:SUM,MIN,MAX

127.0.0.1:6379> zrange web 0 -1 withscores
 1) "html"
 2) "3"
 3) "php"
 4) "4"
 5) "aspx"
 6) "6"
 7) "css"
 8) "7"
 9) "javascript"
10) "12"
11) "asp"
12) "15"
127.0.0.1:6379> zrange name 0 -1 withscores
 1) "john"
 2) "3"
 3) "jane"
 4) "7"
 5) "php"
 6) "9"
 7) "jack"
 8) "12"
 9) "andy"
10) "17"
11) "css"
12) "32"
127.0.0.1:6379> zinterstore web_name 2 web name
(integer) 2
127.0.0.1:6379> zrange web_name 0 -1 withscores
1) "php"
2) "13"
3) "css"
4) "39"

zunionstore(dest, number, keys, aggregate=None):獲取number個有序集合的並集,如果遇到相同值不同分數,則按照aggregate進行操作,aggregate的值為:SUM,MIN,MAX

127.0.0.1:6379> zrange web 0 -1 withscores
 1) "html"
 2) "3"
 3) "php"
 4) "4"
 5) "aspx"
 6) "6"
 7) "css"
 8) "7"
 9) "javascript"
10) "12"
11) "asp"
12) "15"
127.0.0.1:6379> zrange name 0 -1 withscores
 1) "john"
 2) "3"
 3) "jane"
 4) "7"
 5) "php"
 6) "9"
 7) "jack"
 8) "12"
 9) "andy"
10) "17"
11) "css"
12) "32"
127.0.0.1:6379> zunionstore web_name 2 web name
(integer) 10
127.0.0.1:6379> zrange web_name 0 -1 withscores
 1) "html"
 2) "3"
 3) "john"
 4) "3"
 5) "aspx"
 6) "6"
 7) "jane"
 8) "7"
 9) "jack"
10) "12"
11) "javascript"
12) "12"
13) "php"
14) "13"
15) "asp"
16) "15"
17) "andy"
18) "17"
19) "css"
20) "39"

zscan(name, cursor=0, match=None, count=None, score_cast_func=float):匹配name對應的有序集合中的value

zscan_iter(name, match=None, count=None,score_cast_func=float):叠代匹配

127.0.0.1:6379> zrange web 0 -1 withscores
 1) "html"
 2) "3"
 3) "php"
 4) "4"
 5) "aspx"
 6) "6"
 7) "css"
 8) "7"
 9) "javascript"
10) "12"
11) "asp"
12) "15"
127.0.0.1:6379> zscan web 0 match *a*
1) "0"
2) 1) "aspx"
   2) "6"
   3) "javascript"
   4) "12"
   5) "asp"
   6) "15"

Python-Redis的Set操作