这是我参与「第五届青训营 」伴学笔记创作活动的第14天,今天我重温了有关互联网大厂如何使用Redis的知识。我们为什么要使用Redis呢?因为数据从单表,演进出了分库分表的功能,而MySQL从单机演进出了集群,这导致了数据量增长和读写数据压力的不断增加。因此使用Redis可以使得数据分冷热两种,而热数据就是经常被访问到的数据。,然后将热数据存储到内存中。 然后我学习了有关Redis的基本工作原理,它的数据是从内存中读写的,数据保存到硬盘上可以有效防止重启数据丢失,将增量数据保存到AOF文件上,然后单线程处理所有操作命令。接下来我学习了有关Redis的应用案例,包括redis的世纪应用场景,以及redis的常用数据结构等等。具体的案例有连续签到、消息通知、计数、排行榜、限流和分布式锁。连续签到的定义是用户每日有一次的签到机会,如果断签,连续签到计数将归0;string数据结构:它的数据结构是sds,它可以存储字符串、数字、二进制数据等等,它通常和expire配合使用,应用场景是在存储计数和session上。 消息通知的使用场景是:当文章更新时,将更新后的文章推送到ES,用户就可以搜索到最新的文章数据。List数据结构Quicklist,Quicklist由一个双向链表和Listpack实现。计数的背景是当一个用户有多项计数需求时,可以通过hash结构存储。限流的定义是:要求1秒内放行的请求为N,超过N则禁止访问。分布式锁它的并发场景是:要求一次只能有一个协程执行,执行完成后,其它等待中的协程才能执行,可以使用redis的setnx来实现。今天我学到了不少知识,受益匪浅。