redis和mongodb的Malster-Slave配置

这两天闲来无事,看了看redis,mongodb,并做了一些主从配置的实验,以后慢慢深入学习。

1.redis的主从配置

一台Redis服务器,分成多个节点,每个节点分配一个端口(6380,6381…),默认端口是6379。每个节点对应一个Redis配置文件,如: redis6380.conf、redis6381.conf

$cp redis.conf  redis6380.conf
$vi redis6380.conf
pidfile : pidfile/var/run/redis/redis_6380.pid
port 6380
logfile : logfile/var/log/redis/redis_6380.log
rdbfile : dbfilenamedump_6380.rdb

启动多个redis实例:

$redis-server  /usr/local/redis/redis6380.conf
$redis-server  /usr/local/redis/redis6381.conf
Replication的工作原理:
    在Slave启动并连接到Master之后,它将主动发送一个SYNC命令。此后Master将启动后台存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台进程执行完毕后,Master将传送整个数据库文件到Slave,以完成一次完全同步。而Slave服务器在接收到数据库文件数据之后将其存盘并加载到内存中。此后,Master继续将所有已经收集到的修改命令,和新的修改命令依次传送给Slaves,Slave将在本次执行这些数据修改命令,从而达到最终的数据同步。
    如果Master和Slave之间的链接出现断连现象,Slave可以自动重连Master,但是在连接成功之后,一次完全同步将被自动执行。摘抄下图:


配置Replication步骤如下:
    1). 同时启动两个Redis服务器,可以考虑在同一台机器上启动两个Redis服务器,分别监听不同的端口,如6379和6380。
    2). 在Slave服务器上执行一下命令:

  /> redis-cli -p 6380   #这里我们假设Slave的端口号是6380
    redis 127.0.0.1:6380> slaveof 127.0.0.1 6379 #假设Master和Slave在同一台主机,Master的端口为6379
    OK
 上面的方式只是保证了在执行slaveof命令之后,redis_6380成为了redis_6379的slave,一旦服务(redis_6380)重新启动之后,他们之间的复制关系将终止。如果希望长期保证这两个服务器之间的Replication关系,可以在redis_6380的配置文件中做如下修改:
    /> cd /etc/redis  #切换Redis服务器配置文件所在的目录。
    /> vi redis6380.conf
    将 # slaveof <masterip> <masterport>
    改为  slaveof 127.0.0.1 6379
    保存退出, 这样就可以保证Redis_6380服务程序在每次启动后都会主动建立与Redis_6379的Replication连接了。
 2.mongodb的主从配置

有两台centos机器分别为D139-PanelManager1和D139-PanelManager2,1是Master,2是Slave。两台机器的配置文件/etc/mongod.conf如下:

 D139-PanelManager1:~>sudo cat /etc/mongod.conf |awk '{if($0 !~ /^$/ && $0 !~ /^#/) {print $0}}'                                                                                                                                      logpath=/var/log/mongo/mongod.log
logappend=true
fork = true
dbpath=/home/data/mongodb
pidfilepath = /var/run/mongodb/mongod.pid
nojournal = true
master = true
D139-PanelManager2:/tmp>cat /etc/mongod.conf |awk '{if($0 !~ /^$/ && $0 !~ /^#/) {print $0}}' 
logpath=/var/log/mongo/mongod.log
logappend=true
fork = true
dbpath=/home/data/mongodb
pidfilepath = /var/run/mongodb/mongod.pid
 nojournal = true
slave = true
source = 123.103.21.115:9999
原始配置里有一个only,是可以用来有选择性同步数据,only=test,表示只同步test数据库.

注意:要开启相应的端口,mongodb要开27017端口

 ReplcaSet的配置以后在实验。。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值