目录

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