Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
类型 | 特性 | 场景 |
---|---|---|
String(字符串) | 1. 最基本的类型,一个 key 对应一个 value。 2. 二进制安全的,可以包含任何数据,比如jpg图片或者序列化的对象。 3. 一个值最大能存储512M数据 | --- |
Hash(字典) | 1. 一个键值(key=>value)对集合。 2. 一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。 | 存储、读取、修改用户属性 |
List(列表) | 1. 简单的字符串列表,按照插入顺序排序。 2. 可以添加一个元素到列表的头部(左边)或者尾部(右边)。 | 1. 最新消息排行等功能(比如朋友圈的时间线) 2. 消息队列 |
Set(集合) | 1.String 类型的无序集合,且不允许出现重复key。 2. 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。 3. 提供了求交集、并集、差集等操作。 | 1. 需要求交集的场景(如查询共同好友) 2. 利用唯一性,统计访问网站的所有独立ip |
Sorted Set(有序集合) | 1. 也是String类型元素的集合,且不允许重复的成员。 2. 每个元素都会关联一个double类型的分数(redis正是通过分数来为集合中的成员进行从小到大的排序)。 3. zset的成员是唯一的,但分数(score)却可以重复。 | 1. 排行榜 2. 带权重的消息队列 |