首页 > 代码库 > Redis集合操作

Redis集合操作

Redis的集合以无序的形式存储多个各不相同的元素

(常用的集合命令)

SADD : SADD key-name item [item ...]----------将一个或多个元素添加到集合里,并返回添加的元素数量(重复的元素不会被添加)

SREM : SREM key-name  item [item ..]---------从一个集合里面移除一个或多个元素,并返回被移除的元素数量

SISMEMBER :  SISMEMBER key-name item -------检查元素item是否存在于集合key-name里

SCARD : SCARD key-name --------------------------返回集合包含的元素数量

SMEMBERS : SMEMBERS key-name ---------------返回集合包含的所有元素

SRANDMEMBER : SRANDMEMBER key-name [count] ---------------从集合里面随机返回一个或多个元素,当count为正数时,返回的元素不会重复,当count为负数时,返回的元素可能重复

SPOP : SPOP key-name ------------------------------随机移除集合中的一个元素,并返回被移除的元素

SMOVE : SMOVE source-key dest-key item -------------------------如果集合source-key包含元素item,那么从集合source-key里面移除元素item,并将元素item添加到集合dest-key中:如果item被成功移除,那么命令返回1,否则返回0

>>> conn.sadd(set-key,a,b,c)
3
>>> conn.srem(set-key,c,d)
1
>>> conn.srem(set-key,c,d)
0
>>> conn.smembers(set-key)
set([a, b])
>>> conn.scard(set-key)
2
>>> conn.smove(set-key,set-key2,a)
True
>>> conn.smove(set-key,set-key2,c)
False
>>> conn.sadd(set-key,a)
1
>>> conn.smove(set-key,set-key2,a)
True
>>> conn.smembers(set-key)
set([b])
>>> conn.smembers(set-key2)
set([a])

 

(用于组合和处理多个集合的redis命令)

SDIFF : SDIFF key-name [key-name ...] ------------------返回那些存在于第一个集合,但不存在于其他集合中的元素(数学上的差集运算)

SDIFFSTORE : SDIFFSTORE dest-key key-name [key-name..] --------------将那些存在于第一个集合但并不存在其他集合中的元素存储到dest-key集合中

SINTER : SINTER key-name [key-name ...] -----------------------------------返回那些同时存在所有集合中的元素(数学上的交集运算)

SINTERSTORE : SINTERSTORE dest-key key-name [key-name..] --------------将那些同时存在所有集合中的元素存储到dest-key集合中

SUNION : SUNION key-name [key-name..] ------------------------------------返回那些存在于任意一个集合中的元素(数学上的并集运算)

SUNIONSTORE : SUNIONSTORE dest-key key-name [key-name..] --------------将那些存在于任意一个集合中的元素存储到dest-key集合中

>>> conn.sadd(skey1,a,b,c,d)
4
>>> conn.sadd(skey2,c,d,e,f)
4
>>> conn.sdiff(skey1,skey2)
set([a, b])
>>> conn.sinter(skey1,skey2)
set([c, d])
>>> conn.sunion(skey1,skey2)
set([a, c, b, e, d, f])

 

Redis集合操作