最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

Nosql之Redis:set数据类型及操作命令

来源:懂视网 责编:小采 时间:2020-11-09 13:23:58
文档

Nosql之Redis:set数据类型及操作命令

Nosql之Redis:set数据类型及操作命令:set 类型 一:概述 set是集合,它是string类型的无序集合.set是通过hash table实现的, 添加, 删除和查找的复杂度都是O(1).对集合我们可以取并集,交集,差集. 通过这些操作我们可以实现sns中的好友推荐和博客的tag功能. 二:相关操作命令 1:sadd 描述
推荐度:
导读Nosql之Redis:set数据类型及操作命令:set 类型 一:概述 set是集合,它是string类型的无序集合.set是通过hash table实现的, 添加, 删除和查找的复杂度都是O(1).对集合我们可以取并集,交集,差集. 通过这些操作我们可以实现sns中的好友推荐和博客的tag功能. 二:相关操作命令 1:sadd 描述

set 类型 一:概述 set是集合,它是string类型的无序集合.set是通过hash table实现的, 添加, 删除和查找的复杂度都是O(1).对集合我们可以取并集,交集,差集. 通过这些操作我们可以实现sns中的好友推荐和博客的tag功能. 二:相关操作命令 1:sadd 描述: 增加成员到

set 类型

一:概述
set是集合,它是string类型的无序集合.set是通过hash table实现的,
添加, 删除和查找的复杂度都是O(1).对集合我们可以取并集,交集,差集.
通过这些操作我们可以实现sns中的好友推荐和博客的tag功能.

二:相关操作命令
1:sadd
描述: 增加成员到set序列
返回值:本次操作实际插入的成员数量。
命令格式: sadd key member [member...]
时间复杂度: O(N) N:表操作成员数量
操作如下:

redis 127.0.0.1:6379> sadd my_set test1
(integer) 1
redis 127.0.0.1:6379> sadd my_set test1
(integer) 0
redis 127.0.0.1:6379> sadd my_set test2
(integer) 1
redis 127.0.0.1:6379> smembers my_set
1) “test1″
2) “test2″
##连着插入多个成员
redis 127.0.0.1:6379> sadd my_set test3 test4
(integer) 2
redis 127.0.0.1:6379> smembers my_set
1) “test3″
2) “test4″
3) “test1″
4) “test2″

2: smembers
描述:获取set中所有成员
时间复杂度:O(1)
操作如上面.

3:scard
描述:获取Set中成员的数量。
时间复杂度:O(1)
4: sismember
描述:判断参数中指定成员是否已经存在于与Key相关联的Set集合中。
时间复杂度:O(1)
返回值:1表存在,0表不存在.
操作命令如下:
redis 127.0.0.1:6379> scard my_set
(integer) 4
redis 127.0.0.1:6379> sismember my_set1 aa
(integer) 0
redis 127.0.0.1:6379> sismember my_set test1
(integer) 1

5: spop
描述:随机的移除并返回Set中的某一成员。
时间复杂度:O(1)
返回值:返回移除的成员,如果该Key并不存在,则返回nil。
操作命令如下:
redis 127.0.0.1:6379> spop my_set
“test3″
redis 127.0.0.1:6379> smembers my_set
1) “test4″
2) “test1″
3) “test2″

6: srem
描述:删除参数中指定的成员(可多个)
时间复杂度:O(N) N表示被删除成员的数量
命令格式: srem key member [member ...]
返回值:返回实际删除的成员数.如果没有,返回0;
操作命令如下:
redis 127.0.0.1:6379> smembers my_set
1) “test4″
2) “test1″
3) “test2″
redis 127.0.0.1:6379>
redis 127.0.0.1:6379> srem my_set test4
(integer) 1
redis 127.0.0.1:6379> smembers my_set
1) “test1″
2) “test2″
redis 127.0.0.1:6379> srem my_set test1 test2
(integer) 2
redis 127.0.0.1:6379> smembers my_set
(empty list or set)
7: srandmember
描述: 和SPOP一样,随机的返回Set中的一个成员,不同的是该命令并不会删除返回的成员。
时间复杂度:O(1)
返回值:返回随机位置的成员,如果Key不存在则返回nil。
操作命令如下:
redis 127.0.0.1:6379> srandmember my_set
(nil)
redis 127.0.0.1:6379> sadd my_set test1 test2
(integer) 2
redis 127.0.0.1:6379> srandmember my_set
“test1″

