目录

一、简介

二、命令合集

三、list应用


一、简介

redis中list采用双向链表结构,和java的LinkedList很相似,通过void *指针保存value,可以存储包括字符串在内的多种数据类型,具有有序可重复特点。

二、命令合集

  1. list命令主要是对列表的增删查改。常用命令会加粗
  2. BLPOP 阻塞地弹出一个列表最左(最前)元素,没有元素时会等待,直到等待超时 。  等待一个列表元素,添加一个aa,弹出元素。
  3. BRPOP     阻塞地弹出最右元素。跟BLPOP相似
  4. BRPOPLPUSH  ,,阻塞地弹出source最右元素,并把它放在destination最左边。
  5. LINDEX  , 获取index处的值  , 
  6. LINSERT  , 列表中插入一个value,, BEFORE | AFTER 二选一,分别表示前 | 后,, pivot 为参考值,即要插入到哪个值前后,,value为插入值
  7. LLEN  , 获取列表长度
  8. LPOP  , 弹出最左边
  9. LPUSH | LPUSHX   ,, ,都是向列表左添加元素, lpushx要求列表事先存在。
  10. LRANGE   , 截取列表部分元素。start stop分别代表起始位置和结束位置,为负数时表示从倒数。 lrange 0 5 列出偏移量0-5的元素,含头含尾。 lrange -3 -1 列出倒数后面三个,含头含尾。
  11. LREM   , 删除count个指定value。 count > 0 时,从左向右删除;count < 0 时,从右往左删除。
  12. LSET , 将index出设置成新value
  13. LTRIM   , 列表裁剪。,将l1裁剪,保存0至5间元素。ltrim 会改变列表, lrange不会。
  14. RPOP  , 右弹出一个元素
  15. RPOPLPUSH   弹出source最右元素,并把它放在destination最左边。
  16. RPUSH  , 向列表右(尾)添加元素
  17. RPUSHX    向列表右(尾)添加元素,要求列表实现存在

三、list应用

  1. 消息队列  生产者lpush将消息存入某个列表,消费者brpop消费消息,没有收到消息则阻塞等待,,只能做比较简单的,容错性比较低。 ,存入消息   ,读取消息,超时时间为0时不超时。
  2. 缓存最新登陆用户、最新新闻等   lpush添加,ltrim取最新添加的条数。  ,,
  3. 全页缓存  有时会需要对某个页面分页数据进行缓存,可以将查询出的数据按页编号从小到大进行排序,,rpush进一个列表,这样列表中页面是有序存储的。  ,pages中添加每一页的json数据,,,查看所有页数据,每页一条数据,,查询第三页数据(偏移量为2)