1.获取redis资源(选择你想要的版本,推荐最新稳定版)
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
2.解压
tar xzvf redis-5.0.7.tar.gz
3.编译(事先需要安装 gcc,make,tcl)
cd redis-5.0.7
make
(如果出现以下错误,则运行 make MALLOC=libc
error: jemalloc/jemalloc.h: No such file or directory
(如果出现以下错误,则进入源码包目录下的deps目录中执行 make lua hiredis linenoise
4.安装
make install PREFIX=/usr/local/redis (安装到指定目录下)
5.移动配置文件到安装目录下
mkdir /usr/local/redis/etc
mv redis.conf /usr/local/redis/etc
6.将redis-server,redis-cli拷贝到bin下,让redis-serve,redis-cli指令可以在任意目录下直接使用
cp /usr/local/redis/bin/redis-server /usr/local/bin/
cp /usr/local/redis/bin/redis-cli /usr/local/bin/
7.让redis服务以普通用户运行。
为了保证生产环境服务器的安全,要求我们运行的服务都要求以非登陆的普通用户运行,从而防止程序本身的漏洞被利用被黑客提权
1) 建立普通用户
groupadd redis && useradd redis -M -g redis -s /sbin/nologin
2) )提前创建必要的目录
mkdir /var/run/redis -pv && chown redis.redis /var/run/redis -R
mkdir /usr/local/redis/data/ -pv && chown redis.redis /usr/local/redis/data/ -R
mkdir /var/log/redis/ -pv && chown redis.redis /var/log/redis/ -R
(pid 目录,默认是/var/run/但是仅限root用户创建,如果普通用户运行的,必须在其下自创目录,并chown授权)
注意:我们的appendonly.aof文件默认是644权限,其他用户只读。所以修改普通用户前,看看该文件在哪个路径下,并且检查是否chown redis了,也可以给他直接加w权限,但是为了安全不推荐。
8.配置文件
vim /usr/local/etc/redis.conf
1) 注释bind 127.0.0.1 或修改为本机IP
2) protected-mode no (关闭保护模式)
3) daemonize yes (开启守护)
4) requirepass #密码# (设置密码)
5) pidfile /var/run/redis/redis.pid (pid 文件)
6) logfile "/var/log/redis/redis.log" (日志文件)
7) dir /usr/local/redis/data/ (数据文件目录)
9.让外网能够访问redis
配置防火墙: firewall-cmd --zone=public --add-port=6379/tcp --permanent(开放6379端口)
systemctl restart firewalld(重启防火墙以使配置即时生效)
查看系统所有开放的端口:firewall-cmd --zone=public --list-ports
10.将redis加入到开机启动
1) 在自己的Redis安装目录下,有个utils子目录里面有个redis_init_script文件,拷贝到/etc/init.d/,并命名为redisd
cp redis_init_script /etc/init.d/redisd
2) 编辑redisd的内容,修正为相应的路径
vim /etc/init.d/redisd
Redis服务配置了密码,导致关机慢,出现以下提示:
A stop job is running for ... key-value database
原因是关闭Redis服务时需要密码验证。
解决办法:
修改Redis启动脚本,在shutdown 命令行中加入密码
3) 建立关联和启动服务
update-rc.d redisd defaults
service redisd start
其他命令
停止redis: service redisd stop
重启redis: service redisd restart
查看服务状态:service redisd status
启动redis:redis-server /usr/local/redis/etc/redis.conf
检测6379端口是否在监听:netstat -lntp | grep 6379
停止redis:pkill redis
卸载redis:
rm -rf /usr/local/redis //删除安装目录
rm -rf /usr/bin/redis-* //删除所有redis相关命令脚本
rm -rf /root/download/redis-4.0.4 //删除redis解压文件夹