黑马程序员Redis入门到实战教程,深度透析redis底层原理+redis分布式锁+企业解决方案+黑马点评实战项目
总时长 42:48:00 共175P
此文章包含第78p-第p87的内容 包含实战篇01-10的内容
文章目录
达人探店功能
需求




这个表没有用户名称和图标 我们在对象类里加一下


原始写法



点赞功能

sql写法

这种写法没有判断点赞的是不是同一人

完善


给blog对象类里加一个是否点赞属性

这里后期会对数据库操作使用mq进行异步处理(这样性能会变好)

用sismember命令进行判断 是否存在在这个set集合里

BooleanUtil.isFalse()代表值 是false





点赞排行榜




使用SortedSet进行排序

通过查找元素分数进行判断是否存在

跟据ZRANGE 命令进行查找前几的数据

改造代码为ZSet




防止空指针


用户未登录的状态判断一下

按自定义的id顺序进行排序

修改sql语句

改为

好友关注-关注和取关






好友关注-共同关注
使用redis的set数据结构进行交集查询


将关注用户加入redis


造两个关注数据



好友关注-关注推送

Feed流

Timeline 多用于朋友圈

智能排序 多用于首页推荐等

关注的人推送的消息我们使用Timeline


使用Timeline得到关注的人推送的消息
拉模式
每个人发送内容的时候都把其加上时间戳并且放到一个发件箱里, 粉丝读取的时候 从这些人的发件箱里拉取信息

然后按照时间排序

优点节省内存空间,缺点每次都需要重新拉取消息,然后做排序(耗时较久)
推模式

优点:延时很低,缺点:内存占用极大,而且如果粉丝上百万,每次发送都需要发出百万份信息,
推拉模式(读写混合模式)

这种模式就是 普通用户(粉丝少的)就使用推模式,大v(千万以上的粉丝)就使用拉模式,并且跟他互动多的活跃用户或者他的朋友就使用推模式

如果没有千万粉丝以上的都可以使用推模式

这里我们使用推模式

如果使用传统的分页模式 会产生分页混乱

滚动分页 记住上次查到的最后一个值 从他开始查


代码

推送成功



如果分数会重复的话,会出现这种情况




取值代码




624

被折叠的 条评论
为什么被折叠?



