List数据类型

List是一个链表结构,主要功能为push,pop,获取一个范围的所有值等等。操作中key理解为链表的名字,redis的list其实就是一个每个子元素都是string类型的双向链表,我们可以通过push,pop操作从链表的头或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列



lpush :从头部对list添加字符串元素


例子:

lpush list1 'hello'

lpush list1 'world'

lpush list1 'zjz'


lrange list1 0 -2

输出: zjz world


linsert 在特定的位置插入

lpush list2 one

lpush list2 three

linsert list2 before one two 输出 three two one 头方向为前


lset list2 0 'aaa' 把下标为0的元素值替换为aaa


lrem list2 2 one  删除两个值为one的元素,从头部开始(n<0表示从尾删除,n=0表示全部删除)



ltrim list2 1 -1 保留 1到-1的元素,其他全部删除掉


lpop list2 从头部弹出一个元素,并返回删除的元素

rpop list2 从尾部弹出一个元素,并返回删除的元素




rpoplpush list1 list2 从list1的尾部弹出元素,并添加到list2的头部


lindex list1 1 返回list1中下标为1的元素值,支持负数


rpush list2 'xxxx' 从尾部压入


llen list2 返回链表的长度