Redis 数据类型介绍
redis不是简单的k-v存储,他是一个数据结构服务器,支持不同类型的值。这里的v不仅仅可以是字符串。可以是下面多有别的类型:
- 二进制安全的字符串
- Lists: 按插入顺序排序的字符串元素的集合。他们基本上就是链表(linked lists)。
- Sets: 不重复且无序的字符串元素的集合。
- Sorted sets,类似Sets,但是每个字符串元素都关联到一个叫score浮动数值(floating number value)。里面的元素总是通过score进行着排序,所以不同的是,它是可以检索的一系列元素。(例如你可能会问:给我前面10个或者后面10个元素)。
- Hashes,由field和关联的value组成的map。field和value都是字符串的。这和Ruby、Python的hashes很像。
- Bit arrays (或者说 simply bitmaps): 通过特殊的命令,你可以将 String 值当作一系列 bits 处理:可以设置和清除单独的 bits,数出所有设为 1 的 bits 的数量,找到最前的被设为 1 或 0 的 bit,等等。
- HyperLogLogs: 这是被用于估计一个 set 中元素数量的概率性的数据结构。别害怕,它比看起来的样子要简单…参见本教程的 HyperLogLog 部分。D
五大数据类型
Redis Strings
- string类型是redis最基本的数据类型,可以理解与memchaed的一样的类型,一个key一个value
- 二进制县城安全的。(redis的string可以包含任意类型的数据,包括jpg图片或者序列化的对象)
- 一个字符串的value最大是512M
Redis Lists
- 底层是链表类型
- 是简单的字符串列表,按照插入顺序排序,可以插在头部、尾部
Redis Hashes
- hash 类似java的map
- 键值对集合
- string类型的field和value的映射表,hash特别适用于存储对象
Redis Sets
- string类型的无序集合。通过HashTable实现的
Redis Sorted sets
- 和set一样也是string类型的集合,切不允许重复的成员
- 有序的
- 不同的是每个元素都会关联一个double类型的分数
-
通过分数来为集合中的成员进行从小到大的排序。成员是唯一的,但分数(score)却可以重复。