您的位置:首页 > 数据库 > Redis

Centos下安装Redis并配置开机启动

2013-07-03 17:51 716 查看
1,首先下载安装

wget http://redis.googlecode.com/files/redis-2.2.13.tar.gz
tar -zxf redis-2.2.13.tar.gz

cd redis-2.2.13

make

安装时候如果报错:
在vps上面编译redis 2.6 由于系统有点老,以至于编不过,报错undefined reference to__sync_add_and_fetch_4′,google了下,发现好多人遇到我同样的问题,

zmalloc.o: In function zmalloc_used_memory':
/home/xx/redis-2.6.2/src/zmalloc.c:223: undefined reference to__sync_add_and_fetch_4′
collect2: ld 返回 1
make[1]: *** [redis-server] 错误 1
make[1]: Leaving directory `/home/xx/redis-2.6.2/src’
make: *** [all] 错误 2

github上面一兄弟在src/Makefile开头加 CFLAGS= -march=i686解决了,但是我试了。继续google,发现google group里有个兄弟编辑了下src/.make_settings里的OPT,改为OPT=-O2 -march=i686。

make过了,但是接下来make test又过不了。报错如下

You need ‘tclsh8.5′ in order to run the Redis test

查了下资料,说是要最新的tcl,那就给你装个最新的吧http://www.linuxfromscratch.org/blfs/view/cvs/general/tcl.html

安装完后,总算可以了


make test

sudo make install

cp redis.conf /etc

install的时候,redis的命令会被拷贝到/usr/local/bin下面

2,建立用户与日志目录

第一次启动Redis前,建议为Redis单独建立一个用户,并新建data和日志文件夹

sudo useradd redis

sudo mkdir -p /var/lib/redis

sudo mkdir -p /var/log/redis

sudo chown redis.redis /var/lib/redis #db文件放在这里,要修改redis.conf

sudo chown redis.redis /var/log/redis

3,配置init脚本

其实git上上很多老外写好的启动脚本,不过大部分都是ubuntu的,对于Centos,也有一份
https://gist.github.com/1335694
经过我的修改,如下:
###########################

#!/bin/bash

#chkconfig:345 61 61 //此行的345参数表示,在哪些运行级别启动,启动序号(S61);关闭序号(K61);之前序号用124和224都报错,后来改成两位的就成功了,不知道为什么

#description:redis//此行必写,描述服务.

PATH=/usr/local/bin:/sbin:/usr/bin:/bin

 

REDISPORT=6379

EXEC=/usr/local/bin/redis-server

REDIS_CLI=/usr/local/bin/redis-cli

 

PIDFILE=/var/run/redis.pid

CONF="/etc/redis.conf"

 

case "$1" in

    start)

        if [ -f $PIDFILE ]

        then

                echo "$PIDFILE exists, process is already running or crashed"

        else

                echo "Starting Redis server..."

                $EXEC $CONF

        fi

        if [ "$?"="0" ]

        then

              echo "Redis is running..."

        fi

        ;;

    stop)

        if [ ! -f $PIDFILE ]

        then

                echo "$PIDFILE does not exist, process is not running"

        else

                PID=$(cat $PIDFILE)

                echo "Stopping ..."

                $REDIS_CLI -p $REDISPORT SHUTDOWN

                while [ -x ${PIDFILE} ]

               do

                    echo "Waiting for Redis to shutdown ..."

                    sleep 1

                done

                echo "Redis stopped"

        fi

        ;;

   restart|force-reload)

        ${0} stop

        ${0} start

        ;;

  *)

    echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2

        exit 1

esac

##############################
把上述代码存为redis,放到/etc/init.d/下面

chown +x /etc/init.d/redis

其实做成服务启动,也是调用redis-server,如果想让它在后台作为daemon运行,那么

需要修改redis.conf,将 daemonize no 改为 daemonize yes

4,设定开机启动服务

sudo chkconfig redis on
5,启动,停止redis

启动:

service redis start   或者 /etc/init.d/redis start

停止:

service redis stop   或者 /etc/init.d/redis stop
6,测试redis

redis-cli

redis 127.0.0.1:6379> set foo 123

OK

redis 127.0.0.1:6379> get foo

"123"

redis 127.0.0.1:6379> exit
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: