Redis 的数据类型中,集合和有序集合是两个被比较多的对象,在使用的时候也非常具有代表性。下面是Redis 常用的集合(SET)和有序集合(SORTED set)两者的简明对比。
网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、小程序制作、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了吴中免费建站欢迎大家使用!
#### 一、存储结构
1. 集合(Set): 集合中的每个元素都是一个字符串,通常把它存储为一个哈希表,哈希表的空间开销是比较大的,但是插入和删除中间元素具有非常低的复杂度 O(1)。
2. 有序集合(sorted set): 有序集合主要是把集合中的字符串和一个浮点数值相关联起来,然后根据这个浮点数值进行从小到大的排序。除了字符串的比较之外,有序集合还可以记录和排序另外一系列元素,比如带有时间戳的消息记录,带有分值的排行榜等等。
#### 二、操作区别
1. 集合(Set): Set 数据结构具有以下常用操作:添加元素和删除元素,求交/并/差集合,和查看某个元素是否存在于该集合中。
2. 有序集合(sorted set): 有序集合数据结构具有以下常用操作:添加元素和删除元素,查询某元素的分值或者添加分值,获取指定范围的元素,查看某个元素是否存在于该集合等等。
#### 三、空间复杂度
1. 集合(Set): 对于空间复杂度,每个元素都要有一个键,因此Set 的空间复杂度有点高,比有序集合慢几倍。
2. 有序集合(sorted set): 有序集合的分值保存在压缩列表中,因此有序集合的空间复杂度要比集合低很多,能够减少集合多倍的存储空间。
#### 四、使用场景
1. 集合(Set): 集合最适合的场景就是存储一些不重复且没有顺序的数据,比如去重,成员管理等。
2. 有序集合(sorted set): 有序集合最适合存储一些有层次关系,需要对元素进行排序的场景,比如排行榜,有序的消息记录等。
综上,集合(Set)主要用于去重、成员管理等不需要保证顺序的场景,而有序集合(sorted set)则是有层次关系、需要保证顺序的场景,如排行榜,消息记录等。而且它们的插入、删除、查询复杂度也不一样,有序集合更为节省空间、优化了性能。
下面是相关代码:
// 添加元素到集合
sadd myset element1 element2 element3
// 添加元素到有序集合
zadd myzset 1 element1 2 element2 3 element3
// 求交集
sinter myset myotherset
// 求有序集合交集
zinterstore dest 2 myzset myotherzset
//查看某个元素是否存在于该集合
sismember myset element1
//查看某个元素的分值
zscore myzset element1
//查询指定范围的元素
zrange myzset 0 10 // 从小到大
zrevrange myzset 0 10 // 从大到小
成都网站营销推广找创新互联,全国分站站群网站搭建更好做SEO营销。
创新互联(www.cdcxhl.com)四川成都IDC基础服务商,价格厚道。提供成都服务器托管租用、绵阳服务器租用托管、重庆服务器托管租用、贵阳服务器机房服务器托管租用。
名称栏目:Redis集合与有序集合简明对比(redis集合和有序集合)
网页网址:http://www.mswzjz.com/qtweb/news44/164394.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联