2、list列表类型
简介
列表的功能十分独特,他可以在一个键下面存储N个可以重复的元素。其实就是把string类型右边的值换成了多个元素组成的列表。
列表结构
由于列表的可重复性,下面的结构实例中,第一个元素和最后一个元素可以重复。
[
"user":[
"yanying",
"zhangsan",
"yanying"
]
]
操作方法
命令 | 行为 |
---|---|
rpush | 从列表的右边添加一个值 |
lpush | 从列表左边添加一个值 |
rpop | 从列表右边删除一个值 |
lpop | 从列表左边删除一个值 |
lindex | 获取列表在给定位置上的一个元素 |
lrange | 获取给定范围所有元素 |
$redis->rpush |
PHP版本从右侧添加一个值 |
$redis->lrange |
PHP版本获取范围内所有的元素 |
$redis->lindex |
PHP版本获取指定索引的值 |
$redis->lpop |
PHP版本从左侧删除一个元素 |
演示(命令行 + PHP演示)
命令行:
向列表添加值之后,会返回 当前的长度(包含元素个数)。(这里是右侧添加,左侧添加同理)
rpush list-key item // (integer) 1 , 当前列表包含元素个数
rpush list-key item2 // (integer) 2
rpush list-key item // (integer) 3 ,即使添加相同值,也是可以添加
获取一定范围内的值,成功返回 范围内所有元素。这里的0代表起始位置,-1代表结束位置。从0到-1,代表取出所有的值。
lrange list-key 0 -1 // 该值返回的结果为:"item","item2","item"。
获取列表里面的 某个元素。
lindex list-key 1 // 获取索引为1的元素
从列表左侧删除一个元素,成功返回 被删除的元素
lpop list-key // 上面的列表返回"item"
再次获取列表的 所有元素。记住,索引从0到-1
lrange list 0 -1 // 返回:"item2","item",之前最左边的item已经被删除
PHP版本演示
第一步,链接redis数据库
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
设置值,成功返回当前 列表中的元素
$r = $redis->rpush("list-key","item"); // 从列表右侧添加一个值item
var_dump($r);// 此时,列表中有一个元素,返回int 1
同理我们再添加item2
和item
元素
$redis->rpush("list-key","item2"); // 含有2个元素,返回int 2
$redis->rpush("list-key","item"); // 含有3个元素,返回int 3
下面,我们获取全部的值
$redis->lrange("tutorial-list", 0 ,-1); // 该值返回的结果为:"item","item2","item"。
我们也可以通过lindex
来获取其中某个索引的值,成功返回 索引的值
$redis->lindex("list-key",1); // 获取索引为1的值,也就是第二个:"item2"
添加完了,我们可以使用lpop
从左侧删除一个元素,或者使用rpop
从右侧删除一个元素,成功返回 被删除元素的值
$r = $redis->lpop("list-key"); // 这里我们做左侧删除了一个元素,即为:'item'
我们再来使用lrange
获取所有的元素
$redis->lrange("list-key", 0 ,-1); // 该值返回的结果为:"item2","item"。