redis搭建主从
条件:yum安装(3.2.1)与编译安装(5.0.0)都可以
环境:我这里在同一台主机上搭建,当然也可以两台。
1) 复制redis.conf的主配置文件并命令为slave.conf
2)配置slave.conf
bind 192.168.253.153(主节点ip一致)
slaveof 192.168.253.153 6379 (主节点的ip与端口)
port 6389 (自定义)
3)重启服务
redis-server 文件名(如果不在目录下,就需要带上目录)
4)测试
进入主从节点的redis数据库中,在主节点上添加等操作,如果从节点能够读出来,说明配置成功。
redis-cli -p 6379 -h 192.168.253.10
redis-cli -p 6389 -h 192.168.253.10 #配置的端口和ip
redis集群
环境:两台主机(一台3个主节点,一台三个从节点) 或者一台主机(3台主节点,3台从节点)
条件:编译安装,yum安装的如果时3.2版本或者更早之前很可能会行不通,报错:
Unrecognized option or bad number of args for: '--cluster' #此错误原因为参数错误或者缺少redis cluster
我这里选择一台主机配置集群:
1)创建一个conf目录
mkdir conf
2)创建6个.conf结尾的文件
touch {7000,7001,7002,7003,7004,7005}.conf
3)添加配置内容
port 7000 #绑定端口 bind 192.168.253.135 #绑定对外连接提供的ip daemonize yes #开启守护进程 pidfile 7000.pid #进程文件名 cluster-enabled yes #是否是集群 cluster-config-file 7000_node.conf #集群配置文件 cluster-node-timeout 15000 #集群连接超时时间 appendonly yes #数据持久化类型
不同配置文件之间只需更改:port ;pidfile ;cluster-config-file(如果是不同主机上配置,bind也需更改)
4)写一个执行脚本:
#!/bin/bash for i in `seq 0 5` do redis-server 700$i.conf done
bash a.sh来开启服务
ps -ef | grep redis 来查看是否开启服务
5)早版本需要安装ivm和ruby来做集群操作,现在我们只需要执行以下命令:
redis-cli --cluster create 192.168.253.153:7000 192.168.253.153:7001 192.168.253.153:7002 192.168.253.153:7003 192.168.253.153:7004 192.168.253.153:7005 --cluster-replicas 1
出现以下内容后yes确认接受。
6)测试
进入数据库:redis-cli -p7000 -c -h 192.168.253.153
每一次更改等操作会跳转节点,主节点如果宕机,会由其他两个节点从从节点中选一个来顶替。
拓展:2)、3)、4)步可以通过以下脚本来实现:
#!/bin/bash for i in `seq 7000 7005` do touch "$i".conf echo -e " port "$i" bind 192.168.253.153 daemonize yes pidfile "$i".pid cluster-enabled yes cluster-config-file "$i"_node.conf cluster-node-timeout 15000 appendonly yes" > "$i".conf redis-server "$i".conf done