Redis-List类型-增删改查
- Redis的Value除了可以存储字符串和Hash类型以外,还可以存储List类型
- List类型就相当于JavaScript中的数组,可以把整个数组当做一个Value存储起来
- List是
有序
的
✒增加
- 从第二个Value开始添加到前一个Value的左边
- 语法:lpush key value1 value2 value3
lpush arr1 aa bb cc
- 从第二个Value开始添加到前一个Value的右边
- 语法:rpush key value1 value2 value3
rpush arr2 aa bb cc
查询
- 查询指定
范围
数据 - 语法:lrange key startIndex endIndex
- 索引从0开始,endIndex等于-1表示取到最后
lrange arr1 0 -1
lrange arr1 0 2
- 查询指定
索引
数据 - 语法:lindex key index
- 从前往后索引从0开始,从后往前索引从-1开始
lindex arr1 1
lindex arr1 -2
修改
- 语法:lset key index value
- index从0开始
lset arr1 1 dd
删除
-
lpop
删除左边元素 - 语法:lpop key
lpop arr1
-
rpop
删除右边元素 - 语法:rpop key
rpop arr1
-
lrem
删除指定个数的指定元素 - 语法:lrem key count value
首先添加测试数据
rpush arr4 11 22 11 33 11 44 11 55 11 66
- count > 0:从表头开始向表尾搜索,移除与
value
相等的元素,数量为 count
lrem arr4 1 11
- count < 0:从表尾开始向表头搜索,移除与
value
相等的元素,数量为 count 的绝对值
lrem arr4 -1 11
- count = 0:移除表中所有与
value
相等的值
lrem arr4 0 11
-
ltrim
按照索引剪切列表 - 格式:ltrim key start end
ltrim arr4 1 3
Redis-List类型-其它操作
????追加数据
- 格式:lpush key value1, value2, ...
- 如果不存在就是创建,存在了就是往原有的基础上追加,左追加
lpush arr4 11 22
- 格式:rpush key value1, value2, ...
- 如果不存在就是创建,存在了就是往原有的基础上追加,右追加
rpush arr4 11 22
插入数据
- 格式:linsert key before|after oldValue newValue
linsert arr4 before 44 66
linsert arr4 after 44 77
获取列表长度
- 格式:llen key
llen arr4
列表实现简单数据结构
- 栈结构(水桶)先进后出
- lpush + lpop
- 队列结构(水管)先进先出
- lpush + rpop
所以在企业开发中,如果需要先进后出
或者先进先出
的数据结构,我们就可以将这些数据存储到Redis的列表中