List是一个链表结构 , 主要功能是push 、 pop 、获取一个范围的所有值等等 , 操作中key理解为链表的名字 . redis 的 list类型其实就是一个每个子元素都是string类型的双向链表 . 我们可以通过push 、pop 操作从链表的头部或者尾部添加删除元素 , 这样list既可以作为栈 , 又可以作为队列 .
lpush : 从头部把数据压栈 .
lpush list1 "fcz"
lpush list1 "zxy"
rpush : 从尾部把数据压栈 .
rpush list2 "fcz"
rpush list2 "zxy"
linsert : 在key对应list的特定位置前或后添加字符串
linsert list3 "world" "hello" // 在world的前面压入一个hello
lset : 设置list中指定下标的元素值 , 类似于数组 .
lset list4 0 "world"
lrem : 从key对应list中删除n个和value相同的元素 ( n<0 从尾删除 , n=0 全部删除)
lrem list1 1 "fcz" // 从list1中删除1 个与"fcz"相同的值 .
ltrim : 保留指定key的值范围内的数据 .
ltrim list2 1 2 // 只保留下标1到2之间的数据.
lpop : 从list的头部删除元素 , 并返回删除元素 .
rpop : 从list的尾部删除元素 , 并返回删除元素 .
lindex : 返回名称为key的list中index位置的元素 .
lindex list1 0 // 返回下标是0的元素的值 .