Centos7 如何安装 Redis 以及常见错误解决
一、下载
我这里是下载的 5.0 版本,并且安装到 /home/redis 目录,其他版本到 http://download.redis.io/releases 查看
# 创建安装目录
mkdir -p /home/redis
cd /home/redis
# 服务器直接下载
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
# 或者浏览器下载后上传带服务器
二、解压安装
tar -zxvf redis-5.0.7.tar.gz -C /home/redis # 解压后的目录
这里解压 redis5.0.7.tar.gz 到 当前 /home/redis 目录
编译
cd /home/redis
make
出现以下日志则编译成功
Hint: It's a good idea to run 'make test' 😉
make[1]: Leaving directory `redis/src'
安装
进入src目录执行安装
cd /home/redis/src
make install
出现以下日志则安装成功:
Hint: It's a good idea to run 'make test' 😉
INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
三、启动
cd /home/redis/src
# 直接启动
./redis-server
# 直接启动 + 配置文件启动
./redis-server /home/redis/redis.conf
# 后台启动 + 配置文件启动
cd /home/redis
vi redis-conf
/ daemonize
#找到 daemonize no 修改为 daemonize yes 保存 即可
./redis-server /home/redis/redis.conf
四、验证
查看端口是否启用:
netstat ltnp | grep 6379
或者查看进程:
ps -ef | grep redis
或者启动客户端连接测试
cd /home/redis
redis-cli
127.0.0.1:6379> set myname '******'
ok
127.0.0.1:6379> get myname
******
五、开放远程连接
开放防火墙端口
firewalld
firewall-cmd --add-port=6379/tcp --permanent
firewall-cmd --reload
iptables
# 开放 TCP 6379 端口
sudo iptables -A INPUT -p tcp --dport 6379 -j ACCEPT
# 保存规则(根据系统选择)
sudo iptables-save | sudo tee /etc/sysconfig/iptables # CentOS 6
sudo netfilter-persistent save # Debian/Ubuntu
# 重启服务(如有必要)
sudo systemctl restart iptables
六、设置密码(选)
生产环境推荐使用密码
cd /home/redis
vim redis.config
# 找到
# requirepass foobared
# 注释前面的 # 然后修改 foobared 为你的密码
# 重启就可以
常见问题
1. 远程连接失败
出现错误:
Connection: Cancel running commands Connection: Cancel running commands Connection: Disconnect on error: Connection error: Connection refused Connection: CentOS7-******-redis5.0.7 > connection failed Connection: Cancel running commands Connection: Cancel running commands Connection: Cancel running commands Connection: Cancel running commands Connection: Disconnect on error: Connection error: Connection refused
原因:
redis3.2+之后设置了保护模式 protected-mode ;
默认是yes,即开启。设置不允许外部网络连接redis服务
解决:
#1. 关闭保护模式+设置ip访问
cd /home/redis
vi redis-conf
/ protected-mode
#修改 protected-mode yes 为protected-mode no
#修改 bind 127.0.0.1 为 bind 0.0.0.0
#保存即可
2. 安装提示 wget 命令不存在
需要安装 wget 工具,请参考文章:Centos7如何安装wget
3. 报错 cc 命令找不到,
需要安装gcc
执行编译命令==make==时报错:
执行以下命令:
yum -y install gcc automake autoconf libtool make
再次执行make命令,会报错,需要把文件删掉,重新解压,再运行make命令
4. 执行 make 编译错误
MAKE hiredis cd hiredis && make static make[3]: Entering directory
/usr/local/redis5.0.7/deps/hiredis' gcc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c make[3]: gcc: Command not found make[3]:[net.o] Error 127 make[3]: Leaving directory
/usr/local/redis5.0.7/deps/hiredis' make[2]: [hiredis] Error 2 make[2]: Leaving directory /usr/local/redis5.0.7/deps make[1]: [persist-settings] Error 2 (ignored) CC adlist.o /bin/sh: cc: command not found make[1]: [adlist.o] Error 127 make[1]: Leaving directory /usr/local/redis5.0.7/src make: [install] Error 2解决:执行以下命令后出现编译make:
yum groupinstall 'Development Tools'
再次执行,还会出现错误:
compilation terminated. make[1]: [adlist.o] Error 1 make[1]: Leaving directory `/usr/local/redis5.0.7/src' make:[all] Error 2
解决:
cd /usr/local/redis-5.0-rc3/deps; make hiredis lua jemalloc linenoise
编译完成后再次在
/usr/local/redis-5.0-rc3
中执行make命令:
cd /usr/local/redis-5.0-rc3
make
出现以下编译结果即成功:
Hint: It's a good idea to run 'make test' 😉
make[1]: Leaving directory `/usr/local/redis-5.0-rc3/src'
然后在
/usr/local/redis-5.0-rc3/src
中执行安装命令
cd /usr/local/redis-5.0-rc3/src
make install
出现以下日志:
Hint: It's a good idea to run 'make test' 😉
INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install