1.下载与解压
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
tar xzvf redis-3.2.8.tar.gz
2.编译与解决报错问题
mv redis-3.2.8 /usr/local
cd redis-3.2.8
make
如果报错
增加MALLOC=libc即可
make MALLOC=libc
如果还是报错,可以安装yum install cpp
yum install binutils
yum install glibc
yum install glibc-kernheaders
yum install glibc-common
yum install glibc-devel
yum install gcc
yum install make
之后删掉解压文件 重新解压(centos7是这样弄好的)
sudo make install
install 的时候就是将可执行文件redis-server复制到/usr/local/bin目录下
3.修改配置文件
sudo mkdir /etc/redis
cd redis-3.2.8
sudo cp redis.conf /etc/redis/6379.conf
将 redis-3.2.8 目录下的redis.conf配置文件拷贝到/etc/redis目录下
并修改配置文件:
3.1 修改绑定IP地址
bind 127.0.0.1 改成 bind 0.0.0.0
绑定IP地址必须改成0.0.0.0或者具体的IP地址,否则无法远程访问,不建议设置为具体的IP地址,否则127.0.0.1和localhost无法访问
3.2 关闭保护模式
protected-mode yes 改成protected-mode no
关闭保护模式,否则其他机器不能连接redis, 只能本机连接。
设置protected-mode为no,否则不能远程访问,但最好配置防火墙以保安全
3.3 设置密码
打开requirepass 前面的注释, 并设置新的密码
3.4 开启后台运行模式
daemonize yes
将no改成yes
如果不好找到该配置项,按ESC键切换到命令模式,再输入:/^daemon回车即可搜索,将光标定位到该处,再按i键切换到编辑模式
3.5 配置redis日志文件
如果不配置的话,默认是打印到linux系统日志文件/var/log/syslog里面,不容易维护和查看
#设置日志文件路径
logfile “/var/log/redis.log”
3.6 配置slave
如果是从服务器,需要配置slave的选项:
4.制作启动脚本
在redis-3.2.8/utils目录下有一个现成的启动脚本文件,是redis安装包里面自带的
内容如下:
pengchucai@ubuntu:~/redis-3.2.8/utils$ cat redis_init_script
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=6379
EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.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
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
可以直接使用,只是需要将其拷贝到/etc/init.d目录下并重命名
sudo cp /home/pengchucai/redis-3.2.8/utils/redis_init_script /etc/init.d/redis
sudo vi /etc/init.d/redis
在关闭命令中需要加上客户端连接密码,否则无法通过service redis stop命令关闭redis,不停报错并陷入死循环
(error) NOAUTH Authentication required.
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ...
Waiting for Redis to shutdown ..
因为其本质是通过/usr/local/bin/redis-cli -p 6379 shutdown 来关闭redis的
而redis已经设置了密码,redis-cli 连接6379端口需要加认证信息
$CLIEXEC -a “password” -p $REDISPORT shutdown
shutdown成功后,会自动删除/var/run目录下的redis_6379.pid文件
4.1 设置redis开机自启动
添加脚本的执行权限
sudo chmod +x /etc/init.d/redis
设置开机自动启动
sudo update-rc.d redis defaults
(centos7找不到update-rc.d,可以采用如下方式设置开机启动
在/etc/init.d/redis中添加2行代码,后面2行即可,带#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
然后 设置为开机自启动
chkconfig redis on
)
使用脚本启动服务
开启redis: sudo service redis start
停止redis: sudo service redis stop
重启redis: sudo service redis restart
在自己的VMWare虚拟机上测试reboot后,redis进程还在,并且PID与之前不一样了,说明开机自启动是OK的。
测试:redis-cli -h 127.0.0.1 -p 6379 -a 123456
6379 > set name xxx
6379 > get name
即可查看结果