Redis安装及主从配置
1、编译环境准备
1.1环境确认
Redis是一个开源、支持网络、基于内存、键值对存储数据库,使用ANSI C编写。所以在搭建Redis服务器时需要C语言的编译环境gcc或g++。
首先确认系统中是否存在C语言的编译环境,终端运行如下命令:
#gcc –version
或
#g++ --version
如果出现如下字样则表示系统中存在C语言的编译环境,不需要安装。
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-44)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
或
g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-44)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
如果没有,就需要在系统中安装gcc、g++。
1.2 64位redhat中安装gcc、g++
将安装所需的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
一些版本的linux在make的时候会报错,如图2.1所示。
图2.1 编译Redis出错
分析原因为32位的程序在64为的系统中编译出错。解决方法:
(1)将解压后的redis文件夹删除,重新解压;
(2)进入解压后的redis文件夹执行: make CFLAGS="-march=i686"
Make成功后,在src文件夹中会生成若干可执行文件,运行:
./redis-server
将会出现如图2.2所示的画面。
图2.2 Redis服务开启画面
2.2配置Redis
2.2.1 复制到指定文件夹
#mkdir -p /usr/local/webserver/redis/conf
#mkdir -p /usr/local/webserver/redis/run
#mkdir -p /usr/local/webserver/redis/db
#cp redis.conf /usr/local/webserver/redis/conf/
#cd cd redis-2.6.16/src
将 src 目录下所有可执行文件复制到安装目录
#cp redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server mkreleasehdr.sh /usr/local/webserver/redis/
2.2.2修改配置文件中的如下选项
#vi /usr/local/webserver/redis/conf/redis.conf
daemonize yes
pidfile /usr/local/webserver/redis/run/redis.pid
dir /usr/local/webserver/redis/db
2.2.3创建服务脚本
(1)启动脚本
#vi /usr/local/webserver/redis/start.sh
#!/bin/bash
/usr/local/webserver/redis/redis-server /usr/local/webserver/redis/conf/redis.conf
(2)停止脚本
#vi /usr/local/webserver/redis/stop.sh
#!/bin/bash
kill `cat /usr/local/webserver/redis/run/redis.pid`
(3)为服务脚本赋权限
chmod a+x /usr/local/webserver/redis/start.sh /usr/local/webserver/redis/stop.sh
2.2.4启动 redis 服务
#/usr/local/webserver/redis/start.sh
验证证服务是否成功:
#netstat -nlpt | grep 6379
2.2.5启动客户端验证
#/usr/local/webserver/redis/redis-cli
>set key1 val1
>get key1
2.2.6停止redis服务
#/usr/local/webserver/redis/stop.sh
2.3java客户端实例
在Java客户端,只需要将Jedis依赖的jar包:jedis-2.1.0.jar引入,就可以建立连接,然后进行读写操作了,如图2.3所示。
图2.3 java客户端连接并读写redis
3、Redis主从配置
3.1Redis Master/Slave 主从配置
这里我们配置 1台Master +1台Slave 为例子,其中:
Master IP:192.168.32.166 Port:6379
Slave IP:192.168.32.188 Port:6379
注意,两台机器的IP地址要在同一网段内,否则无法实现集群。两台机器上均按照以上步骤安装并配置好redis服务。在Slave机器上修改配置文件,使其成为Master的从机。命令及配置如下:
#vi /usr/local/webserver/redis/conf/redis.conf
slaveof 192.168.32.166 6379
3.2启动redis服务
先开启主机上的服务,后开机从机上的服务。
3.3验证M/S服务是否生效
主机上:
/usr/local/webserver/redis/redis-cli
>set key1 val1
>quit
从机上:
/usr/local/webserver/redis/redis-cli
>get key1
"val1" (表示数据成功同步了)