关注
分享
优质好课
Go 语言实现分布式缓存 实战课
Go 入门实战
252 人学过 59 次评价 难度: 中级 综合评分: 9.1 2020-09-14 更新
¥ 79
完成学生认证,立享5折优惠 >>
课程介绍
章节目录
课程问答&报告
课程评价 59
你将学到的
缓存实现热身
缓存淘汰和过期机制
持久化功能简单实现
缓存性能测试
锁粒度细化
自定义网络通信协议
异步技术引入
分布式技术引入
缓存服务集群化
客户端集群化
详细介绍

假设这样一个问题:一个程序有 1TB 的数据都存在硬盘上,但其中只有 1GB 的数据会被频繁地读取,假设硬盘的读取速度是 100MB/s,那么每一次读取都会消耗 10 秒,有没有什么办法可以提高读取的速度?

很明显,这个问题是由于硬盘的速度太慢了,导致读取时间太久,而且只是其中 1GB 数据会被频繁地读取,那我们能不能把这 1GB 的数据存到一个速度更快的地方,比如存到内存中,假设内存速度是 10GB/s,那么每一次读取这 1GB 的数据就只需要 0.1 秒。可能有人会说,那为什么不把全部数据都存到内存中呢?当然可以,只要你有足够大的内存,但是内存的价格要比硬盘高不少,整个程序的花费就会非常大,而且其他数据存进内存的意义不大。

如果要给这里的“内存”起一个名字,就可以叫它“缓存”了。我们不用去纠结缓存的概念是什么,更重要的是它解决了什么问题。

还是从上面的问题入手,我们可以提取出两个关键点:频繁,速度。

这两个关键点意味着缓存中的数据往往是会被反复读取的,因为经常要读取,所以要提高读取的速度。另外,由于数据本身是存在硬盘上的,所以不管缓存中有没有这些数据,程序都应该是正常运行的,当缓存中没有数据的时候,需要去硬盘中读取。如果程序修改了硬盘上的数据,缓存中的数据就没有用了,属于过时的数据,所以还需要去更新缓存。

所以,我们可以总结出缓存的特点:

  • 速度很快(这个快是相对于被缓存的设备来说的)
  • 数据可以丢失(甚至需要定期丢失)
  • 容量有限(因为价格比较高)

本课程聚焦 Go 语言实现分布式缓存,我们会使用 Go 语言的内置库完成一个单机版的缓存服务,后面会基于这个单机版的缓存服务来升级改造,逐步迭代成为一个分布式的缓存服务。

图片描述

先学课程

课程信息

  • 学习周期:课程有效期 2 个月,2 个月后无法进行在线实验,但可查看文档内容。高级会员有效期内可一直学习,到期后课程失效,且无法查看文档。部分云主机实验环境因成本较高,存在开启次数限制。关于课程退款等相关注意事项说明,请阅读 用户付费协议
  • 版权说明:课程内容为蓝桥云课原创或蓝桥云课在原作者授权下制作。未经书面同意,擅自爬取、转载和再分发课程内容,均将受到严肃追责。
  • 企业团报:企业购买,请点击 企业用户咨询
课程教师
会员 学习助手
遇到问题就来问 AI小助手吧
开通会员,即刻开始学习
加入社群
加入编程交流社群