Redis(三) 数据类型String

作者:毕涛涛,致力于Java学习的践行者。原创文章,转载请注明出处。

前言

参考链接:Redis中的5种基本数据结构

Redis基础数据结构

Redis有5种基础数据结构,分别为:string(字符串)、list(列表)、set(集合)、hash(哈希)和zset(有序集合)。熟练掌握这5种基本数据结构的使用是Redis知识最基础的也最重要的部分,它也是在Redis面试题中问到最多的内容。

string(字符串)

字符串 string是Redis最简单的数据结构。Redis所有的数据结构都是以唯一的key字符串作为名称,然后通过这个唯一 key 值来获取相应的 value 数据。不同类型的数据结构的差异就在于 value 的结构不一样。

string类型结构.png

字符串结构使用非常广泛,一个常见的用途就是缓存用户信息。我们将用户信息结构体使用JSON序列化成字符串,然后将序列化后的字符串塞进Redis来缓存。同样,取用户信息会经过一次反序列化的过程。
Redis的字符串是动态字符串,是可以修改的字符串,内部结构实现上类似于Java的ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配。
string类型存储结构.png
内部为当前字符串实际分配的空间 capacity [kəˈpæsəti] 一般要高于实际字符串长度len。当字符串长度小于1M时,扩容都是加倍现有的空间,如果超过1M,扩容时一次只会多扩1M的空间。需要注意的是字符串最大长度为512M。

键值对

键值对.png

批量键值对

可以批量对多个字符串进行读写,节省网络耗时开销。
批量键值对.png

过期和set命令扩展

这个功能常用来控制缓存的失效时间。

过期和set命令扩展.png

计数

如果value值是一个整数,还可以对它进行自增操作,自增是有范围的,它的范围是signed long的最大最小值,超过了这个值,Redis会报错。
计数.png

字符串是由多个字节组成,每个字节又是由8个bit组成,如此便可以将一个字符串看成很多bit的组合,这便是bitmap(位图)数据结构。

你可能感兴趣的:(Redis(三) 数据类型String)