对不少互联网企业来说,使用LNMP架构可以快速搭建起一套系统,产品可以迅速迭代并尽早投放市场。但随着访问量的上升,那些使用传统关系型数据库(例如MySQL )的网站开始显现出性能方面的问题。此外,越来越挑剔的用户也要求网站不能仅专注于功能特性,同时也要追求极致的产品体验(即高性能和高可用)。
一方面,架构师会在数据库层面做以下一系列优化。
1.配置主从
例如。为MySQL服务器配置主从。一台宕机,另一台可以顶上继续服务,以满足高可用的要求。
2.读写分离
配置一主多从。 因为一般系统80%的请求都是读取操作,将这些操作分发到从服务器上可以有效地提升网站响应速度。
3.分库分表
随着数据量的增长,单库单表已经难以满足要求。- - 些诸如TDDL、Cobar、 MyCAT等的MySQL分布式数据库中间件应运而生。
另一方面, 架构师也会通过系统化的分析,以安插缓存层的方式缓解数据库的压力。对应用系统来说,缓存都应在设计之初就纳入考虑的范畴,成为系统不可或缺的一部分。我曾供职的一家公司就采用Redis作为缓存的实现方案。应用程序运行在两个同等的Tomeat容器里。Tomcat之前则配置了一台Nginx用于Load Balance。由于用户Session存储在Redis中(通过Spring和Shiro的简单配置即可实现),应用的无状态性使得系统可以很方便地进行水平扩缩。另外,我们的业务要求用户每次浏览某个项目页面时进行访问计数( counting )。为了避免频繁的数据库读写,我们将每个项目的浏览量的计算和读取交给了Redis。同时,为了避免意外导致的数据丢失,我们开启了Redis 的持久化功能,并启动定时任务,每隔一段时间就将项目浏览次数同步到数据库中。
小编在这里分享一份Redis进阶文档“深入理解Redis”
本书旨在从两方面为读者构建Redis的基础知识。一方面,本书提供了Redis及其技术背后的深层含义及理论;另一方面,拓展了Redis 日常实用技能。本书书名中的精通( Mastering)二字暗示了精通Redis是一个持续的过程, 而非最终目的地。激动人心的是Redis持续开放地演进成为了时下强大的数据操作和存储技术。
阅读本书时你会发现其贯穿着两大主题,以平行的方式展示了流行时尚的运营和过程的开发/运营二元论,即众所周知的DevOps。 为了有助于读者更有针对性地学习章节中包含的内容,每个章节的主题会被归类为软件开发或者系统运营。由于两者之间的边界越来越模糊,对每个趋势中主题的深刻理解能够增强你和你团队的能力,以便快速高效地为项目开发和部署Redis 解决方案,或者将Redis作为技术基础设施需求的一部分。(看文末获取文中对应文档)
第一章:为何选择Redis?
第二章:高级键管理与数据结构
第三章:内存管理的建议与技巧
第四章:Redis编程第一部分: Redis核心、客户端和编程语言
第五章:Redis编程第二部分: Lua脚本、 管理与DevOps
第六章:可伸缩性: Redis集群和Sentinel
第七章:Redis与互补的NoSQL技术
第八章:Docker容器与云端部署
第九章:任务管理与消息队列
第十章:信息流的测量与管理
领取方式
这份实用的redis学习资料怎么领取呢?
1.请在评论区评论+点赞+转发
2.点击关注,关注本头条号
3.进入头条号主页面,右上角有私信功能,私信小编:【学习】或【成长】即可
同时希望大家多多转发分享给更多的朋友哦!