redis作为一个key-value类型的存储中间件,其key都是二进制类型,空字符串也可以作为ke。value包括5种核心类型以及后面版本不断添加的其他类型。
1.string
string类型是最基础的redis类型,不仅可以存储任意的字符串,也支持存储整型,并提供了对value的运算功能。
string类型的value大小限制为512MB。
2.list
list是一个string类型的双向链表,支持头尾的插入和读取,时间复杂度为O(1)。也支持按下标读取、插入,以及在指定value前/后插入,这些操作可能的时间复杂度为O(n)。list支持2^32-1个元素个数。
list可以用来实现栈(FILO),队列(FIFO)。只需要使用LPUSH、LPOP、RPUSH、RPOP这几个指令就可以简单实现。
3.set
set是redis的集合类型,元素无序不可重复。
set可以用来追踪唯一信息,比如请求的ip地址。或者表示集合关系,比如一个角色下的所有用户。set支持集合的常规操作如交集、并集等,可以用来实现共同关注功能。
4.hash
hash可以用来表示对象,hash的键值对都为string类型,所以不支持嵌套对象。
5.zset
zset或叫sorted set,是redis的排序集合,其中元素不可重复且根据分数排序。
zset可以用来做排行
6.stream
stream是流式结构,可以用来检测用户时间,或者做传感器监听等
7.geos
8.hyperLogLog
9.bitmap
10.bitfield
地理空间索引
core
字符串:字符串也可以存储整数,整数支持加减计算、可以用来做计数器。
list:list存储的元素为可重复有序的