Redis中的list跟java中的LinkedList比较相似,可以看做是一个双向链表的结构。
既可以支持正向检索和反向检索。
特点
1.有序
2.元素可以重复
3.插入和删除快
4.查询速度一般
应用场景
点赞和评论功能,都会存在一个顺序,谁先评论,谁后评论。所以点赞和评论数据都可以用一个list去存储。
常用方法
lpush key 元素1 元素2... 向list的左侧推入一个或多个元素
元素顺序是倒序的
rpush key 元素1 元素2... 向list的右侧推入一个或多个元素
元素顺序是正序的
lpop key 取出元素的个数 从list的左侧取出元素,并从list中移除
rpop key 取出元素的个数 从list的右侧取出元素,并从过list中移除
lrange key start end 获取list中索引下标范围内的元素
blpop 和 brpop key timeout 是一种阻塞式的获取元素,如果list中没有元素就会等待timeout秒时间
如果用list模拟一个栈?
栈的特点是先进后出,入口和出口在一边,所以使用lpush和lpop, 或者使用rpush和rpop。
如果用list模拟一个队列?
队列的特点是先进先出,入口和出口不在一边,所以使用lpush和rpop, 或者使用rpush和lpop。
如果利用list模拟一个阻塞队列?
队列的特点是先进先出,入口和出口不在一边,所以使用阻塞方法lpush和prpop,或者使用rpush和plpop。