文章目录
链表类型(list)
Redis列表是简单的字符串列表,按照插入顺序排序,左边(头部)、右边(尾部)或者中间都可以添加元素。链表的操作无论是头或者尾效率都极高,但是如果对中间元素进行操作,那效率会大大降低了。
列表类型的数据操作总的思想是通过key和下标操作value,key是数据标识,下标是数据在列表中的位置,value是我们感兴趣的业务数据。
lpush(头插)
- 语法:
lpush key value [value…]
- 功能:将一个或多个值 value 插入到列表 key 的最左边(表头),各个value值依次插入到表头位置。
- 返回值:插入之后的列表的长度。
按照插入的顺序一个一个添加
rpush(尾插)
- 语法:
rpush key value [value…]
- 功能:将一个或多个值 value 插入到列表 key 的最右边(表尾),各个 value 值按依次插入到表尾。
- 返回值:插入之后的列表的长度。
lrange(获取指定下标元素)
- 语法:lrange key startIndex endIndex
- 功能:获取列表 key 中指定下标区间内的元素,下标从0开始,到列表长度-1;下标也可以是负数,表示列表从后往前取,-1表示倒数第一个元素,-2表示倒数第二个元素,以此类推;startIndex和endIndex超出范围不会报错。
- 返回值:获取到的元素列表。
lpop(删除头结点)
- 语法:lpop key
- 功能:移除并返回列表key头部第一个元素,即列表左侧的第一个元素。
- 返回值:列表左侧第一个元素的值;列表key不存在,返回nil。
rpop(删除尾结点)
语法:rpop key
功能:移除并返回列表key尾部第一个元素,即列表右侧的第一个元素。
返回值:列表右侧第一个元素的值;列表key不存在,返回nil。
lindex(获取下标值)
- 语法:
lindex key index
- 功能:获取列表 key 中下标为指定 index 的元素,列表元素不删除,只是查询。0 表示列表的第一个元素,1 表示列表的第二个元素;index也可以负数的下标, -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
- 返回值:key存在时,返回指定元素的值;
Key不存在时,返回nil。
llen(获取长度)
- 语法:
llen key
- 功能:获取列表 key 的长度
返回值:数值,列表的长度;key不存在返回0
lrem(删除所有指定值)
语法:lrem key count value
功能:根据参数 count 的值,移除列表中与参数 value 相等的元素,
count >0 ,从列表的左侧向右开始移除;
count < 0 从列表的尾部开始移除;
count = 0移除表中所有与 value 相等的值。
返回值:数值,移除的元素个数
ltrim(截取元素)
语法:ltrim key startIndex endIndex
功能:截取key的指定下标区间的元素,并且赋值给key。下标从0开始,一直到列表长度-1;下标也可以是负数,表示列表从后往前取,-1表示倒数第一个元素,-2表示倒数第二个元素,以此类推;startIndex和endIndex超出范围不会报错。
返回值:执行成功返回ok
lset(修改指定元素)
语法:lset key index value
功能:将列表 key 下标为 index 的元素的值设置为 value。
功能:设置成功返回ok ; key不存在或者index超出范围返回错误信息。
linsert(插入大指定元素的前或后)
语法:linsert key [before/after] pivot value
功能:将值 value 插入到列表 key 当中位于值 pivot 之前或之后的位置。key不存在或者pivot不在列表中,不执行任何操作。
返回值:命令执行成功,返回新列表的长度。没有找到pivot返回 -1, key不存在返回0。