Redis数据类型:列表list
Redis列表由多个字符串值组成的有序(指插入的顺序)可重复的序列,是链表结构,允许用户从两端压入或者弹出元素,所以向列表两端添加元素的时间复杂度为0(1),获取越接近两端的元素速度就越快。意味着即使是一个有几千万个元素的列表,获取头部或尾部的10条记录也是极快的。列表中可以包含的最大元素数量是4294967295。
应用场景:排行榜,消息队列。
类型操作
1.往头部压入元素。
LPUSH key value [value ...]
2.往尾部压入元素。
RPUSH key value [value ...]
3.从头部弹出一个元素。
LPOP key
4.从尾部弹出一个元素。
RPOP key
结论:同向命令(lpush/lpop或者rpush/rpop)操作时,就是栈(先进后出)。反向命令(lpush/rpop或者rpush/lpop)操作时,就是队列(先进先出)。
5.删除指定返回内以外的元素。
LTRIM key start stop
6.获取指定返回内的元素。
LRANGE key start stop
7.获取具体下标对应的元素。
LINDEX key index
8.在指定的元素前面或者后面插入一个元素。(如果指定的元素在列表中有相同的,那么指定的就是第一次出现的那个元素)
LINSERT key BEFORE|AFTER pivot value
9.获取列表的长度。
LLEN key
10.设置指定下标的元素。
LSET key index value
11.设置指定下标的元素。
LSET key index value
12.删除count个等于value的元素。(count大于0从头部开始删,count小于0从尾部开始删,count等于0删除所有等于value的元素)
LREM key count value
13.从source尾部弹出一个元素压入到destination的头部。
RPOPLPUSH source destination
14.弹出并获取列表的头(尾)部元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。timeout单位:秒(如果给定多个key时,则按给定key的先后顺序,依次检查各个列表,直到遇见第一个非空列表,把该列表的头(尾)部元素和所属的列表key一起返回),可当做一个阻塞的单播队列使用。
BLPOP/BRPOP key [key ...] timeout