这是我参与「第五届青训营 」笔记创作活动的第13天
一、本堂课重点内容
今天的课程主题是《Redis - 大厂程序员是怎么用的》,在今天的学习中,我能学到在字节跳动内部redis的使用案例。课程共分为3个内容
1.Redis是什么
2.Redis的应用案例
3.Redis使用注意事项
具体介绍了它的基本工作原理,实际应用场景和经常使用的数据对象。
二、详细知识点介绍
因为数据量的不断增加,数据库从单表逐渐演化成分库分表,从单机演化成集群模式。由于数据量的增长,读写压力不断增加,MySql支撑不了,就想到将数据存储到内存而不是硬盘中,读取速度大大增加,Redis应运而生。
Redis数据从内存中读写,数据可以保持到硬盘上防止重启数据丢失。增量数据保持到AOF文件(类似日志),全量数据保存到RDB文件,(所有信息的文件)。并且单进程处理所有操作命令,这是Redis十分重要的特性。
三、实践练习例子
拿掘金上的连续签到为例,掘金每日用户有一次签到的机会,如果断签,连续签到计数将归零。而每天要在23:59:59之前签到。 用户每次签到,生成一个这样的数据结构
Key: cc_uid_116532405729
value: 22
expireAt: 后天的0点
再比如取得用户的被点赞数目,点赞数目通过redis存储,而不是每次都从数据库中count全部,这样就能大大减轻数据库的压力。一个用户有多项计数需求,可通过hash结构存储。
排行榜的积分变化时,排名要实时变更。结合dict后,可实现通过key操作跳表的功能。
四、课后个人总结
Redis作为缓存的存在,能够起到对Mysql等数据库的保护功能,面对数万的连接,他也能正常处理。如果这些请求直接打到数据库上,数据库肯定已经崩掉。这也就是Redis在如今被广泛运用的原因。一个系统,想要通过某些id来快速定位数据,Redis是非常有用的,能够快速地响应,提高系统运行效率。