Redis 基础详解

码农日常1个月前更新 Trunks
573 0 0

3、List 列表类型

  • 数据存储需求:存储多个数据,并对数据进入存储空间的顺序进行区分
  • 需要的存储数据:一个存储空间保存多个数据,且通过数据可以体现进入顺序
  • List 类型:保存多个数据,底层使用双向链表存储结构实现
  • LinkedList 有序,可重复

Redis 基础详解

List 常用操作

// List常用操作
// 1、将一个或多个值value插入到key列表的表头(最左边)
LPUSH key value [value ...]
// 2、将一个或多个值value插入到key列表的表尾(最右边)
RPUSH key value [value ...]
// 3、移除并返回key列表的头元素(删除并展示该元素)
LPOP key
// 4、移除并返回key列表的尾元素
RPOP key
// 5、返回列表key中指定区间内的元素,区间以偏移量start和stop指定 
LRANGE key start stop
// 6、从key列表表头弹出一个元素,若列表中没有元素,阻塞等待timeout秒,如果timeout=0,一直阻塞等待
BLPOP key [key ...] timeout
// 7、从key列表表尾弹出一个元素,若列表中没有元素,阻塞等待timeout秒,如果timeout=0,一直阻塞等待
BRPOP key [key ...] timeout
// 8、查看有多少元素
llen key

其他操作

Redis
常用数据结构
Stack(栈)= LPUSH + LPOP
Queue(队列)= LPUSH + RPOP
Blocking MQ(阻塞队列)= LPUSH + BRPOP

适用场景

场景 1、可以实现朋友圈点赞 ( 列表来实现队列操作,用 rpush 将依次点赞的人加入进去就可以了 )

场景 2、可以实现展示最近关注的列表( lpush,栈 )

  • 微信公众号订阅的消息( 关注 )
  • 比如我( 张三 )关注的人发布的文章,就推到我的 List 里面, lpush article:张三 id 文章 id
  • 比如要查看我订阅的全部文章,显示 10 条,lrange article:张三 id 0 9
Redis
# 比如我的用户是张三,我关注了李四,李四发表文章的时候,张三是能看见的
# 李四就维护了所有的关注了他的这些list
# 张三关注了李四,在李四这边就有张三list,key为article:zs
# 王五关注了李四,在李四这边就有王五list,key为article:ww
# 比如李四发表了文件,就往关注了他的这些list里面推数据
lpush article:zs 001
lpush article:ww 001

© 版权声明

相关文章

暂无评论

暂无评论...