日期:2014-05-16  浏览次数:20689 次

Linux下安装Redis

1、下载安装

wget http://redis.googlecode.com/files/redis-2.2.13.tar.gz
tar -xvzf redis-2.2.13.tar.gz
cd redis-2.2.13
make
sudo make install

?

这时Redis的可执行文件被放到了/usr/local/bin

?

2、下载配置文件和init启动脚本

wget https://github.com/ijonas/dotfiles/raw/master/etc/init.d/redis-server --no-check-certificate
wget https://github.com/ijonas/dotfiles/raw/master/etc/redis.conf --no-check-certificate
sudo mv redis-server /etc/init.d/redis-server
sudo chmod +x /etc/init.d/redis-server
sudo mv redis.conf /etc/redis.conf

?

3、初始化用户和日志路径


第一次启动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
sudo chown redis.redis /var/log/redis

?

4、启动Redis

sudo /etc/init.d/redis-server start

?

5、启动client客户端连接

redis-cli

?

6、示例

redis 127.0.0.1:6379> set user gaohf
OK
redis 127.0.0.1:6379> get user
"gaohf"

?

如果在启动Redis时,报出类似下面的错误:

?

Starting redis-server: /etc/init.d/redis-server: line 32: start-stop-daemon: command not found
failed

?

那是因为在RedHat和CentOS上没有start-stop-daemon命令,这时,你可以将/etc/init.d/redis-server文件里的内容替换成以下内容:

?

#!/bin/sh
#
# redis - this script starts and stops the redis-server daemon
#
# chkconfig:   - 85 15
# description:  Redis is a persistent key-value database
# processname: redis-server
# config:      /etc/redis.conf
# config:      /etc/sysconfig/redis
# pidfile:     /var/run/redis.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

redis="/usr/local/bin/redis-server"
prog=$(basename $redis)

REDIS_CONF_FILE="/etc/redis.conf"

[ -f /etc/sysconfig/redis ] && . /etc/sysconfig/redis

lockfile=/var/lock/subsys/redis

start() {
    [ -x $redis ] || exit 5
    [ -f $REDIS_CONF_FILE ] || exit 6
    echo -n $"Starting $prog: "
    daemon $redis $REDIS_CONF_FILE
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    killproc $prog -QUIT
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    stop
    start
}

reload() {
    echo -n $"Reloading $prog: "
    killproc $redis -HUP
    RETVAL=$?
    echo
}

force_reload() {
    restart
}

rh_status() {
    status $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}

case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart|configtest)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
	    ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
        exit 2
esac

?

如果启动时报出下面的错误:

?

启动 redis-server:
ARE YOU SURE YOU WANT TO USE VM?

Redis Virtual Memory is going to be deprecated soon,
we think you should NOT use it, but use Redis only if
your data is suitable for an in-memory database.
If you *really* want VM add this in the config file:

??? really-use-vm yes

?

修改/et