这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天
应用
1 缓存
合理的利用缓存,比如缓存热点数据,不仅可以提升网站的访问速度,还可以降低数据库DB的压力。通过多级缓存,可以绕过DB的IO瓶颈,提高系统的响应能力
2 排行榜
在高并发的互联网环境中,有各种各样的排行榜,如电商销量排行榜、直播礼物排行榜等。
而Redis提供的zset数据类型能够实现这些复杂的排行榜。
因为相比于set,sorted set,zset 增加了一个权重参数 score,使得集合中的元素能够按 score 进行有序排列,还可以通过 score 的范围来获取元素的列表
3 计数器
互联网中有很多计数器应用,如视频的播放数、电商网站的浏览数。这些计数在高并发环境下实时变化,对于传统关系型数据的性能是一种挑战。Redis天然支持计数功能而且计数的性能也非常好,比如说incr, incrby等
4 共享Session
如果一个分布式Web服务将用户的Session信息保存在各自服务器,用户刷新一次可能就需要重新登录了,这样显然有问题。实际上,可以使用Redis将用户的Session进行集中管理,每次用户更新或者查询登录信息都直接从Redis中集中获取。
5 分布式锁
几乎每个互联网公司中都使用了分布式部署,在并发量高的场合中,利用数据库锁来控制资源的并发访问,会影响数据库的性能,效率也不高,但可以用Redis的setnx来实现分布式的锁。
6 社交网络
赞/踩、粉丝、共同好友/喜好、推送、下拉刷新等是社交网站的必备功能,由于社交网站访问量通常比较大,而且传统的关系型数据不太适保存这种类型的数据,Redis提供的数据结构可以相对比较容易地实现这些功能