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" (表示数据成功同步了)

posted @ 2014-12-17 22:04  振宇要低调  阅读(7751)  评论(1编辑  收藏  举报