8: smove
描述:把一个set集合中的某个元素移动到另外一个set集合
时间复杂度:O(1)
命令格式:smove source destination member
返回值:1表示正常移动,0表示source中并不包含参数成员。
操作命令如下:
redis 127.0.0.1:6379> smembers my_set
1) “test1″
2) “test2″
redis 127.0.0.1:6379> smembers my_set_2
(empty list or set)
redis 127.0.0.1:6379> smove my_set my_set_2 test1
(integer) 1
redis 127.0.0.1:6379> smembers my_set_2
1) “test1″
redis 127.0.0.1:6379> smembers my_set
1) “test2″

##成员不存时
redis 127.0.0.1:6379> smove my_set_2 my_set_3 aa
(integer) 0
9: sdiff
描述:返回参数中第一个Key所关联的Set和其后所有Keys所关联的Sets中成员的差异.
返回值:差异结果成员的集合。
时间复杂度:O(N) N表示所有Sets中成员的总数量
命令格式: sdiff key [key ...]
操作命令如下:
redis 127.0.0.1:6379> smembers my_set_2
1) “test1″
redis 127.0.0.1:6379> smembers my_set
1) “test2″
redis 127.0.0.1:6379> sadd my_set test3
(integer) 1
redis 127.0.0.1:6379> smembers my_set
1) “test3″
2) “test2″
redis 127.0.0.1:6379> sdiff my_set my_set_2
1) “test3″
2) “test2″
redis 127.0.0.1:6379> sdiff my_set_2 my_set
1) “test1″

10: sdiffstore
描述:该命令和SDIFF命令在功能上完全相同,两者之间唯一的差别是SDIFF返回差异的结果成员,而该命令将差异成员存储在destination关联的Set中。如果destination键已经存在,该操作将覆盖它的成员。
返回值:返回差异成员的数量。
时间复杂度:O(N) N表示所有Sets中成员的总数量
命令格式: sdiffstore destination key [key ...]
操作命令如下:
#将2个集合的差异成员存在在my_set_diff关联的Set中,并返回插入的成员数量。
redis 127.0.0.1:6379> sdiff my_set my_set2
1) “test3″
2) “test2″
redis 127.0.0.1:6379> sdiffstore my_set_diff my_set my_set_2
(integer) 2
redis 127.0.0.1:6379> smembers my_set_diff
1) “test3″
2) “test2″

11: sinter
描述:该命令将返回参数中所有Keys关联的Sets中成员的交集。因此如果参数中任何一个Key关联

的Set为空,或某一Key不存在,那么该命令的结果将为空集。
时间复杂度: O(N*M) N表示最小Set中元素的数量,M则表示参数中Sets的数量。
命令格式: sinter key [key ...]
返回值: 交集结果成员的集合
操作命令如下:
redis 127.0.0.1:6379> sinter my_set my_set_diff
1) “test3″
2) “test2″

12: sinterstore
描述:和sinter功能相同,返回交集的结果成员
时间复杂度: O(N*M) N表示最小Set中元素的数量,M则表示参数中Sets的数量。
命令格式: sinterstore destination key [key ...]
返回值:返回交集成员
13:sunion

描述:返回参数中所有Keys关联的Sets中成员的并集。
命令格式: sunion key [key...]
时间复杂度:O(N) N表示所有Sets中成员的总数量
操作命令如下:
redis 127.0.0.1:6379> sunion my_set my_set_2
1) “test3″
2) “test1″
3) “test2″

?
14:sunionstore
描述:与sunion功能相同,返回并集成员的数量。

操作命令如下:
redis 127.0.0.1:6379> sunionstore my_set my_set_2
(integer) 1
redis 127.0.0.1:6379> sunion my_set my_set_2
1) “test1″

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

Nosql之Redis:set数据类型及操作命令

Nosql之Redis:set数据类型及操作命令:set 类型 一:概述 set是集合,它是string类型的无序集合.set是通过hash table实现的, 添加, 删除和查找的复杂度都是O(1).对集合我们可以取并集,交集,差集. 通过这些操作我们可以实现sns中的好友推荐和博客的tag功能. 二:相关操作命令 1:sadd 描述
推荐度:
标签: 操作 se 数据
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top