测试人员应该知道的Redis知识(三) 五大数据类型
一、概述
从官网内容我们可以看到,Redis不仅仅是key-value键值存储结构,而是一个数据结构存储服务器,支持多种类型的values。
事实上,支持多种数据类型也是Redis相对于Memcached一大优势。
在面试的时候,Redis常用的数据类型,也是经常会问的面试题,但在实际面试的时候,大多数面试者都不知道,或者只知道基础的String类型,而对其他的数据类型知之甚少。今天会给大家介绍一下Redis中常用的五大数据类型,包括String、List、Set、Hash、Zset。
二、String(字符串)
完整的说,应该是Binary-safe string,二进制安全字符串。简单来说就是与Memcached一模一样的类型,一个key对应一个value。
而对于Binary-safe:二进制安全,相信很多同学就不了解了,他的意思是Redis的string可以包含任何数据。比如jpg图片或者序列化对象等。当然,我们在实际运用中很少会去存储图片。
String类型是Redis最基本的数据类型,一个Redis中字符串value最多可以存512M,但是我们不应该把内存当磁盘来用。
字符串类型的读写,我们直接通过SET和GET来操作。
三、List(列表)
Redis列表是简单的字符串列表,按照插入的顺序排序。我们可以添加一个元素到列表的头部(左边)或者尾部(右边)。它的底层实际是一个链表。
List类型的读写,我们直接通过LPUSH/RPUSH和LRANGE来操作。
四、Set(集合)
Redis的Set是不重复且无序的字符串元素的集合。
Set类型的读写,我们可以通过SADD和SMEMBERS来操作。
可以看到,我们往set01中插入了多个重复的值,但是最终只会保存一个。
五、Hash(哈希)
类似java里的Map,Redis hash是一个键值对集合,是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Hash类型的读写,我们可以通过HSET和HGET来操作。
六、Zset(sorted set:有序集合)
Redis zset类似Sets,但是每个字符串元素都关联到一个叫score浮动数值(floating number value)。里面的元素总是通过score进行着排序,所以不同的是,它是可以检索的一系列元素。(例如你可能会问:给我前面10个或者后面10个元素)。
Zset类型的读写,我们可以通过ZADD和ZRANGE来操作。
可以看到,之前set是key v1 v2 v3,现在zset是key score1 v1 score2 v2。
七、总结
在实际工作中和面试中,String、List和Hash会使用的更频繁一些,近期有面试的同学也可以在这块有针对性的进行加强。
以上简单为大家介绍了一下Redis的五大数据类型。后续会针对这5大数据类型分别为大家介绍。如果大家还有别的什么问题,可以在评论中留言。
八、系列文章