Redis的数据类型
redis是支持多种类型的,不仅仅是简单的key-value的所谓的字符串类型,它支持的类型有五种,分别是:String、Hash、List、Set、ZSet.
注:命令用红色表示关键字(命令符),key用蓝色表示,value用绿色表示
一、String类型
redis的key-valeu中,String类型是Redis的最基本类型,String类型的value支持最大长度为512M,即一个可以最大能存512M内容,所以redis可以保存任何类型的东西,比如图片、序列化的对象等等。
- 命令:存:set key value 取: get key
- 示列:
二、Hash类型
hash(哈希)类型就就是存储的是hash键值对,即存储的都是key-->value的键值对,以一对一对的保存数据,可以理解是一些列的二维映射表,所以hash类型特别适合存储对象。每个 hash 可以存储 -1 键值对(40多亿)。
- 命令:存:hmset key field1 value1 field2 value2 取: hget key field 或 hgetAll key
- 示列:
三、List类型
list(列表)类型可以存储一些列的简单字符串列表,所以称为list类型。每个列表最多可存储 - 1 元素 (40多亿),并且按照插入顺序排序。
- 命令:存:lpush key value1 value2 取:lrange key minIndex maxIndex
- 示列:
四、Set类型
set(集合)类型保存的是无序的不重复的String类型value,他的底层实现是用hash实现的,所以添加,删除,查找的复杂度都是O(1)。set区别于list类型的关键在于无序和不重复。每个集合表最多可存储 - 1 元素 (40多亿)。
- 命令: 存:sadd key value 取: smembers key
- 示列:
五、ZSet类型
zset(有序集合)类型和set类型很相似,集合里的元素仍然是不重复的,唯一不同的是zset增加了排序,每个元素都和一个double类型的分数,zset就是通过这个分数来对集合中的元素进行从小到大的排序。zset的元素是不重复唯一的,但是分数是可以重复的。
- 命令:存:zadd key score value 取: zrangebyscore key minIndex maxIndex
- 示列: