mb个人网站软文广告平台
第一次知道Redis是以前准备面试的时候,只知道是用来缓存数据的。随着这几年的工作,对软件的认识从盲人摸象到睁眼看世界。
在常用的软件架构评价模型中,性能、可用性、安全性和可维护性是常见的评价属性,客户总希望系统响应又快有不易崩溃,那这又和Redis由有什么关系?
在常见的C/S(Client/Server)架构或B/S(Browser/Server)的架构模型中,当请求达到服务端应用实例后,应用实例进行内部逻辑处理,再通过数据持久层将SQL请求转发至数据库层面,最后返回响应报文。
当请求方发起的流量是亿级,比如微博上的热搜排行榜,每个用户登录后都可以看到排行榜,并且用户会频繁刷新页面请求最新的热搜排行榜。如果每次是数据库直接查询到排行榜信息,亿级的请求并发就直接传递到数据库层面,用户微小的操作极大的增加了数据库的负载。为了解决这类问题,聪明的程序员们想到将一些数据缓存到独立的服务器,每次查询优先请求独立服务器,于是就产生了Redis。
根据官方定义,Redis(Remote Dictionary Server)是一个使用ANSI C编写的支持网络、基于内存、分布式、可选持久性的键值对存储数据库。
作为一个远程服务器,Redis可以独立部署在一台服务器上,将应用实例和Redis实例物理隔离,保证两者互不干扰,独立对外提供服务。
在常见的开发规范中,常量通常设置为静态类,以保证数据唯一性和在程序内部的共享。Redis的远程部署便是静态类的升级版本,它类似一个独立的中央数据仓库,当一个服务更新了执行数据,另一个服务能快速获取到最新数据,方便数据在多个服务中共享。
在关系型数据库中,数据是存储在磁盘(硬盘)上。每次需要从硬盘上读写数据文件。在计算的存储体体系中,存储速度快的设备通常用于需要快速读写的场景,而速度相对较慢的设备则通常用于大容量数据存储。内存容量小,但读写速度快,磁盘容量大,但读写速度慢。Redis设计初衷是提高数据读写性能,采用内存存储数据,使得Redis能够在高并发和低延迟场景下表现出色,适用于各种需要快速响应的应用场景。
随着数据量的增长,单个 Redis 实例可能无法满足存储需求和性能要求。分布式 Redis 允许将数据分布在多个节点上,从而提升系统的存储容量和处理能力。即使某个节点出现故障,系统仍然可以正常运行。通过分布式机制,Redis 可以将读写请求分散到多个节点上,避免单节点的性能瓶颈。
总的来说,Redis通过内存存储、分布式架构、高性能和高可用性解决了在大规模数据处理和高并发请求中的许多问题。它不仅提高了系统响应速度,还减轻了后端数据库的负担,使得应用系统能够更加高效和稳定地运行,成为了现代软件架构中常用的解决方案。