Redis 四 List结构常用命令
1.存储数据
1.1 批量存储数据,可重复
左侧插入:lpush key value [value,value]
右侧插入:rpush key value [value,value]
这时候数据应该是 mmp ycy wxy 7。
1.2.存储数据,必须是list类型的key存在才能插入,不能批量
左侧插入:lpushx key value
右侧插入:rpushx key value
这时候数据应该是 fj mmp ycy wxy 7。
1.3.存储数据,存储时指定索引位置,会覆盖原有数据
lset key index value
这时候数据应该是 fj mmp ycy wxy ddd。
2.获取数据
2.1.获取指定索引范围内的数据
lrange key start stop
start 从0开始
stop -1表示倒数第一个,-2表示倒数第二个
2.2.指定索引位置的数据
lindex key index
2.3.获取整个列表的长度
llen key
2.4弹栈方式获取数据,左侧弹出或右侧弹出,弹出的数据从List中移除了,这种其实算是查询和删除的结合
左侧弹出:lpop key
右侧弹出:rpop key
3.删除数据
3.1 lrem key count value
删除列表中count 个 value,count>0时从左侧删,count<0时从右侧删,count==0删除全部
先是从左侧,删除2个value=7,再删除所有的value=7。
3.2 保留列表中指定范围内的数据,其他都移除
ltrim key start stop,参数跟lrange一样
保留了0到2索引对应的值。
3.3 将一个列表的最后一个数据插入到另一个列表的第一个位置
rpoplpush key1 key 2
其实就是弹出和存储操作的结合,但是具有原子性
从右侧顺序移除value到了新的列表superstar的左侧。
PS:如果要求不高,可以用list做消息队列,lpush和brpop,但是要注意异常后的重试,因为redis内置连接长时间阻塞后会断开。
Brpop 命令移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。