1.2.2 5种基础数据结构
string(字符串)
字符串string是Redis最简单的数据结构,其内部表示就是一个字符数组。Redis所有的数据结构都是以唯一的key字符串作为名称,然后通过这唯一的key来获取相应的value数据。不同类型的数据结构差异就在于value的结果不一样。
Redis的字符串 是动态字符串,是可以修改的字符串。才用预分配冗余空间的方式来减少内存的频繁分配。当字符串长度小于1MB时,扩容都是加倍现有的空间,如果超过1MB,每次扩容只会多扩1MB,注意字符串最大长度为512MB。
list(列表)
Redis的列表 相当于Java语言里的LinkList, 链表结构。Redis的列表结构常用来做异步队列。 将需要延后处理的任务结构体序列化成字符串,塞进redis 列表中,另一个线程从这个列表中轮训数据进行处理。
【右边进左边出:对列】
【右边进右边出:栈】
【慢操作】 lindex相当于java链表的get(int index)方法,需要对链表进行遍历,性能会随着index增大而变差
【快速列表】redis底层存储的是一个 “快速链表”的结构。首先在列表元素较少的情况下,会使用一块连续的内存存储,这个结构是ziplist(压缩列表)。它将所有元素彼此紧挨着一起存储,分配的是一块连续的内存。当数据量比较多的时候才会改成quicklist。 所以redis将链表与ziplist结合起来形成quicklist,也就是将多个ziplist使用双向指针串起来使用。既能满足快速插入删除性能,也不会出现太大的空间冗余。
标签:1MB,Redis,笔记,列表,链表,字符串,历险,数据结构 From: https://www.cnblogs.com/xiaodeyao/p/17784087.html