理解 Redis(6) - List 值

栏目: 数据库 · 发布时间: 5年前

内容简介:list 值就是一组根据插入顺序排列的字符串, 从左向右排列, 左边为头(head), 右侧为尾(tail). 左边为顶部, 右边为底部.下图为 list 值的示意图:

list 值就是一组根据插入顺序排列的字符串, 从左向右排列, 左边为头(head), 右侧为尾(tail). 左边为顶部, 右边为底部.

下图为 list 值的示意图:

理解 Redis(6) - List 值

从左侧开始向键为 num 的 list 插入数据:

127.0.0.1:6379> lpush num 1 2 3 4
(integer) 4

查看 num 里的数据, 因为数据是从左侧开始插入, 并且插入的先后顺序是从1到4, 所以1在最底层, 4在最顶层:

127.0.0.1:6379> lrange num 0 10
1) "4"
2) "3"
3) "2"
4) "1"

再从左侧插入一个数据:

127.0.0.1:6379> lpush num 5
(integer) 5
127.0.0.1:6379> lrange num 0 10
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"

从左侧弹出一个数据, 因为5在最顶层, 所以最先弹出:

127.0.0.1:6379> lpop num
"5"
127.0.0.1:6379> lrange num 0 10
1) "4"
2) "3"
3) "2"
4) "1"

从右侧插入数据:

127.0.0.1:6379> rpush num 5
(integer) 5
127.0.0.1:6379> lrange num 0 10
1) "4"
2) "3"
3) "2"
4) "1"
5) "5"
127.0.0.1:6379> rpush num 6
(integer) 6
127.0.0.1:6379> lrange num 0 10
1) "4"
2) "3"
3) "2"
4) "1"
5) "5"
6) "6"

从右侧弹出数据:

127.0.0.1:6379> rpop num
"6"
127.0.0.1:6379> lrange num 0 10
1) "4"
2) "3"
3) "2"
4) "1"
5) "5"

查看一个 list 的长度:

127.0.0.1:6379> lrange num 0 10
1) "4"
2) "3"
3) "2"
4) "1"
5) "5"
127.0.0.1:6379> llen num
(integer) 5

根据索引查看 list 中某个位置的值:

127.0.0.1:6379> lindex num 3
"1"
127.0.0.1:6379> lindex num 0
"4"

根据索引修改 list 中某个位置的值:

127.0.0.1:6379> lset num 0 8
OK
127.0.0.1:6379> lrange num 0 10
1) "8"
2) "3"
3) "2"
4) "1"
5) "5"

在未知 list 长度的情况下, 可以使用 0 -1 的范围来查看 list 中的所有值:

127.0.0.1:6379> lrange num 0 -1
 1) "8"
 2) "3"
 3) "2"
 4) "1"
 5) "5"

在插入数据之前, 先检查指定的键是否存在, 如果存在则插入, 如果不存在, 则返回0. 用这个命令插入, 一次只能插入一个值, 多个会报错:

127.0.0.1:6379> lpushx num 9
(integer) 6
127.0.0.1:6379> lrange num 0 -1
 1) "9"
 2) "8"
 3) "3"
 4) "2"
 5) "1"
 6) "5"
127.0.0.1:6379> lpushx sub 9
(integer) 0

在 list 中间的某个位置插入数据, 可以用 linsert 命令, 借助关键字 before 和 after 确定位置:

127.0.0.1:6379> lrange num 0 -1
1) "5"
2) "1"
3) "2"
4) "3"
5) "8"
6) "9"
127.0.0.1:6379> linsert num before 8 55
(integer) 7
127.0.0.1:6379> lrange num 0 -1
1) "5"
2) "1"
3) "2"
4) "3"
5) "55"
6) "8"
7) "9"
127.0.0.1:6379> linsert num after 1 66
(integer) 8
127.0.0.1:6379> lrange num 0 -1
1) "5"
2) "1"
3) "66"
4) "2"
5) "3"
6) "55"
7) "8"
8) "9"

以上, 就是关于 list值的相关命令, enjoy......


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

打造Facebook

打造Facebook

王淮、祝文让 / 印刷工业出版社 / 2013-2-1 / 39.80元

《打造Facebook》新书发布会,王淮与读者面对面,活动链接:http://www.douban.com/event/18166913/ 这本书的书名——《打造Facebook:亲历Facebook爆发的5年》很嚣张,谁有资格可以说这句话呢,当然,扎克伯格最有资格,但他不会亲自来告诉你,至少从目前的情况来看,近几年都不大可能。而且,这不是一个人的公司。里面的每一人,尤其是工程师,既是公司文......一起来看看 《打造Facebook》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

MD5 加密
MD5 加密

MD5 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换