当前位置:网站首页>Redis入门完整教程:Redis使用场景

Redis入门完整教程:Redis使用场景

2022-07-04 22:29:00 谷哥学术

1.3.1 Redis可以做什么
1.缓存
缓存机制几乎在所有的大型网站都有使用,合理地使用缓存不仅可以加
快数据的访问速度,而且能够有效地降低后端数据源的压力。Redis提供了
键值过期时间设置,并且也提供了灵活控制最大内存和内存溢出后的淘汰策
略。可以这么说,一个合理的缓存设计能够为一个网站的稳定保驾护航。第
11章将对缓存的设计与使用进行详细说明。
2.排行榜系统
排行榜系统几乎存在于所有的网站,例如按照热度排名的排行榜,按照
发布时间的排行榜,按照各种复杂维度计算出的排行榜,Redis提供了列表
和有序集合数据结构,合理地使用这些数据结构可以很方便地构建各种排行
榜系统。
3.计数器应用
计数器在网站中的作用至关重要,例如视频网站有播放数、电商网站有
浏览数,为了保证数据的实时性,每一次播放和浏览都要做加1的操作,如
果并发量很大对于传统关系型数据的性能是一种挑战。Redis天然支持计数
功能而且计数的性能也非常好,可以说是计数器系统的重要选择。
4.社交网络
赞/踩、粉丝、共同好友/喜好、推送、下拉刷新等是社交网站的必备功能,由于社交网站访问量通常比较大,而且传统的关系型数据不太适合保存
这种类型的数据,Redis提供的数据结构可以相对比较容易地实现这些功
能。
5.消息队列系统
消息队列系统可以说是一个大型网站的必备基础组件,因为其具有业务
解耦、非实时业务削峰等特性。Redis提供了发布订阅功能和阻塞队列的功
能,虽然和专业的消息队列比还不够足够强大,但是对于一般的消息队列功
能基本可以满足。

1.3.2 Redis不可以做什么
实际上和任何一门技术一样,每个技术都有自己的应用场景和边界,也
就是说Redis并不是万金油,有很多适合它解决的问题,但是也有很多不合
适它解决的问题。我们可以站在数据规模和数据冷热的角度来进行分析。
站在数据规模的角度看,数据可以分为大规模数据和小规模数据,我们
知道Redis的数据是存放在内存中的,虽然现在内存已经足够便宜,但是如
果数据量非常大,例如每天有几亿的用户行为数据,使用Redis来存储的
话,基本上是个无底洞,经济成本相当的高。
站在数据冷热的角度看,数据分为热数据和冷数据,热数据通常是指需
要频繁操作的数据,反之为冷数据,例如对于视频网站来说,视频基本信息
基本上在各个业务线都是经常要操作的数据,而用户的观看记录不一定是经
常需要访问的数据,这里暂且不讨论两者数据规模的差异,单纯站在数据冷
热的角度上看,视频信息属于热数据,用户观看记录属于冷数据。如果将这
些冷数据放在Redis中,基本上是对于内存的一种浪费,但是对于一些热数
据可以放在Redis中加速读写,也可以减轻后端存储的负载,可以说是事半
功倍。
所以,Redis并不是万金油,相信随着我们对Redis的逐步学习,能够清
楚Redis真正的使用场景。

1.4 用好Redis的建议
1.切勿当作黑盒使用,开发与运维同样重要
很多使用Redis的开发者认为只要会用API开发相应的功能就可以,更有
甚者认为Redis就是get、set、del,不需要知道Redis的原理。但是在我们实
际运维和使用Redis的过程中发现,很多线上的故障和问题都是由于完全把
Redis当做黑盒造成的,如果不了解Redis的单线程模型,有些开发者会在有
上千万个键的Redis上执行keys*操作,如果不了解持久化的相关原理,会在
一个写操作量很大的Redis上配置自动保存RDB。而且在很多公司内只有专
职的关系型数据库DBA,并没有NoSQL的相关运维人员,也就是说开发者
很有可能会自己运维Redis,对于Redis的开发者来说既是好事又是坏事。站
在好的方面看,开发人员可以通过运维Redis真正了解Redis的一些原理,不
单纯停留在开发上。站在坏的方面看,Redis的开发人员不仅要支持开发,
还要承担运维的责任,而且由于运维经验不足可能会造成线上故障。但是从
实际经验来看,运维足够规模的Redis会对用好Redis更加有帮助。
2.阅读源码
我们在前面提到过,Redis是开源项目,由于作者对Redis代码的极致追
求,Redis的代码量相对于许多NoSQL数据库来说是非常小的,也就意味着
作为普通的开发和运维人员也是可以“吃透”Redis的。通过阅读优秀的源
码,不仅能够加深我们对于Redis的理解,而且还能提高自身的编码水平,
甚至可以对Redis做定制化,也就是说可以修改Redis的源码来满足自身的需
求,例如新浪微博在Redis的早期版本上做了很多的定制化来满足自身的需求,豌豆荚也开源基于Proxy的Redis分布式实现Codis。

原网站

版权声明
本文为[谷哥学术]所创,转载请带上原文链接,感谢
https://blog.csdn.net/tysonchiu/article/details/125587680