对于有扩展平台以适应更高负载经验的工程师和管理员来说,复制(replication)是不可或缺的。复制可以让其他服务器拥有一个不断地更新的数据副本,从而使得拥有数据副本的服务器可以用于处理客户端发送的读请求,。关系数据库通常会使用一个主服务器(

master)向多个从服务器(slave)发送更新,并使用从服务器来处理所有读请求。Redis也采用了同样的方法来实现自己的复制特性,并将其用作扩展性能的一种手段。本节将对Redis的复制配置选项进行讨论,并说明Redis在进行复制的各个步骤。

尽管Redis的性能的非常优秀,但它也会遇上没办法快速的处理请求的情况,特别是在对集合和有序集合进行操作的时候,涉及的元素可能会有上万个甚至上百万个,在这种情况下,执行操作所花费的时间可能需要以秒来进行计算,而不是毫秒或者微妙。但即使一个命令值需要花费10毫秒就能完成,单个Redis实例1秒也只能处理100个命令。

sunionstore命令的性能:

作为对Redis性能的一个参考,在主频为2.4GHz的英特尔酷睿2处理器上,对两个分别包含10 000个元素的集合执行sunionstore命令并产生一个包含20 000个元素的结果集合,需要花费Redis七八毫秒的时间。

在需要扩展读请求的时候,或者在需要写入临时数据的时候,用户可以通过设置额外的Redis【从服务器】来保存数据集的副本。在接受到主服务器发送的数据初始副本(initial copy of data)之后,客户端每次向【主服务器】进行写入时,【从服务器】都会实时地得到更新。在部署好主从服务器之后,客户端就可以向任意一个服务器发送读请求了,而不必再像之前一样,总是把每个读请求都发送给主服务器(客户端通常会随机地选择使用哪个从服务器,从而将负载平均分配到各个从服务器上)。

接下来将介绍配置Redis主从服务器的方法,并说明Redis在整个复制过程中所做的各项操作。

results matching ""

    No results matching ""