tar xzf redis-2.8.3.tar.gz
cd redis-2.8.3
make
32位机子报错解决
zmalloc.o: In function `zmalloc_used_memory':
/usr/local/src/redis-2.8.3/src/zmalloc.c:223: undefined reference to `__sync_add_and_fetch_4'
collect2: ld 返回 1
make[1]: *** [redis-server] 错误 1
make[1]: Leaving directory `/usr/local/src/redis-2.8.3/src'
make: *** [all] 错误 2
make后面加一个参数
make CFLAGS="-march=i686"
2、编译完成后,在./Src目录下,有三个可执行文件redis-server、redis-benchmark、redis-cli和./redis.conf然后拷贝到一个目录下。
mkdir /usr/redis
cp redis-server /usr/redis
cp redis-benchmark /usr/redis
cp redis-cli /usr/redis
cp redis.conf /usr/redis
cd /usr/redis
3、启动Redis服务。
redis-server redis.conf
4、然后用客户端测试一下是否启动成功。
redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
---------------------------------------------------------------------------------------------------------
然后自己动手制作一个redis启动脚本方便管理
1、vim /etc/rc.d/init.d/redisd
#!/bin/sh
#chkconfig: 345 86 14
#description: Startup and shutdown script for Redis
PROGDIR=/usr/redis #安装路径
PROGNAME=redis-server
DAEMON=$PROGDIR/$PROGNAME
CONFIG=/usr/redis.conf
PIDFILE=/var/run/redis.pid
DESC="redis daemon"
SCRIPTNAME=/etc/rc.d/init.d/redisd
start()
{
if test -x $DAEMON
then
echo -e "Starting $DESC: $PROGNAME"
if $DAEMON $CONFIG
then
echo -e "OK"
else
echo -e "failed"
fi
else
echo -e "Couldn't find Redis Server ($DAEMON)"
fi
}
stop()
{
if test -e $PIDFILE
then
echo -e "Stopping $DESC: $PROGNAME"
if kill `cat $PIDFILE`
then
echo -e "OK"
else
echo -e "failed"
fi
else
echo -e "No Redis Server ($DAEMON) running"
fi
}
restart()
{
echo -e "Restarting $DESC: $PROGNAME"
stop
start
}
list()
{
ps aux | grep $PROGNAME
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
list)
list
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|list}" >&2
exit 1
;;
esac
exit 0
2、增加服务并开机启动
cp ./redisd /etc/rc.d/init.d/redisd
chmod +x /etc/rc.d/init.d/redisd
chkconfig --add redisd
chkconfig --level 345 redisd on
chkconfig --list redisd
执行该脚本后,就可以开始start|stop|restart|list你的服务了。
提示:
默认的redis.conf文件参数是前台启动的,修改daemonize no为daemonize yes则为后台启动。
======================================================
======================================================
#!/bin/bash
#
# $Id: rdisc,v 1.5 2005/04/05 10:06:01 bastian Exp $
#
### BEGIN INIT INFO
# Provides: rdisc
# Short-Description: This is a daemon which discovers routers on the local subnet.
# Description: This is a daemon which discovers routers on the local subnet.
### END INIT INFO
# chkconfig: - 41 89
# config: /etc/sysconfig/rdisc
# Source function library.
. /etc/init.d/functions
. /etc/sysconfig/network
#
# Set default options. Override the defaults and define
# custom options in /etc/sysconfig/rdisc
#
RDISCOPTS="-s"
LOCKFILE=/var/lock/subsys/rdisc
[ -f /etc/sysconfig/rdisc ] && . /etc/sysconfig/rdisc
start() {
# Check that networking is configured.
[ ${NETWORKING} = "no" ] && exit 1
echo -n $"Starting router discovery: "
if [ $UID -ne 0 ]; then
RETVAL=4
failure
else
daemon /sbin/rdisc $RDISCOPTS
RETVAL=$?
[ $RETVAL -eq 0 ] && touch $LOCKFILE
fi;
echo
return $RETVAL
}
stop() {
echo -n $"Shutting down router discovery services: "
if [ $UID -ne 0 ]; then
RETVAL=4
failure
else
killproc /sbin/rdisc
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f $LOCKFILE
fi;
echo
return $RETVAL
}
restart() {
stop
start
}
RETVAL=0
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status rdisc
;;
restart|reload)
restart
;;
condrestart)
if status $prog > /dev/null; then
stop
start
fi
;;
*)
echo $"Usage: $0 {start|stop|status|restart|reload}"
exit 2
esac
exit $?