这期探索Redis中list数据结构相关命令。list 是一系列有序值。一些与list 交互的重要的命令是RPUSH,LPUSH,LLEN,LRANGE,LPOP和RPOP
1 LPUSH key element [element ...]
将要存储的值从key对应的列表数据结构头部放进去。如果key不存在,则在执行推送操作之前将其创建为空列表。当key保存的值不是列表时,将返回错误。当保存成功,返回的是存储的个数。
![3b39f4c46256670ccd73846ce14d1b5a.png](https://i-blog.csdnimg.cn/blog_migrate/4128651c1aa48f9d1013b10addce8fbc.jpeg)
lpush保存操作示意图
2 RPUSH key value [value ...]
向存于 key 指向的数据结构列表的尾部插入所有指定的值。如果 key 不存在,那么会创建一个空的列表然后再进行保存。 当 key 保存的不是一个列表,那么会返回一个错误。
可以使用一个命令把多个元素存到队列,只需要在命令后面指定多个参数。元素是从左到右一个接一个从列表尾部插入。当保存成功,返回的是存储的个数。
![8244d46c77528c91e6db78bf0e443412.png](https://i-blog.csdnimg.cn/blog_migrate/03c853e2c720abad862ce5c032da405c.jpeg)
rpush保存操作示意图
3 LLEN key
获取存储在 key 里的list数据结构元素的个数。 如果 key 不存在,那么就被看作是空list,并且返回长度为 0。 当存储在 key 里的值不是一个list的话,会返回error。
![973a38dd88f67b12998b494c5a147940.png](https://i-blog.csdnimg.cn/blog_migrate/0f0ad2dc7a9d752397ac011d59282f8b.jpeg)
llen获取key对应数据结构元素个数
4 LRANGE key start stop
获取存储在 key 的列表数据结构指定范围内的元素。 start 和 end 偏移量都是基于0的下标,即list的第一个元素下标是0(list的表头),第二个元素下标是1,以此类推。
偏移量也可以是负数,表示偏移量是从list尾部开始计数。 例如, -1 表示列表的最后一个元素,-2 是倒数第二个,以此类推。
![fc9e66fd2b0a8208bd806f2a6aaa8639.png](https://i-blog.csdnimg.cn/blog_migrate/40ae79bc83a719166946ac2d2ba241a3.jpeg)
lrange 获取从开头到结尾元素
![b6e687946ed923c9685ffa688deb2244.png](https://i-blog.csdnimg.cn/blog_migrate/6fe0ceba8f8cc571e7871604462d0a8b.jpeg)
lrange 获取从结尾到开头元素
5 LPOP key
移除并且返回 key 对应的 list 的第一个元素。类似双向队列出队
![a875cc616946cd135027e34c176429b6.png](https://i-blog.csdnimg.cn/blog_migrate/59eef03ac4f5ae1bcab3512b690c638f.jpeg)
lpop 移除
6 RPOP key
移除并返回存于 key 的 list 的最后一个元素。类似双向队列出队
![069a0a5b55d7481647006cb5d9ba2a1f.png](https://i-blog.csdnimg.cn/blog_migrate/ba1951b342951999a962e15163fb6135.jpeg)
rpop移除