Redis使用——Redis支持的五种数据类型
背景
日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来。 同时在这里也欢迎大家把自己遇到的问题留言或私信给我,我看看其能否给大家解决。
开发环境
- 系统:Ubuntu
- 工具:Docker
- 镜像:Redis
- 官方配置:redis.conf
内容
本节我们对于Redis的数据类型进行解析,Redis的数据类型共分为五种,其分别是:
- string(字符串)
- hash(哈希)
- list(列表)
- set(集合)
- zset(sorted set:有序集合)
1、string字符串类型
string字符串类型相信大家都比较容易理解,这和我们日常使用的一些数据库一致,它在Redis中存储时通常是key value的形式。当我们进行使用时可以将任意被转为字符串格式的数据存储到里面。它也是Redis中最基本的数据类型,最大存储为512MB。
2、hash哈希类型
hash哈希类型是一个 string 类型的 field(字段) 和 value(值) 的映射表,通常用来存储对象使用,例如张三的用户信息、提交的一个工单草稿等场景,其在Redis中存储时是key value集合的形式,也就是value中是一个集合。相当于里面存储了好多好多的string对象。每个hash可以存储2^32 - 1 键值对(40多亿)。
3、list列表
list列表类型是string列表,其按照插入顺序进行排列,在使用时可以在列表的头部或者尾部进行添加。一个列表可以存储2^32-个元素(40多亿)。一般我们用于消息队列、消息交换、缓存列表等场景下。
4、set集合
set集合是string类型的无序集合,集合中不能出现重复的数据,每个成员都是唯一的;同样的这个集合也是可以存储2^32-个元素(40多亿)。使用场景例如求交集、IP访问记录等等。
5、sorted set
sorted set 集合是string类型的有序集合,每个元素都会关联一个double类型的分数,Redis依据这个分数进行从小到大排序。成员同样也是唯一的,不过分数可以重复。使用场景例如用户基础信息缓存、全班学生成绩、排行榜等等。