lpush+key的名字+值+值....:单key多值,增加一个列表 例:lpush list1 1 2 3 4 5
lrange+key的名字+数字(第几位)+数字(第几位):查询范围 ,例:lrange list1 0 -1 查询全部 结果为 5 4 3 2 1
rpush+key的名字+值+值....:单key多值,增加一个列表 例:rpush list2 1 2 3 4 5
lrange+key的名字+数字(第几位)+数字(第几位):查询范围 ,例:lrange list2 0 -1 查询全部 结果为 1 2 3 4 5
lpop+key的名字:弹出一个栈顶元素
例:lpop list1 返回为5 此时lrange list1 0 -1 返回结果为4 3 2 1
lpop list2 返回为1 此时lrange list2 0 -1 返回结果为2 3 4 5
rpop+key的名字:弹出一个栈底元素
例:lpop list1 返回为1 此时lrange list1 0 -1 返回结果为 4 3 2
lpop list2 返回为5 此时lrange list2 0 -1 返回结果为 2 3 4
lindex+key的名字+数字(索引位置):按照索引下标获得元素(从上到下)
例:lindex list1 3 返回为nill
lindex list1 2 返回为2
llen+key的名字:获取长度 llen key1 返回为3
lrem +key的名字+数字(几个)+数字(值):删除n个值
例:假设现在list3为 1 1 1 2 2 2 3 3 3 3 3 4 5 5 6 6 6
lrem key3 3 2 意思为删除三个2
ltrim+key的名字+数字(开始索引)+数字(结束索引):截取指定范围内的值后再赋值给key
例:假设现在list1 经过lpush 为 0 1 2 3 4 5 6 7 8 9
ltrim list1 3 5 返回ok 再次 lrange list1 0 -1 返回值为 6 5 4
rpoplpush+key的名字(源列表)+key的名字(目标列表):将源列表中的栈底元素移到目标列表中栈顶
例:假如list1 现在是 8 7 6 5 4 , list2现在是2 3 4
rpoplpush list1 list2 返回结果为4 ,再次lrange list2 0 -1 结果为 4 2 3 4
lset +key的名字+数字(索引)+值:将列表中的索引位置的赋值
例 lset list1 1 x ,经过lrange list1 0 -1 ,返回结果为:8 x 6 5
linsert key的名字 +before/after+ 值1+值2 :在列表中 值1之前/之后插入值2
linsert list1 before x java 返回值为 8 java x 6 5
他是一个字符串链表,left,right都可以插入添加
如果键不在,创建新的链表
如果键存在,新增内容
如果值全移除,对应的键也就消失了
链表的操作无论是头和尾效率都极高,但如果是对中间表元素进行操作,效率就很惨淡了