安装Redis需要知道自己需要哪个版本,有针对性的安装,比如如果需要redis GEO这个地理集合的特性,那么redis版本就不能低于3.2版本,由于这个特性是3.2版本才有的。另外需要注意的是,Redis约定次版本号(即第一个小数点后的数字)为偶数的版本是稳定版(如2.8版、3.0版),奇数版本是非稳定版(如2.7版、2.9版),生产环境下一般需要使用稳定版本。
安装依赖
yum install gcc-c++
yum install -y tcl
下载安装包
wget http://download.redis.io/releases/redis-4.0.6.tar.gz
加压安装包,安装
mkdir /usr/local/redis
tar xf redis-4.0.6.tar.gz
cd redis-4.0.6
make
mkdir /usr/local/redis/{bin,etc}
cp redis.conf /usr/local/redis/etc
cd src
cp redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server redis-trib.rb /usr/local/redis/bin/
修改配置文件
vim /usr/local/redis/etc/redis.conf
daemonize yes (no -> yes) #136行
启动
cd /etc/init.d/
vim redis
chmod +x redis
chkconfig --list
chkconfig --add redis
chkconfig --list redis
chkconfig --level 2345 redis on
systemctl start redis
启动脚本如下
#!/bin/bash
#chkconfig: 2345 80 90
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
REDIS_CLI=/usr/local/redis/bin/redis-cli
PIDFILE=/var/run/redis.pid
CONF="/usr/local/redis/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
查看启动
ps -ef | grep redis
使用客户端
redis-cli
set name Joe
Ok
关闭客户端
redis-cli shutdown
开机启动配置
# 开机启动要配置在 rc.local 中,而 /etc/profile 文件,要有用户登录了,才会被执行。
echo "/usr/local/bin/redis-server /etc/redis/redis.conf &" >> /etc/rc.local
添加变量 /etc/profile
export PATH="$PATH:/usr/local/redis/bin"
报错:
make[3]: Leaving directory `/usr/local/redis/deps/lua/src'
make[2]: Leaving directory `/usr/local/redis/deps'
make[1]: *** No rule to make target `../deps/jemalloc/include/jemalloc/jemalloc.h', needed by `adlist.o'. Stop.
make[1]: Leaving directory `/usr/local/redis/src'
make: *** [all] Error 2
解决:
cd deps/
make geohash-int hiredis jemalloc linenoise lua