Redis都支持哪些数据类型
前言
Redis之所以被广泛使用,不只是因为它快,还因为它除了支持最简单的字符串(String)类型外,它还支持好几种数据类型:
哈希(Hash)
列表(List)
集合(Set)
有序集合(Sorted Set)
位图 ( Bitmap )
String
String为最简单的类型,一个key对应一个value,它还可以存二进制的对象(Bitmap)。

Hash
Hash是键值对的集合。在 Redis 中,Hash是字符串字段和字符串值之间的映射。因此,它们适合表示对象。比如用户的昵称、年龄、性别、积分等。
示例:

List
List是一个链表结构,主要功能是push、pop获取一个范围的所有值等等。操作中key理解为链表的名字。
使用List 结构,我们可以轻松地实现最新消息排行等功能(比如新浪微博的 TimeLine )。List 的另一个应用就是消息队列,可以利用List的push操作,将任务存在List 中,然后工作线程再用pop操作将任务取出进行执行。
示例:

Set
Set是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作。操作中key理解为集合的名字。比如在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。因为Redis非常人性化的为集合提供了求交集、并集、差集等操作,那么就可以非常方便的实现如共同关注、共同喜好、二度好友等功能,对上面的所有集合操作,你还可以使用不同的命令选择将结果返回给客户端还是存集到一个新的集合中。
示例

Sorted set
Sorted Set是有序集合,它比set多了一个权重参数score,使得集合中的元素能够按score进行有序排列,比如一个存储全班同学成绩的Sorted Set,其集合value 可以是同学的学号,而score就可以是其考试得分,这样在数据插入集合的时候,就已经进行了天然的排序。

倒序

Bitmap
Bitmap,即位图,它从严格意义上来说,并不是一种独立的数据类型,而是一种特殊的String数据类型。它是一串连续的二进制数组(0和1),可以通过偏移量(offset)定位元素。
BitMap通过最小的单位bit来进行0|1的设置,表示某个元素的值或者状态,时间复杂度为O(1)。
由于bit是计算机中最小的单位,使用它进行储存将非常节省空间,特别适合一些数据量大且使用二值统计的场景。

示例

由于这种数据场景用的并不多,所以不多做解释了。