Redis 有五种基本数据类型,这五种数据类型分别是:string(字符串)、hash(哈希)、list(列表)、set(集合)、sorted set(有序集合,也叫 zset)。
简单介绍下 string?
字符串是最基础的数据类型,key 是一个字符串,不用多说,value 可以是:
- 字符串(简单的字符串、复杂的字符串(例如 JSON、XML))
- 数字 (整数、浮点数)
- 甚至是二进制(图片、音频、视频),但最大不能超过 512MB。
字符串主要有以下几个典型的使用场景:
- 缓存功能
- 计数
- 共享 Session
- 限速
简单介绍下 hash?
键值对集合,key 是字符串,value 是一个 Map 集合,比如说 value = {name: '沉默王二', age: 18}
,name 和 age 属于字段 field,沉默王二 和 18 属于值 value。
哈希主要有以下两个典型应用场景:
什么使用 hash 类型而不使用 string 类型序列化存储?
来感受一下,使用字符串类型存储用户信息和使用哈希类型存储用户信息的区别:
可以看得出,使用 hash 比使用 string 更便于进行序列化,我们可以将一整个用户对象序列化,然后作为一个 value 存储在 Redis 中,存取更加便捷。
简单介绍下 list?
list 是一个简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边)。
列表主要有以下两个使用场景:
- 消息队列
- 文章列表
简单介绍下 set?
Set 是一个无序集合,元素是唯一的,不允许重复。
简单介绍下 zset?
Zset 是有序集合,比 set 多了一个排序属性 score。
可以用来实现排行榜,比如这个项目中,就使用了 Zset 来实现用户活跃排行榜。