Redis 列表(List) ╰+哭是因爲堅強的太久メ 2022-08-28 11:54 205阅读 0赞 Redis 列表是最简单的字符串列表,按照插入的顺序,我们可以添加一个元素到列表的头部或者尾部。一个列表最多可以包含 4294968295(2^32 - 1)个元素。 常用的命令如下所示: <table style="width:700px;"> Redis List 常用命令 <thead> <tr> <th style="text-align:center;vertical-align:middle;width:228px;">命令</th> <th style="text-align:center;vertical-align:middle;width:230px;">说明</th> <th style="text-align:center;vertical-align:middle;width:120px;">返回值</th> <th style="text-align:center;vertical-align:middle;">示例</th> </tr> </thead> <tbody> <tr> <td style="text-align:center;vertical-align:middle;width:228px;">LPUSH key value1 [value2 ...]</td> <td style="text-align:center;vertical-align:middle;width:230px;">将一个或多个值插入到列表头部。如果 key 值不存在,会先创建再执行 LPUSH 命令,如果 key 值存在但不是列表类型时,返回一个错误</td> <td style="text-align:center;vertical-align:middle;width:120px;">返回执行命令之后列表的长度</td> <td style="text-align:center;vertical-align:middle;"><img alt="" height="344" src="https://img-blog.csdnimg.cn/20210927171548460.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Sm5pyo55m9,size_20,color_FFFFFF,t_70,g_se,x_16" width="837"></td> </tr> <tr> <td style="text-align:center;vertical-align:middle;width:228px;">RPUSH key value1 [value2 ...]</td> <td style="text-align:center;vertical-align:middle;width:230px;">将一个或多个值插入到列表尾部。如果 key 值不存在,会先创建再执行 LPUSH 命令,如果 key 值存在但不是列表类型时,返回一个错误</td> <td style="text-align:center;vertical-align:middle;width:120px;">返回执行命令之后列表的长度</td> <td style="text-align:center;vertical-align:middle;"><img alt="" height="218" src="https://img-blog.csdnimg.cn/20210927171902235.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Sm5pyo55m9,size_20,color_FFFFFF,t_70,g_se,x_16" width="555"></td> </tr> <tr> <td style="text-align:center;vertical-align:middle;width:228px;">LPUSH key value</td> <td style="text-align:center;vertical-align:middle;width:230px;">将一个值插入到已存在的列表的头部,列表不存在时操作无效</td> <td style="text-align:center;vertical-align:middle;width:120px;">返回执行命令之后列表的长度</td> <td style="text-align:center;vertical-align:middle;"><img alt="" height="526" src="https://img-blog.csdnimg.cn/20210927172442482.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Sm5pyo55m9,size_20,color_FFFFFF,t_70,g_se,x_16" width="565"></td> </tr> <tr> <td style="text-align:center;vertical-align:middle;width:228px;">RPUSH key value</td> <td style="text-align:center;vertical-align:middle;width:230px;">将一个值插入到已存在的列表的尾部,列表不存在时操作无效</td> <td style="text-align:center;vertical-align:middle;width:120px;">返回执行命令之后列表的长度</td> <td style="text-align:center;vertical-align:middle;"><img alt="" height="367" src="https://img-blog.csdnimg.cn/2021092717271751.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Sm5pyo55m9,size_20,color_FFFFFF,t_70,g_se,x_16" width="514"></td> </tr> <tr> <td style="text-align:center;vertical-align:middle;width:228px;">LLEN key</td> <td style="text-align:center;vertical-align:middle;width:230px;">返回列表长度,如果 key 不存在,返回 0,如果 key 不是列表列表类型,返回错误</td> <td style="text-align:center;vertical-align:middle;width:120px;">返回列表长度</td> <td style="text-align:center;vertical-align:middle;"><img alt="" height="386" src="https://img-blog.csdnimg.cn/20210927173408977.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Sm5pyo55m9,size_20,color_FFFFFF,t_70,g_se,x_16" width="1012"></td> </tr> <tr> <td style="text-align:center;vertical-align:middle;width:228px;">LINDEX key index</td> <td style="text-align:center;vertical-align:middle;width:230px;">用于通过索引获取列表中的元素,0 表示第一个元素,-1 表示最后一个元素,-2 表示倒数第二个元素</td> <td style="text-align:center;vertical-align:middle;width:120px;">返回列表中指定索引值的元素,如果指定索引值不在列表的区间范围内,返回 nil</td> <td style="text-align:center;vertical-align:middle;"><img alt="" height="463" src="https://img-blog.csdnimg.cn/20210927174255756.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Sm5pyo55m9,size_20,color_FFFFFF,t_70,g_se,x_16" width="587"></td> </tr> <tr> <td style="text-align:center;vertical-align:middle;width:228px;">LSET key index value</td> <td style="text-align:center;vertical-align:middle;width:230px;">通过索引来设置元素的值,当指定索引超出范围,或者列表不存在时,返回错误</td> <td style="text-align:center;vertical-align:middle;width:120px;">成功返回 OK,失败返回错误</td> <td style="text-align:center;vertical-align:middle;"><img alt="" height="570" src="https://img-blog.csdnimg.cn/20210927174752913.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Sm5pyo55m9,size_20,color_FFFFFF,t_70,g_se,x_16" width="649"></td> </tr> <tr> <td style="text-align:center;vertical-align:middle;width:228px;">LPOP key</td> <td style="text-align:center;vertical-align:middle;width:230px;">用于移除并返回列表的第一个元素</td> <td style="text-align:center;vertical-align:middle;width:120px;">返回列表的第一个元素,当 key 不存在时,返回 nil</td> <td style="text-align:center;vertical-align:middle;"><img alt="" height="586" src="https://img-blog.csdnimg.cn/20210927175052153.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Sm5pyo55m9,size_20,color_FFFFFF,t_70,g_se,x_16" width="633"></td> </tr> <tr> <td style="text-align:center;vertical-align:middle;width:228px;">RPOP key</td> <td style="text-align:center;vertical-align:middle;width:230px;">用于移除并返回列表的最后一个元素</td> <td style="text-align:center;vertical-align:middle;width:120px;">返回列表的最后一个元素,当 key 不存在时,返回 nil</td> <td style="text-align:center;vertical-align:middle;"><img alt="" height="499" src="https://img-blog.csdnimg.cn/20210927175226927.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Sm5pyo55m9,size_20,color_FFFFFF,t_70,g_se,x_16" width="640"></td> </tr> <tr> <td style="text-align:center;vertical-align:middle;width:228px;">LINSERT key BEFORE|AFTER pivot value</td> <td style="text-align:center;vertical-align:middle;width:230px;"> <p>用于在指定的元素之前或之后插入指定的元素,value为待插入的元素,pivot 为列表中的元素,当 pivot 不存在时,或列表不存在时,不执行任何操作,当 key</p> <p>不是列表时,返回错误</p> </td> <td style="text-align:center;vertical-align:middle;width:120px;">执行成功返回插入之后列表的长度;如果指定的 pivot 不存在,返回 -1;如果 key 不存在,返回 0</td> <td style="text-align:center;vertical-align:middle;"><img alt="" height="871" src="https://img-blog.csdnimg.cn/20210927180619885.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Sm5pyo55m9,size_20,color_FFFFFF,t_70,g_se,x_16" width="846"></td> </tr> <tr> <td style="text-align:center;vertical-align:middle;width:228px;">LRANGE key start stop</td> <td style="text-align:center;vertical-align:middle;width:230px;">获取列表中指定区间的元素,0 表示列表中第一个元素,-1 表示列表中最后一个元素</td> <td style="text-align:center;vertical-align:middle;width:120px;">返回一个包含指定区间内元素的列表</td> <td style="text-align:center;vertical-align:middle;"><img alt="" height="440" src="https://img-blog.csdnimg.cn/2021092718090288.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Sm5pyo55m9,size_20,color_FFFFFF,t_70,g_se,x_16" width="522"></td> </tr> <tr> <td style="text-align:center;vertical-align:middle;width:228px;">LTRIM key start stop</td> <td style="text-align:center;vertical-align:middle;width:230px;">对列表进行修剪,只保留指定区间内的元素,不在区间内的元素都删除,0 表示列表中第一个元素,-1 表示列表中最后一个元素</td> <td style="text-align:center;vertical-align:middle;width:120px;">执行成功返回 OK</td> <td style="text-align:center;vertical-align:middle;"><img alt="" height="481" src="https://img-blog.csdnimg.cn/20210927181155217.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Sm5pyo55m9,size_20,color_FFFFFF,t_70,g_se,x_16" width="593"></td> </tr> <tr> <td style="text-align:center;vertical-align:middle;width:228px;">RPOPLPUSH source distination</td> <td style="text-align:center;vertical-align:middle;width:230px;">将 source 列表中最后一个元素移除,并将该元素添加到 destination 列表中,可简单理解为“尾删头插”</td> <td style="text-align:center;vertical-align:middle;width:120px;">返回被移除的元素</td> <td style="text-align:center;vertical-align:middle;"><img alt="" height="750" src="https://img-blog.csdnimg.cn/20210927181619481.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Sm5pyo55m9,size_20,color_FFFFFF,t_70,g_se,x_16" width="703"></td> </tr> <tr> <td style="text-align:center;vertical-align:middle;width:228px;">BRPOPLPUSH source destination timeout</td> <td style="text-align:center;vertical-align:middle;width:230px;">从列表中取出最后一个元素并插入到另一个元素的头部(尾删头插),如果列表没有元素会阻塞知直到超时会发现可弹出元素为止,timeout 的单位为秒</td> <td style="text-align:center;vertical-align:middle;width:120px;">假如在指定时间内没有任何元素被弹出,则返回一个 nil 和等待时长。 反之,返回一个含有两个元素的列表,第一个元素是被弹出元素的值,第二个元素是等待时长</td> <td style="text-align:center;vertical-align:middle;"> <p><img alt="" height="103" src="https://img-blog.csdnimg.cn/20210927182706428.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Sm5pyo55m9,size_20,color_FFFFFF,t_70,g_se,x_16" width="558"><img alt="" height="751" src="https://img-blog.csdnimg.cn/20210927182523736.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Sm5pyo55m9,size_20,color_FFFFFF,t_70,g_se,x_16" width="669"></p> <p>官方文档表名有元素弹出时会返回等待时长,实际测试发现并没有等待时长返回</p> </td> </tr> <tr> <td style="text-align:center;vertical-align:middle;width:228px;">BLPOP key1 [key2] timeout</td> <td style="text-align:center;vertical-align:middle;width:230px;">移除列表中的第一个元素,如果列表没有元素会阻塞直到超时或者发现可弹出元素为止,timeout 的单位为秒</td> <td style="text-align:center;vertical-align:middle;width:120px;">返回一个含有两个元素的列表,如果元素存在,第一个元素是被弹出元素的 key,第二个元素是被弹出的元素;如果列表为空,第一个元素是 nil,第二个元素是等待时长</td> <td style="text-align:center;vertical-align:middle;"><img alt="" height="340" src="https://img-blog.csdnimg.cn/20210927183537670.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Sm5pyo55m9,size_20,color_FFFFFF,t_70,g_se,x_16" width="725"></td> </tr> <tr> <td style="text-align:center;vertical-align:middle;width:228px;">BRPOP key1 [key2] timeout</td> <td style="text-align:center;vertical-align:middle;width:230px;">移除列表中的最后一个元素,如果列表没有元素会阻塞直到超时或者发现可弹出元素为止,timeout 的单位为秒</td> <td style="text-align:center;vertical-align:middle;width:120px;">返回一个含有两个元素的列表,如果元素存在,第一个元素是被弹出元素的 key,第二个元素是被弹出的元素;如果列表为空,第一个元素是 nil,第二个元素是等待时长</td> <td style="text-align:center;vertical-align:middle;"><img alt="" height="583" src="https://img-blog.csdnimg.cn/20210927184035481.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Sm5pyo55m9,size_20,color_FFFFFF,t_70,g_se,x_16" width="591"></td> </tr> <tr> <td style="text-align:center;vertical-align:middle;width:228px;">LREM key count value</td> <td style="text-align:center;vertical-align:middle;width:230px;">移除列表中与指定元素相等的元素,count > 0:从头到尾搜索,移除与 value 相等的元素,数量为 count;count < 0:从尾到头搜索,移除与 value 相等的元素,数量为 count 的绝对值;count = 0:移除列表中所有与 value 相等的元素</td> <td style="text-align:center;vertical-align:middle;width:120px;">返回被删除元素的数量,列表不存在时也返回0</td> <td style="text-align:center;vertical-align:middle;"><img alt="" height="728" src="https://img-blog.csdnimg.cn/20210927185045243.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA54Sm5pyo55m9,size_20,color_FFFFFF,t_70,g_se,x_16" width="964"></td> </tr> <tr> <td style="text-align:center;vertical-align:middle;width:228px;"></td> <td style="text-align:center;vertical-align:middle;width:230px;"></td> <td style="text-align:center;vertical-align:middle;width:120px;"></td> <td style="text-align:center;vertical-align:middle;"></td> </tr> </tbody> </table> 更多详细的命令介绍,参考官网: [Command reference – Redis][Command reference _ Redis] [Command reference _ Redis]: https://redis.io/commands
还没有评论,来说两句吧...