下载/安装最新版Redis
scp /Users/xxx/Downloads/redis-....tar.gz root@192.168.xx.xxx:/usr/local/src
安装
[root@localhost src]# tar -xzvf redis-....tar.gz
[root@localhost src]# cd /usr/local/src/redis-4.0.9
直接编译
[root@localhost redis-4.0.9]# make
返回
cd hiredis && make static
make[3]: 进入目录“/usr/local/src/redis-4.0.9/deps/hiredis”
gcc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c
make[3]: gcc:命令未找到
make[3]: *** [net.o] 错误 127
make[3]: 离开目录“/usr/local/src/redis-4.0.9/deps/hiredis”
make[2]: *** [hiredis] 错误 2
make[2]: 离开目录“/usr/local/src/redis-4.0.9/deps”
make[1]: [persist-settings] 错误 2 (忽略)
CC adlist.o
/bin/sh: cc: 未找到命令
make[1]: *** [adlist.o] 错误 127
make[1]: 离开目录“/usr/local/src/redis-4.0.9/src”
make: *** [all] 错误 2
安装gcc
[root@localhost redis-4.0.9]# yum install -y gcc g++ gcc-c++
[root@localhost redis-4.0.9]# make
返回
cd src && make all
make[1]: 进入目录“/usr/local/src/redis-4.0.9/src”
CC Makefile.dep
make[1]: 离开目录“/usr/local/src/redis-4.0.9/src”
make[1]: 进入目录“/usr/local/src/redis-4.0.9/src”
CC adlist.o
In file included from adlist.c:34:0:
zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录
#include <jemalloc/jemalloc.h>
^
编译中断。
make[1]: *** [adlist.o] 错误 1
make[1]: 离开目录“/usr/local/src/redis-4.0.9/src”
make: *** [all] 错误 2
[root@localhost redis-4.0.9]# make MALLOC=libc
创建存储redis文件目录
[root@localhost redis-4.0.9]# mkdir -p /usr/local/redis
[root@localhost redis-4.0.9]# cp /usr/local/src/redis-4.0.9/src/redis-server /usr/local/redis
[root@localhost redis-4.0.9]# cp /usr/local/src/redis-4.0.9/src/redis-cli /usr/local/redis
[root@localhost redis-4.0.9]# cp /usr/local/src/redis-4.0.9/redis.conf /usr/local/redis/
[root@localhost src]# cd /usr/local/redis/
[root@localhost redis]# vim redis.conf
- 在bind 127.0.0.1前加“#”将其注释掉
- 默认为保护模式,把 protected-mode yes 改为 protected-mode no
- 默认为不守护进程模式,把daemonize no 改为daemonize yes
- 将 requirepass foobared前的“#”去掉,密码改为你想要设置的密码(我为了练习用,设置为123456)
[root@localhost redis]# vim /etc/init.d/redis
redis开机启动脚本
#!/bin/sh
# chkconfig: 2345 80 90
# description: Start and Stop redis
# PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/usr/local/redis/redis-server
REDIS_CLI=/usr/local/redis/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/usr/local/redis/redis.conf"
AUTH="123456"
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
添加开机启动服务
[root@localhost redis]# vim /etc/rc.local
末尾行添加
service redis start
[root@localhost redis]# service redis start
返回
env: /etc/init.d/redis: 权限不够
设置权限,注册系统服务
[root@localhost redis]# chmod 755 /etc/init.d/redis
[root@localhost redis]# chkconfig --add redis
[root@localhost redis]# service redis start
返回
[root@localhost redis]# service redis start
Starting Redis server...
880:C 30 May 02:26:42.909 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
880:C 30 May 02:26:42.909 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=880, just started
880:C 30 May 02:26:42.909 # Configuration loaded
Redis is running...
检查是否安装成功
[root@localhost redis]# ps -ef|grep redis
返回
root 881 1 0 02:26 ? 00:00:00 /usr/local/redis/redis-server *:6379
root 889 32223 0 02:29 pts/0 00:00:00 grep --color=auto redis
redis命令软连接
[root@localhost run]# ln -s /usr/local/redis/redis-cli /usr/bin/redis
[root@localhost run]# cd /
[root@localhost /]# redis
测试redis
127.0.0.1:6379> set name username
返回
(error) NOAUTH Authentication required.
需要密码验证
127.0.0.1:6379> auth 123456
返回
OK
127.0.0.1:6379> set name username
OK
127.0.0.1:6379> get name
"username"
安装完成!
开放端口6379