redis 集合(set)类型的使用和应用场景
redis是一个高速缓存的key-values数据库,它支持五种的数据类型,包括字符串类型(String)、列表(list)、集合(set)、有序集合(zset)、哈希(hash)。下面我们来详细分析redis集合(set)类型的使用和应用场景。
一、redis集合(set)类型
redis集合(set)类型和list列表类型类似,都可以用来存储多个字符串元素的集合。但是和list不同的是set集合当中不允许重复的元素。而且set集合当中元素是没有顺序的,不存在元素下标。
redis的set类型是使用哈希表构造的,因此复杂度是O(1),它支持集合内的增删改查,并且支持多个集合间的交集、并集、差集操作。可以利用这些集合操作,解决程序开发过程当中很多数据集合间的问题。
二、redis set类型常用命令
1、SADD命令:将一个或者多个元素假如到集合当中,假如假如的元素已经存在在集合当中,则不会添加。假如key不存在,则直接参加一个key,并加入元素。命令如下:
sadd dbset oracle redis mysql
2、Redis Smembers 命令:将返回集合中的所有的成员。 命令如下:
Smembers dbset
3、Redis Scard 命令:返回集合中元素的个数。命令如下:
Scard dbset
4、Sismember(查询) 命令:判断指定的值是否是集合的成员,假如不是集合的成员,或 key 不存在,返回 0 。命令如下:
sismember dbset oracle
5、SREM(移除)命令:用于移除集合元素中一个或者多个元素,假如要移除的元素不存在,默认不处理。命令如下:(发现已经移除了oracle这个元素)
srem dbset oracle
6、Sinter(交集) 命令:返回给定所有给定集合的交集。 不存在的集合 key 被视为空集。 当给定集合当中有一个空集时,结果也为空集。具体命令如下:(重新再添加一个dbset1集合也是含有刚刚Oracle、redis、mysql 三个元素,然后取交集看下结果)
sinter dbset dbset1
7、sdiff(差集)命令:同理,返回指定集合之间的差集,命令如下:(对dbset再加入一个sqlserver元素,然后和dbset1求差集,看下结果)
sdiff dbset dbset1
8、Sunion(并集) 命令:返回给定集合的并集。同理,不存在的集合 key 被视为空集。命令如下,看下dbset和dbaset1的并集的结果:
sunion dbaset dbset1
9、Sscan 命令:用于迭代集合中元素,取出匹配条件的元素,命令如下:
Sscan dbset 0 match my*
三、redis set集合常用的应用场景
redis set是集合类型的数据结构,那么集合类型就比较适合用于聚合分类。
1、标签:比如我们博客网站常常使用到的兴趣标签,把一个个有着相同爱好,关注类似内容的用户利用一个标签把他们进行归并。
2、共同好友功能,共同喜好,或者可以引申到二度好友之类的扩展应用。
3、统计网站的独立IP。利用set集合当中元素不唯一性,可以快速实时统计访问网站的独立IP。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论