Redis学习(2.list列表)

198 阅读1分钟

Redis 的列表 是链表 而不是数组 这意味着list 插入和删除操作非常快,但是索引定位很慢,列表中的每个元素都使用双向指针顺序,串起来可以同时支持前向后遍历 Redis 的列表结构常用来做异步队列使用,将需要延后处理的任务结构体序列话成字符串,塞进Redis的列表 另一个线程从这个列表中轮询数据进行处理

【右边进左边出:队列】

rpush books python java golang --列表里添加3个元素

llen books --返回长度3

lpop books --从左边出第一个

【右边进右边出:栈】

rpop books --右边出第一个

【慢操作】

lrange books 0 -1 -- 0表示第一个元素 -1最后一个元素 意思是获取整个列表所有的元素

ltrim books 1,-1 -- 去掉了第一个元素 保留第二个元素到最后一个元素

【快速链表quicklist】

底层存储不是一个简单的linkedlist,而是快速链表结构 ,数据量少的时候他存储结构是ziplist 即压缩链表 它将所有的元素紧挨一起,分配一块连续的内存,数据量多的时候才是quicklist ,普通链表里加双向指针prev next 数据量少有点浪费空间 ziplist组装起来就算quicklist