Redis学习笔记(六)---List

1.ArrayList与LinkList的区别redis

ArrayList的使用数组存入的方式,因此根据索引查询数据速度快,而增删元素是比较慢的,它须要将数据一位一位的移动,知道达到要求。数组

LinkList使用的是双向链表的方式存储数据的,每个元素都记录先后元素的指针,因此插入、删除数据是很快的,可是想要查找元素,就相对比较慢了。若是查询前几个元素或者后面的几个元素是比较快的。spa

2.redis list的介绍指针

列表类型(list)能够存储一个有序的列表字符串,经常使用的操做是向列表两端添加元素,或者获取列表的某一段。code

列表使用的是双向链表实现的吗,因此向列表中添加元素的复杂度为o(1),获取越接近两端的数据,速度越快,若是数据量很大,查找中间是很慢的。blog

3.命令索引

3.1向两端添加元素图片

向左边添加元素。字符串

语法:LPUSH key value [value]io

127.0.0.1:6379> lpush list:1 2 4 6 (integer) 3

向左边添加元素。

语法:RPUSH key value [value]

 
127.0.0.1:6379> Rpush list:1 7 8 9 (integer) 3

查看列表

LRANGE命令是列表最经常使用的命令之一,获取列表中的某一段,将返回tart、是图片之间的数据返回,从0开始,索引能够为负,-1表明最后的一个元素。

语法:LRANGE key start stop

127.0.0.1:6379> lrange list:1 0 2

从列表的两端将数据弹出

LPOP命令从列表左边弹出一个元素,会分两步完成:将数据删除,将数据返回。

语法:LPOP key  左弹出

      RPOP key 右弹出

127.0.0.1:6379> lpop list:1 127.0.0.1:6379> rpop list:1

获取数据的个数

语法:LLEN key

127.0.0.1:6379> llen list:1

删除全部的值

LREM命令会删除列表中前count个值为value的元素,返回实际删除的元素个数。根据count值的不一样,该命令的执行方式会有所不一样:

当count>0时, LREM会从列表左边开始删除

当count<0时, LREM会从列表后边开始删除。

当count=0时, LREM删除全部值为value的元素。

语法:LREM key count value

获取、设置指定索引的元素值

语法:LINDEX key index

127.0.0.1:6379> lindex l:list 2

设置值

LSET key index value

127.0.0.1:6379> lset l:list 2 2 OK 127.0.0.1:6379> lrange l:list 0 -1

 只保留保留列表指定的片断

LTRIM key start stop

127.0.0.1:6379> lrange l:list 0 -1

向列表中插入数据

语法:LINSERT key BEFORE|AFTER pivot value

linsert list after 3 4 linsert list before 3 4

将一个元素从一个列表移动到另外一个列表中

语法:RPOPLPUSH source destination

RPOPLPUSH list1 list2;

4.应用场景:

Redis中建立商品评论列表,由于评论只是显示前面的几条数据,这样响应的速度是很快的。

相关文章
相关标签/搜索