redis-list列表
redis list 列表是一个链表(linked lists), 可以当作队列使用,可以是先进先出,也可以先进后出,可以当作阻塞队列。模拟生者消费者模型。
插入值
lpush:(左) 将一个或者多个值插入到列表头部
rpush:(右) 将一个或者多个值插入到列表头部
语法: lpush key 值
lrange: 查看值
lrange key start end
127.0.0.1:6379> lpush list a b c d #添加值
4
127.0.0.1:6379> rpush list z #右侧添加值
5
127.0.0.1:6379> lrange list 0 -1 # 查看区间范围内的值
1
d
c
b
a
z
127.0.0.1:6379>
删除值
lpop: 左侧弹出
rpop: 右侧弹出
语法:lpop key 返回弹出值
127.0.0.1:6379> lpop list # 左侧弹出
1
127.0.0.1:6379> rpop list # 右侧弹出
z
127.0.0.1:6379> lrange list 0 -1
d
c
b
a
127.0.0.1:6379>
索引获取元素
**lindex:**通过索引获取元素
语法:lindex key 索引值
Llen: 查看列表长度
语法:Llen key
127.0.0.1:6379> lrange list 0 -1
d
c
b
a
127.0.0.1:6379> LINDEX list 0 # 第一个值
d
127.0.0.1:6379> LINDEX list 1
c
127.0.0.1:6379>
127.0.0.1:6379> LINDEX list -1 # 最后一个值
a
127.0.0.1:6379> llen list # 列表长度
4
127.0.0.1:6379>
删除列表值
lrem 移除列表中指定元素
语法:lrem key count(多少个) value
count:删除多少个值,-
- 如果a 的值有3个, count=2 删除2个
- 如果a 的值有3个,count=5 删除3个
127.0.0.1:6379> lrange list 0 -1
a
d
c
b
a
127.0.0.1:6379>
127.0.0.1:6379> lrem list 1 a
1
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379> lrange list 0 -1
d
c
b
a
元素裁剪
ltrim :元素裁剪返回指定元素
ltrim key start end
127.0.0.1:6379> lpush mylist hello hello hello2 hello3
4
127.0.0.1:6379> lrange mylist 0 -1
hello3
hello2
hello
hello
127.0.0.1:6379>
127.0.0.1:6379> ltrim mylist 1 2 #返回指定元素
OK
127.0.0.1:6379> lrange mylist 0 -1
hello2
hello
列表弹出值,保存到新的列表
rpoplpush: 弹出元素保存到新列表
127.0.0.1:6379> rpoplpush mylist newlist # 弹出值,保存到新的列表
hello
127.0.0.1:6379> lrange mylist 0 -1
hello4
hello3
hello2
127.0.0.1:6379> lrange newlist 0 -1
hello
127.0.0.1:6379>