文章目录
- ?? 高速缓存技术
-
- ?? 高速缓存的实际应用项目①
- ?? 高速缓存的实际应用项目②
- ?? 高速缓存的实际应用项目③
- ?? Redis 简介
-
- ?? Redis 的性能
- ?? Redis 的安装
接下来的我们将学习新的知识,那就是高速缓存技术的 “Redis数据库”。“Redis数据库” 是一款 “高速缓存” 的数据库,在很多互联 产品中都能见得到,比如电商 站的秒杀活动就是缓存在 “Redis数据库” 中、还有各种 站的 “首页” 数据,也都是缓存在 “高速缓存” 里的。在此之前,我们都是利用数据库存储数据的,这些数据是保存在硬盘上的。而今天要学习的高速缓存技术的 “Redis数据库” 是用内存来保存数据,从而提高数据的读写速度,接下来就详细的了解一下吧。
?? 高速缓存技术
- “Redis数据库” 由 Vmware 公司开发 (你没看错,就是开发了虚拟机的那家公司)的一款基于 “高速缓存技术” 实现的NoSQL 数据库。
- 这里的 ,其实就是用内存存储数据的技术从而提高curd(增删改查)速度。
- 可能大家会有一个疑问:内存的容量要远远小于硬盘,能够保存多少数据;系统关机之后,内存的数据都会被清空,既然无法长久有效的保存,那么使用 “Redis数据库” 的意义又在哪里br>
1、在一个真实的业务场景中,数据的使用频率是不尽相同的。有数据被使用的频率很高,这部分的数据就叫做 “热数据”,比如一些 站首页的内容,由于使用的频率很高,所以这部分的数据也就是 “热数据” 。 2、比如说一些电商APP的首页商业的数据就是 “热数据” ,因为每天打开淘宝首页的用户高达千万以上,如果说首页的数据都是从硬盘里加载的,那速度将是一个慢。为了加快 APP首页 数据的加载速度,可以将这些热数据缓存到 “内存” 里面,内存的速度可是远远超过硬盘的。在顺序读取数据的情况下,内存的速度将是硬盘的 6-8 倍;如果是随机读取的情况下,内存的速度甚至超过硬盘的 十万 倍。如此比较下来,是不是吓一跳,这些事为什么 内存条 买的贵的原因之一。
3、所以再每年的双十一活动的时候,像天猫之类的电商APP都会讲爆款的商品提前缓存到内存里面,来增加当天的购物体验。所以只要不是 速的问题,打开淘宝、天猫的首页真的是很快的,这也归功于 “高速缓存技术” 。
4、并非是所有的数据都适合存储在缓存内,首先内存的高价格就决定了成本的高昂。所以,一般都是将使用率高的 “热数据” 缓存到内存里面,而经常使用的 “冷数据” 依然是存储在硬盘里面。
5、需要注意的是,在内存里缓存的数据也是从硬盘里加载过去的。并不是说只在内存里缓存了一份,硬盘里没有保存数据,因为内存只要一断电数据就会丢失,所以必须要在硬盘里存储备份才行。只要工作做到位了,高速缓存的优势就能够发挥出来,系统的读写性能就会有明显的提升。
- 高速缓存技术再应用架构上的设计:
- 在 “应用程序” 与 “数据库” 中间增加一个 “缓存层” 。
- “应用程序” 先到 “缓存层” 查找数据,如果找到了就不用到数据库里面再读取数据了。
- 如果说 “缓存层” 中没有想要的数据,说明请求的数据是 “冷数据” ,此时应用程序就会到 “数据库” 中去查找。
- 需要注意的是,如果被加载的数据库中的数据发生了变化,必须要及时的更新到缓存中才行。
?? 高速缓存的实际应用项目①
通过上文的介绍,大家也许能够稍微的理解了一些 “高速缓存技术” 的原理。但是在具体的实际应用层面上,可能还是有那么一层模糊。接下来就为大家讲解一下实际的 “高速缓存技术” 的案例,帮助大家理解一下再实际业务中的应用。
- 以渣浪的V博为例:
- 一些大V的粉丝数量非常的高,V博的主要功能之一就是让普通用户围观 “大V账 ” 发布的内容。
- 为了能够让 “大V账 ” 发布的内容在第一时间能够被成千上万的粉丝看到,会将其发布的内容缓存到 “高速缓存” 里面,也就是保存在内存里。如此,普通用户在看 V博 的时候就可以非常快速的刷出来这些 “大V账 ” 发布的内容了。
- 比如非常受欢迎的一些 “流量艺人”,当他们在发布一些动态内容的时候,就可以被很多的粉丝看到。
- 相比较 “大V账 ” ,“普通用户” 发布的内容就会被保存到普通的 NoSQL 数据库里面(比如MongoDB数据库)。因为是存储在硬盘上面,所以在加载 “普通用户” 所发布的内容时,就会非常的慢。
- 是不是觉得被区别对待有被冒犯到于为什么如此,你品…
?? 高速缓存的实际应用项目②
相较于 渣浪的V博 案例,接下来这个案例就更容易得理解了。
- 以电商 站、视频 站、门户 站等 站的首页内容为例:
- 一般情况下,像 电商 站、视频 站、门户 站等 站的首页 访问量都比较大;属于 “热数据” ,需要缓存。
- 此时,“Redis” 技术就派上用场了。如果想要提升首页的加载速度,不妨试试 “Redis” 技术。
- 尤其是在一些比较小型的 站或者项目中,使用 “Redis” 的 “高速缓存技术” 同样也是非常不错的选择。(前提是硬件设施支持的情况下。)
?? 高速缓存的实际应用项目③
同样的以 “电商平台” 的淘宝、天猫为例:
- 每年的淘宝、天猫 “双十一” 都能够创造全世界最大支付风池、最大的交易负载,所以说 淘宝、天猫 的案例都是非常值得借鉴和思考的,甚至当一些开源项目选择开源技术的时候也都比较倾向于选择阿里的开源产品。因为阿里的很多技术都是经历过 “双十一” 的苛刻考验,都是比较稳定的。
- “双十一” 当天的订单、支付吞吐量都是非常的巨大的,如果不针对系统进行优化,是绝对支撑不下来的。
- 面对如此巨大的 “瞬时数据写入” ,可以这样去处理。先缓存到 “高速缓存集群” ,然后利用定时器程序在交易的低谷期将内存中的订单逐一的写入到数据库。因为用户关心的是 “能不能再瞬间秒杀到想要的东西,能不能快速的下单支付,根本就不关心订单数据是保存在内存还是保存在硬盘中。”
- 所以说,有了 “高速缓存技术” 才使得 淘宝、天猫在 “双十一” 期间能够获得良好的购物体验。
?? Redis 简介
上文,我们已经提到过 “Redis数据库” 由美国 Vmware 公司开发 (你没看错,就是开发了虚拟机的那家公司)的一款基于 “高速缓存技术” 实现的NoSQL 数据库产品。 它是由 C语言 编写的,源代码开放,而且数据存储是基于 Key-Value 这种格式作为存储格式的。也就是我们学习 Python 数据格式中的 “字典” 格式,在前端领域也被叫做 “Json” 格式。
“Redis数据库” 即可以把数据保存到内存里,也可以将数据保存到硬盘中,可以在配置文件中去规定,非常的灵活。
?? Redis 的性能
- 因为是使用 “C语言” 编写的,所以执行效率非常的高。
- 又因为是单线程运行,省去了线程的调度和切换,所以读写的性能也得到了进一步的提升。
- “Redis” 的高性能一方面是凭借 内存 的高速读写来实现,另一方面也得益于 Key-Value 这种简单的数据格式结构,也省去了SQL语句那种词法分析和优化,大大的提升了数据的读写速度。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!