redis主从配置+sentinel哨兵
1:编译环境准备
1.1环境确认
Redis是一个开源、支持网络、基于内存、键值对存储数据库,使用ANSI C编写。所以在搭建Redis服务器时需要C语言的编译环境gcc或g++。
首先确认系统中是否存在C语言的编译环境,终端运行如下命令:
#gcc –version
或
#g++ --version
如果没有,就需要在系统中安装gcc、g++。
1:如果连接了网络就直接打命令安装,命令如下:
yum install gcc-c++
2:不能连网就按如下方法安装:
将安装所需的rpm包拷贝到目标机器上,然后按照以下顺序安装:
(1) 安装gcc,软件安装顺序不能错
# rpm -ivh glibc-common-2.12-1.25.el6.x86_64.rpm
# rpm -ivh kernel-headers-2.6.32-131.0.15.el6.x86_64.rpm
# rpm -ivh libgcc-4.4.5-6.el6.x86_64.rpm
# rpm -ivh glibc-2.12-1.25.el6.x86_64.rpm
# rpm -ivh libgomp-4.4.5-6.el6.x86_64.rpm
# rpm -ivh nscd-2.12-1.25.el6.x86_64.rpm
# rpm -ivh glibc-headers-2.12-1.25.el6.x86_64.rpm
# rpm -ivh glibc-devel-2.12-1.25.el6.x86_64.rpm
# rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm
# rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm
# rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
# rpm -ivh cpp-4.4.5-6.el6.x86_64.rpm
# rpm -ivh gcc-4.4.5-6.el6.x86_64.rpm
(2) 安装gcc-c++
# rpm -ivh libstdc++-4.4.5-6.el6.x86_64.rpm
# rpm -ivh libstdc++-devel-4.4.5-6.el6.x86_64.rpm
# rpm -ivh gcc-c++-4.4.5-6.el6.x86_64.rpm
注意,正常情况下这样安装是不存在问题的,但是在某些环境下安装第一个rpm包的时候就会报错。这个时候就在所有的命令后加“--nodeps –force”,就像:
# rpm -ivh glibc-common-2.12-1.25.el6.x86_64.rpm --nodeps –force
再次运行就没有问题了。
2、安装及配置Redis
2.1安装Redis
将redis-2.6.16.tar.gz解压,然后安装。步骤及相关命令如下:
#tar –xvzf redis-2.6.16.tar.gz
#cd redis-2.6.16
#make
#make PREFIX=/usr/local/redis install (安装的linux路劲)
启动reids的命令如下:
进入redis的bin路径后打命令: ./redis-server
退出命令(也是在bin里)为:./redis-cli shutdown
3、Redis主从配置
3.1Redis Master/Slave 主从配置
这里我们配置 1台Master +1台Slave 为例子,其中:
Master IP:10.0.0.149 Port:6379
Slave IP:10.0.0.151 Port:6379
注意,两台机器的IP地址要在同一网段内,否则无法实现集群。两台机器上均按照以上步骤安装并配置好redis服务。在Slave机器上修改配置文件,使其成为Master的从机。命令及配置如下:
#vi /usr/local/webserver/redis/conf/redis.conf
slaveof 10.0.0.149 6379
3.2启动redis服务
先开启主机上的服务,后开机从机上的服务。
3.3验证M/S服务是否生效
主机上:
>set key1 val1
>quit
从机上:
>get key1
"val1" (表示数据成功同步了)
4、Redis的sentinel哨兵配置
4.1配置文件位置
sentinel.conf配置文件一般在redis的安装包目录下,将该文件拷贝至拷贝至redis安装目录的根目录下(或/etc下,这个根据个人喜好来定):
[root@master ~]# vi /usr/local/redis/sentinel.conf
# sentinel监听的端口
sentinel monitor mymaster 10.0.0.149 6379 1
sentinel down-after-milliseconds mymaster 30000
# 表示sentinel在多少毫秒后连接不到master认为master断开
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 18000
sentinel auth-pass mymaster loveit.cn@2016
4.2.启动哨兵
启动哨兵命令,进入到redis的bin目录执行命令:./redis-sentinel ./sentinel.conf
3. 登陆master(10.0.0.149)使用shutdown命令关闭master后,10.0.0.151变成master表示哨兵测试成功。