为了账号安全,请及时绑定邮箱和手机立即绑定

redis中有序集合类型和列表类型的不同点与相同点

redis中有序集合类型和列表类型的不同点与相同点

繁花如伊 2019-05-13 08:08:22
redis中有序集合类型和列表类型的不同点与相同点
查看完整描述

3 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

相同点:
(1)二者都是有序的。
(2)二者都可以获得某一范围的元素。
不同点:
(1)列表类型是通过链表实现的,获取靠近两端的数据速度极快,而当元素增多后,访问中间数据的速度会较慢,所以它更加适合实现如“新鲜事”或“日志”这样很少访问中间元素的应用。
(2)有序集合类型是使用散列表和跳跃表(Skip list)实现的,所以即使读取位于中间部分的数据速度也很快(时间复杂度是O(log(N)))。
(3)列表中不能简单地调整某个元素的位置,但是有序集合可以(通过更改这个元素的分数)。
(4)有序集合要比列表类型更耗费内存。有序集合类型算得上是 Redis的5种数据类型中最高级的类型了,在学习时可以与列表类型和集合类型对照理解。





查看完整回答
反对 回复 2019-05-14
?
holdtom

TA贡献1805条经验 获得超10个赞

Redis有序集合类似Redis集合存储在设定值唯一性。不同的是,一个有序集合的每个成员带有分数,用于以便采取有序set命令,从最小的到最大的分数有关。
Redis 有序set添加,删除和测试中的O(1)的存在成员(固定时间,无论里面包含的元素集合的数量)。列表的最大长度为232- 1元素(4294967295,超过4十亿每个元素的集合)。
例子
redis 127.0.0.1:6379> ZADD tutorials 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD tutorials 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE tutorials 0 10 WITHSCORES

1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"




查看完整回答
反对 回复 2019-05-14
?
临摹微笑

TA贡献1982条经验 获得超2个赞

数组中的数据是可以随便排的;
这里的有序不是指的内容的有序,而是存储位置的有序,比如一个数组int a[10];
那么对于存储的位置,a[0]必然在a[1]之前,a[8]必然在a[4]之后,这就是有序的意思

查看完整回答
反对 回复 2019-05-14
  • 3 回答
  • 0 关注
  • 651 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信