redis主从复制和集群配置文件

一台机器的redis 放在 /opt/redis_cluster

快速把新机器装redis

(首先这里面用的db01,db02表示的redis数据库,应该到相应的机子上修改/etc/hosts文件。比如第一台机子,就该加上本机IP db01,第二台机子ip db02。如果不用db01,db02,就用ip表示数据库,就不用配置)

1.首先打包,然后copy过去就行了

2.tar zcvf 自定义名字(比如db1).tar.gz  /opt/redis_cluster     这条命令执行后就打包了

3.然后 copy到另外一台机器   命令   scp db1.tar.gz db2:/opt/    复制到另外一台机器的opt目录下

4. 弹出yes/on  选yes

5.到新的机器,解压文件   tar zxf db01.tar.gz

6.进入 redis   执行 make install命令

7.然后创建数据目录,mkdir /data/redis_cluster/redis_6379/ -p  (你conf写的哪个位置就创建在哪)

8.vim /opt/redis_cluster/redis_6379/conf/redis_6379.conf  (你的conf写的哪个位置就改哪)

### 以守护线程模式启动
daemonize yes

###  绑定的主机地址
bind 本机的ip

### 监听端口
port 6379

### pid文件和log文件的保存地址
pidfile /opt/redis_cluster/redis_6379/pid/redis_6379.pid
logfile /opt/redis_cluster/redis_6379/log/redis_6379.log

###指定本地持久化文件的文件名,默认是dump.rdb
save 900 1
save 300 10
save 60 10000
dbfilename redis_6379.rdb

### 本地数据库的目录
dir /data/redis_cluster/redis_6379

把本机地址改成新机子的地址就行了

9.启动  ./redis-server /opt/redis_cluster/redis_6379/conf/redis_6379.conf    然后进入  ./redis-cli -h db02

10.这时第一台机器set值,然后第二台也会有同样的数据了,同步,进入第二台机器的redis,就是./redis-cli -h db02后,输入SLAVEOF db01(或者第一台机子的Ip地址,如果你第一台机子没映射数据库名字,就用IP) 6379   然后返回ok

11.这时第二台如果还是没有数据,ping db01 ping不通,就是/etc/hosts文件里面的路由没有配置,在里面增加 第一台机子的ip db01就行了。如果没用改hosts里面的映射名字,就是用的Ip,那就不会有这个问题

 

原理就是   1 从库发起同步请求 

                  2主库收到请求后执行bgsave保存当前内存里的数据到磁盘

                  3 主库将持久化的数据发送给从库的数据目录   

                  4 从库收到主库的持久化数据之后,先清空自己当前内存中的所有数据   

                  5 从库将主库发送过来的持久化文件加载到自己的内存里 

 

集群中的配置文件内容如下

bind 本机IP
port 6380
daemonize yes
pidfile "/opt/redis_cluster/redis_6380/pid/redis_6380.pid"
logfile "/opt/redis_cluster/redis_6380/logs/redis_6380.log"
dbfilename "redis_6380.rdb"
dir "/data/redis_cluster/redis_6380/"

###集群配置
cluster-enabled yes
cluster-config-file nodes_6380.conf
cluster-node-timeout 15000

1.首先创建文件   

###创建conf,logs,pid文件

mkdir -p /opt/redis_cluster/redis_{6380,6381}/{conf,logs,pid}

创建日志文件,你conf里面写的dir路径要和这个一样

mkdir -p /data/redis_cluster/redis_{6380,6381}

2.然后创建配置文件,先创建6380的

3.第一台机器上 创建好了第一个配置,然后复制到本机6381上去 

cd/opt/redis_cluster             

cp redis_6380/conf/redis_6380.conf redis_6381/conf/redis_6381.conf

4.把之前conf文件中的6380改成6381

sed -i 's#6380#6381#g' redis_6381/conf/redis_6381.conf

5.把两个文件传到另外2台服务器上(如果没用hosts映射名字,db2,db3就是机子的ip)

rsync -avz /opt/redis_cluster/redis_638* db2:/opt/redis_cluster/

rsync -avz /opt/redis_cluster/redis_638* db3:/opt/redis_cluster/

6.启动第一台机子的两个redis

 ./redis-server /opt/redis_cluster/redis_6380/conf/redis_6380.conf

 ./redis-server /opt/redis_cluster/redis_6381/conf/redis_6381.conf

7. 命令的意思就是把传过来的两个conf里面的bind 后的ID改成DB2自己的IP地址,这里DB1是10.0.0.51,DB2是10.0.0.52

    不会这命令就直接vim编辑更改

DB2的操作    find /opt/redis_cluster/redis_638* -type f -name "*.conf|xargs sed -i "/bind/s#51#52#g"

8.mkdir -p /data/redis-cluster/redis_{6380,6381}

9.启动两个redis,和第6部一样

10.DB3和DB2一样操作

 

然后用RUBY启动

 

下载链接:https://pan.baidu.com/s/1kWsf3Rh 密码:n3pc

从这个链接下载  ruby-2.3.1.tar.gz   和   

  tar -zxvf ruby-2.3.1.tar.gz

  a,  cd ruby-2.3.1

  b,  ./configure -prefix=/usr/local/ruby

  c,  make && make install   //过程会有点慢,大概5-10分钟

  d,  然后gem install -l redis-3.3.0.gem  //若没有gem需要安装yum install gem -y

最后 ./redis-trib.rb create --replicas 1 db1:6380 db1:6381 db2:6380 db2:6381 db3:6380 db3:6381

启动  ./redis-cli -h db1 -p 6380 -c

 

如果 Linux重启后,redis启动不了,就要删掉aof,pid,dgb文件

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值