您的位置:首页 > 数据库 > Redis

Redis 从数据库配置

2016-07-11 18:45 381 查看
通过持久化功能,Redis保证了即使在服务器重启的情况下也不会损失(或少量损失)数据。但是由于数据是存储在一台服务器上的,如果这台服务器的硬盘出现故障,也会导致数据丢失。为了避免单点故障,我们希望将数据库复制多个副本以部署在不同的服务器上,即使有一台服务器出现故障其他服务器依然可以继续提供服务。这就要求当一台服务器上的数据库更新后,可以自动将更新的数据同步到其他服务器上,Redis提供了复制(replication)功能可以自动实现同步的过程。

配置方法

通过配置文件 从数据库的配置文件中加入
slaveof master-ip master-port
,主数据库无需配置

通过命令行参数 启动redis-server的时候,使用命令行参数
--slaveof master-ip master-port


redis-server --port 6380 --slaveof 127.0.0.1 6379


通过命令
SLAVEOF master-ip master-port


redis>SLAVEOF 127.0.0.1 6379


SLAVEOF NO ONE
可以使当前数据库停止接收其他数据库的同步,转成主数据库

redis主从复制

redis主从复制的特点:

1.一个master可以拥有多个slave

2.多个slave可以连接同一个master外,还可以连接到其它slave

3.主从复制不会阻塞master,在同步数据时,master可以继续处理client的请求

4.提高系统的伸缩性

redis主从复制过程:

1.slave与master建立连接,发送sync同步命令

2.master会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令

并缓存。

3.后台完成保存后,就将此文件发送给slave

4.slave将此文件保存到硬盘上

配置主从服务器:

配置slave服务器很简单,只需要在slave的配置文件中加入以下配置:

slaveof 222.27.174.98 6379 //指定master的主机的IP和端口号

masterauth 888888 //主机数据库的密码

我们可以通过info命令来查看本机的redis是主服务器还是从服务器。

  通过 info Replication 查看role是master还是slave,及相关信息

优点及应用场景

读写分离 通过复制可以实现读写分离以提高服务器的负载能力。在常见的场景中,读的频率大于写,当单机的Redis无法应付大量的读请求时(尤其是较耗资源的请求,比如SORT命令等)可以通过复制功能建立多个从数据库,主数据库只进行写操作,而从数据库负责读操作。

从数据库持久化 持久化通常相对比较耗时,为了提高性能,可以通过复制功能建立一个(或若干个)从数据库,并在从数据库中启用持久化,同时在主数据库禁用持久化。当从数据库崩溃时重启后主数据库会自动将数据同步过来,所以无需担心数据丢失。而当主数据库崩溃时,需要在从数据库中使用SLAVEOF NO ONE命令将从数据库提升成主数据库继续服务,并在原来的主数据库启动后使用SLAVEOF命令将其设置成新的主数据库的从数据库,即可将数据同步回来。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: