redis多机功能导论(redis多机功能篇)

Redis 多机功能导论

从单台 Redis 服务器过渡至多台 Redis 服务器

问题

到目前为止,本课程介绍的所有内容都是以单机 Redis 为背景的,也即是,我们考虑的事情只和一台Redis 服务器有关。但是在生产环境中实际地使用 Redis 的时候,只使用一台 Redis 服务器一般来说是没办法满足我们的需求的,限制主要来自于两个方面:

  1. 内存容量不足:Redis 使用内存来储存数据库中的数据,但是对于一台机器来说,硬件的内存容量是有限的,当我们需要储存的数据量超过机器的内存容量时,一台服务器就没办法满足我们的要求了。

例子:要储存 128 GB 数据,但机器最大只支持 64 GB 内存;要储存 1 TB 数据,但机器最大只支持 128 GB 内存;诸如此类。

  1. 处理能力不足:和内存数量限制类似,因为服务器硬件的限制(包括机器配置和网 络资源等),一台服务器能够处理的命令请求数量也是有限的,当我 们需要处理的命令请求数量超过机器能够处理的命令请求数量时,一台服务器就没办法满足我们的要求了。

例子:每秒钟要处理 20 万次请求,但机器每秒钟只能处理 10 万次请求;每秒钟要处理 100 万次请求,但机器每秒钟只能处理 30 万次或者 50 万次请求;诸如此类。

解决方法

为了解决前面提到的内存容量不足和 处理能力不足的问题,我们需要使用 Redis 的多机功能,这些功能的核心目的是将整个数据 库分散部署到多台服务器上面,并使用多台服 务器来处理命令请求。
在这里插入图片描述
将系统从一台服务器扩展至三台服务器,系统储存的数据量和处理的命令请求数量都会有所提高。

具体实现

Redis 提供的多机功能包括:

  • 复制(replication),扩展系统处理读请求的能力;
  • Sentinel(哨兵),为系统提供高可用特性,减少故障停机出 现;
  • 集群(cluster),扩展系统的数据库容量以及系统处理读写请求的能力,并提供高可用特性;

另外 Twitter 也开源了一个名为 twemproxy(也称 nutcracker)的代理服务器,它支持 Redis 和Memcached 协议,可以扩展系统的数据库容量以及系统处理读写请求的能力。

发布了252 篇原创文章 · 获赞 151 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_39885372/article/details/104282328