◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
本篇文章向大家介绍《Redis基本数据类型Set常用操作命令》,主要包括set、操作命令、Redis数据类型,具有一定的参考价值,需要的朋友可以参考一下。
Set是String类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
另外,redis中的set是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。
若key不存在,则创建一个只包含添加的元素作成员的集合。
sadd myset hello pingguo test
若key不是集合类型时,返回一个错误。
返回集合中的所有的成员。
smembers myset
返回集合中元素的数量。
scard myset
用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略。
当key不是集合类型,返回一个错误。
srem myset hello test
用于返回集合中的一个随机元素。
srandmember myset 3
这里随机抽取3个元素,注意这里仅仅返回随机元素,而不对集合进行任何改动。
移除集合中的指定key的一个或多个随机元素,移除后会返回移除的元素。
spop myset 2
跟上面的srandmember
区别开,虽然都是随机,但是这里的spop
修改了集合。
smove source destination member将指定成员 member 元素从 source 集合移动到 destination 集合。
smove myset myset2 pingguo
如果原集合不存在或不包含指定的元素,则不执行任何操作,仅返回 0。否则,移动成功。
如果目标集合里已经存在了此元素,那么命令只会移除原集合里的元素。
返回第一个集合与其他集合之间的差异,也可以说是第一个集合中独有的元素。
sdiff myset myset2 myset3
注意,这里差集的结果来自前面的myset
。
返回给定所有给定集合的交集,当给定集合当中有一个空集时,结果也为空集。
sinter myset myset2 myset3sinter myset myset3
这里当比较3个集合myset myset2 myset3
时,myset2
里跟其他2个没有任何交集,所以整个结果返回空集。
返回给定集合的并集,不存在的集合 key 被视为空集。
sunion myset myset2 myset3
集合利用差、并、交集可以用来实现一些场景的功能。比如社交软件中,把A用户关注的所有人放到一个set里,然后将B用户的粉丝放另一个set2里。
那么A, B两个用户共同关注的人就是交集了。
到这里,我们也就讲完了《Redis基本数据类型Set常用操作命令》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注the24.cn,带你了解更多关于redis的知识点!
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。