Redis笔记02
List类型
相当于java中的linkedList
1.常用命令
赋值
- LPHSH key Value1 value2: 将一个或多个值插入到列表头部(从左侧添加)
- RPUSH key value1 value2 :在列表中添加一个或多个值(从右侧添加)
- LPUSHX key value :将一个值插入到已存在的列表头部,如果列表不存在,操作无效
- RPUSHX key value :一个值插入已存在的列表尾部(最右边),如果列表不在,操作无效
取值
- LLEN key :获取列表长度
- LINDEX key index : 通过索引获取列表中的元素 从左侧开始(头部开始)其实index是0
- LRANGE key start stop :获取列表指定范围内的元素 例如:lrange woman 0 10
删除
- lpop key :移出并获取列表的第一个元素
- rpop key 移除列表的最后一个元素,返回值为移除的元素
- blpop key1 [key2] timeout
移出并获取到列表的第一个元素,如果列表没有元素会阻塞列表知道等待超时或发现可弹出元素为止。 - ltrlm key start stop ;对一个列表进行修建(trim),就是说,让列表值保留指定区间内的元素,不在指定区间之内的元素丢将被删除。
修改
- lset key index value: 通过索引设置列表元素的值
- linsert key before|affter world value:在列表的元素前挥着后插入元素 描述:将值value插入到列表key当中,位于值world之前或之后
2.高级命令
- rpoplpush list1 list2 弹出list2的最后一个元素,加入到list2中第一个元素 ,rpoplpush list list 实现了列表循环,队列。
- bpoplpush list1 list2 timeout 从列表中左侧弹出一个值,如果该列表中没有值会阻塞列表知道等待超时或发现可弹出元素为止。
应用场景
项目常应用与:1.对数据量大的集合数据删减 2. 任务队列
- 对数据量大的集合数据删减
列表数据显示,关注列表,粉丝列表,留言评价等。。分页,热点新闻等。利用lrange还可以很方便的实现分页的功能在博客系统中,每片博文的评论也可以存入一个单独的list中
2.任务队列
list通常用来实现一个消息队列,而且可以确保先后顺序,不必像Mysql那样还需要通过ORDER BY 来进行排序