【Redis】不同数据结构之间的差异及应用场景

栏目: 数据库 · 发布时间: 5年前

内容简介:Redis支持五种数据类型。string(字符串),list(列表),set(集合),hash(哈希),及zset(sorted set:有序集合)。字符串类型是Redis中最为基础的数据存储类型,是一个由字节组成的序列,是标准的key/value,一般来存字符串,整数和浮点数。

Redis支持五种数据类型。

string(字符串),list(列表),set(集合),hash(哈希),及zset(sorted set:有序集合)。

String 字符串

【Redis】不同数据结构之间的差异及应用场景

简介:

字符串类型是 Redis 中最为基础的数据存储类型,是一个由字节组成的序列,是标准的key/value,一般来存字符串,整数和浮点数。

特性:

可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M。

应用场景:

在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如jpeg图像数据、json对象描述信息等。

List 列表

【Redis】不同数据结构之间的差异及应用场景
简介:

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部或者尾部。

特点:

1、有序、可以重复。

2、是链表结构,所以向列表两端添加元素的时间复杂度为0(1),增删快。

3、提供了操作某一段元素的API。

应用场景:

1、最新消息排行榜,比如朋友圈的时间线、App内消息通知。

2、消息队列,以完成多程序之间的消息交换。可以用push操作将任务存在list中,然后线程在用pop操作将任务取出进行执行。

Set 集合

【Redis】不同数据结构之间的差异及应用场景

简介:

Redis 的 Set 是 String 类型的无序集合,和List一样是简单的字符串列表。

特点:

1、无序,不可重复的。

2、为集合提供了求交集、并集、差集等操作。

3、集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

应用场景:

1、共同好友。【取交集】

2、统计访问网站的所有独立ip。【元素不可以重复】

3、好友推荐时,根据tag求交集,大于某个阈值就可以推荐。

Hash 哈希

【Redis】不同数据结构之间的差异及应用场景

简介:

Redis中的Hash散列可以看成具有String key和String value的map容器,可以将多个key-value存储到一个key中。

特点:

适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值。【Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去】。

应用场景:

存储、读取、修改用户属性。

Sort-Set 有序集合

【Redis】不同数据结构之间的差异及应用场景

简介:

Redis 有序集合和集合一样也是string类型元素的集合。将Set中的元素增加一个权重参数score,元素按score有序排列。

特点:

1、每个元素都会关联一个double类型的分数,数据插入集合时,已经进行天然排序。

2、有序集合的成员是唯一的,但分数是(score)可以重复的。

3、集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

应用场景:

1、排行榜 。

2、带权重的消息队列。


以上所述就是小编给大家介绍的《【Redis】不同数据结构之间的差异及应用场景》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

失业的程序员

失业的程序员

沈逸 / 2014-5-1 / 39.00元

这是一个程序员从失业到自行创业的奋斗历程,虽然囧事连连、过程曲折,却充满了趣味。本书以作者的真实创业经历为主线,文字幽默诙谐,情节生动真实,包括了招聘、团队管理和用户公关,以及技术架构设计、核心代码编写、商务谈判、项目运作等场景经验。 从初期的创业伙伴、领路人,到商业竞争对手,各种复杂的关系在各个关键时刻却都发生了意想不到的逆转。在历经千辛万苦,眼看快要成功时,主人公却几乎再次失业。 ......一起来看看 《失业的程序员》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试