redis数据库中选取链表作为list的基础,没有使用数组。
List的使用环境:
1、做大数据集合的增删
2、做任务队列。(文章结尾的一条命令,诠释经典)
取值操作:
lrange key start end 表示链表中从start到end的元素值,start、end从0开始计数;也可为负数,若为-1 则表示链表尾部的元素,-2则表示倒数第二个
如果每次想去获取list里面的所有元素,直接可以采用 lrange list 0 -1
赋值操作:
lpush key values
rpush key values
删除操作:
lpop key 从头部弹出
rpop key 从尾部弹出
如果删除干净了,redis就没有了,会提示(empty list or set)
其他命令
llen key : 获取列表中key关联的链表中的元素的数量
lrem key count value 例如:删除链表职工所有的a元素,lrem list 0 a lrem list -2 b 从尾部向头部删除2个b 此命令不建议使用
del list 删除元素
lset key index value 通过索引替换元素
linsert key before/after *** &&& 在***元素前/后 插入 &&&
rpoplpush list1 list2 经典命令,要求把list1的右边元素弹出,同时把弹出的元素插入list2左边
那么就会想到,我们的循环任务,直接使用rpoplpush list1 list1 是不是就可以了?