开发者学堂课程【Redis 入门到精通(基础篇):数据类型-list 扩展操作删除数据】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/764/detail/13382
数据类型-list 扩展操作删除数据
List类型数据扩展操作
业务场景
微信朋友圈点赞,要求按照点赞顺序显示点赞好友信息
如果取消点赞,移除对应好友信息
日常生活中的各类朋友圈,我们现在制作朋友圈点赞的功能,做一个朋友圈的列表,如图朋友圈的点赞已经形成了,那么朋友圈的点赞有没有顺序,比方说老板发的朋友圈,点赞是有顺序的,这个顺序对应的数据是多个数据,
那么就使用list,可以描述顺序,也可也描述多个,这个模型就很容易被关联到,
分析一下,发的朋友圈定义为key,编号是多少暂不考虑,点赞地方,对应的列表就是value,这是一个list,点赞这个操作就是rpush,显示的可能是姓名,也可能是id,从右边进,还有就是取消点赞,然后就是取消点赞,后面的自动补齐,占据了位置,对于我们的列表就是需要从中间拿掉一个元素。
解决方案
移除指定数据
lrem key count value
lrem就是remove,删除一个数据,然后接下来构建一个朋友圈,rpush 001 a b c d e,这就是点赞顺序,一共五个,接下来看就是lrange 001 0 -1,然后就得到了点赞顺序,现在要把d去掉,怎么去掉呢,因为不在两头,不能用lpop或者rpop,所以使用lrem 001 1 d,然后回车就操作成功,
接下来检查一下,lrnage 001 0 -1,得到新的数据排列,我们就发现d去掉了,我们的双端队列,不仅仅是去掉两边,中间也是可以动的,对应的删除里面的0是指删多少个,我们可以加点东西,比方说rpush 001 a b a b c d a c e,然后得到了数据,删去a,lrem 001 3 a,回车然后得到的数据,a就删掉了,l是left,从左面删掉的。
刚刚的操作就是列表的存多元元素加一个顺序做的一个控制,至于指令lrem并不重要,反而不是一个常用操作,只是应用这个场景。
Tip6:
Redis 应用于具有操作先后顺序的数据控制
这个模型主要应用于数据控制,主要从事于队列,任务队列,数据队列,消息队列,都可以用他来模拟。