平台: Mac

工具: Vagrant

系统: Centos6.5

实验目的: Redis主从

 

实现思路

制作一个基于sentos6.5, 已经安装好reids的box, 添加一个脚本配置从机, 然后作为后面主机从机的基础box

 

制作sentos6.5+redis的box

 

mkdir vagrant_redis

cd vagrant_redis

 

1.初始化vagrant

vagrant init sentos6.5

 

2.定义两台机器

vim Vagrantfile

 

打开公网

config.vm.network "public_network"

 

3.启动

vagrant up 

选择网络的时候选择1, 设置桥接的网卡

 

4.连接到主机

vagrant ssh

 

5. 主机安装redis

切换到root用户安装软件

sudo su -

 

先安装redis所需要的依赖包

yum -y install vim gcc-c++ tcl

 

下载redis

wget http://download.redis.io/redis-stable.tar.gz

解压

tar xvzf redis-stable.tar.gz

进入目录

cd redis-stable

make

在make成功以后,会在src目录下多出一些可执行文件:redis-server,redis-cli等等

为了方便使用, 将其复制到usr目录下

cp src/redis-server /usr/local/bin/

cp src/redis-cli /usr/local/bin/

 

然后新建目录,存放配置文件

 

mkdir /etc/redis

mkdir /var/redis

mkdir /var/redis/log

mkdir /var/redis/run

mkdir /var/redis/6379

 

在redis解压根目录中找到配置文件模板,复制到如下位置

cp redis.conf /etc/redis/6379.conf

 

通过vim命令修改

vim /etc/redis/6379.conf

daemonize yes

pidfile /var/redis/run/redis_6379.pid

logfile /var/redis/log/redis_6379.log

dir /var/redis/6379

 

最后运行redis

redis-server /etc/redis/6379.conf

 

写一个从机上面的一键配置脚本, 使用说明: sh config_redis_slave.sh 主机的ip地址 主机的端口

 

vim config_redis_slave.sh
```
#!/bin/bash

if [ ! $1 ];then
echo "Usage: sh config_redis_slave ip_addr port"
exit
fi

if [ ! $2 ];then
echo "Usage: sh config_redis_slave ip_addr port"
exit
fi

echo "slaveof $1 $2" >> /etc/redis/6379.conf
redis-server /etc/redis/6379.conf
```

打包
sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules //打包前的准备
exit
vagrant package --output sentos6.5redis.box
vagrant box add --name sentos6.5redis sentos6.5redis.box
vagrant box list

看到sentos6.5redis的box说明已经添加成功了, 基于这个box搭建redis主从集群
cd ../
mkdir redis_master_slave
cd redis_master_slave

1.初始化
vagrant init sentos6.5redis

2.定义一主三从, 从的数量可以根据需求来配置
vim Vagrantfile

添加一主一从, 配置网络为公网, 让局域网其他人也可以访问
config.vm.define "master" do |master|
master.vm.network "public_network"
master.vm.hostname = "master"
end
config.vm.define "slave1" do |slave1|
slave1.vm.network "public_network"
slave1.vm.hostname = "slave1"
end
config.vm.define "slave2" do |slave2|
slave2.vm.network "public_network"
slave2.vm.hostname = "slave2"
end
config.vm.define "slave3" do |slave3|
slave3.vm.network "public_network"
slave3.vm.hostname = "slave3"
end

3.全部启动
vagrant up
选择网络的时候选择1, 设置桥接的网卡

4.连接到主机
vagrant ssh master

5.启动redis服务, 并设置值并读取
sudo su -
redis-server /etc/redis/6379.conf
redis-cli
set name maxwelldu
get name
exit
ifconfig
192.168.31.128

6.添加一个标签, control+t 一个脚本配置从1
vagrant ssh slave1
sudo su -

redis-server /etc/redis/6379.conf 192.168.31.194 6379
redis-cli
get name

后面所有的从机都像第6步一样操作即可

相关命令和网址:
关闭redis-server
pkill redis-server
官网地址
​​http://redis.io/​​
​​http://redis.cn/​​