在CentOS 7下安装Redis7可以通过以下两种方法实现:手动编译安装和使用YUM进行安装。
CentOS 7系统的环境和版本:
$ cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
手动编译安装
参考官方文档:https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-from-source/
- 下载Redis7安装包:
从Redis的官方网站下载Redis7的源代码包。例如,下载Redis7.2.0:
$ cd /opt/soft
$ sudo wget https://download.redis.io/releases/redis-7.2.0.tar.gz
- 编译并安装Redis7:
下载完成后,解压缩源代码包,并进入解压后的目录进行编译和安装:
$ sudo tar -zxvf redis-7.2.0.tar.gz
$ cd redis-7.2.0
$ sudo make
$ sudo make install
如果编译过程中报错,很有可能是操作系统没有安装如下依赖,Redis的编译依赖于GCC和一些其他开发工具。可以通过以下命令安装这些依赖:
$ sudo yum update -y
$ sudo yum install -y gcc tcl make
在解压缩源代码包下有一个README.md文件,介绍了如何源码安装redis。
- 配置Redis:
编译安装完成后,Redis的可执行文件(如redis-server、redis-cli)会被放置在/usr/local/bin/目录下。
Redis的配置文件默认位于源代码目录下的redis.conf。可以将此文件复制到/etc/或其他你喜欢的位置,并对其进行编辑以满足需求。
$ sudo cp redis.conf /etc/redis.conf
$ sudo vim /etc/redis.conf
根据需要修改配置文件,例如:
- 将bind 127.0.0.1改为bind 0.0.0.0,允许远程连接(如果需要的话)。
- 将daemonize no改为daemonize yes,让Redis在后台运行。
- 设置密码(可选),取消requirepass的注释并设置密码。
- 设置日志文件路径和数据库持久化方式等(可选)。
- 启动Redis服务:
配置完成后,可以使用以下命令启动Redis服务:
$ redis-server /etc/redis.conf
- 验证Redis服务:
$ redis-cli
127.0.0.1:6379> auth redispass
OK
127.0.0.1:6379> ping
PONG
- 设置Redis开机自启:
如果想让Redis在系统启动时自动启动,需要创建一个systemd服务单元文件:
$ sudo vim /etc/systemd/system/redis.service
在文件中添加以下内容(注意修改ExecStart的路径以匹配Redis配置文件位置):
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target
创建一个redis用户和组(如果它们不存在的话),并将/etc/redis.conf文件的权限设置给这个用户。
$ sudo groupadd redis
$ sudo useradd -g redis redis
重新加载systemd配置,启动Redis服务,并设置开机自启:
$ sudo systemctl daemon-reload
$ sudo systemctl start redis
$ sudo systemctl enable redis
使用YUM进行安装
- 更新YUM源:
由于CentOS 7官方镜像已经被下单,官方的镜像地址mirrorlist.centos.org
无法找到所需的文件,这里使用阿里云的镜像地址:
$ sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
在进行任何安装之前,首先要确保YUM源是最新的。运行以下命令来更新YUM源:
$ sudo yum update -y
如果不更改镜像地址,执行上面的命令会抛出如下错误:
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"
- 添加EPEL和Remi Repository:
Redis7不在CentOS 7的默认仓库中,因此需要添加EPEL(Extra Packages for Enterprise Linux)和Remi Repository。
安装EPEL:
$ sudo yum install epel-release -y
安装Remi repository:
$ sudo yum install -y https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm
启用Remi仓库:
$ sudo yum-config-manager --enable remi
- 安装Redis 7:
使用YUM命令从Remi仓库中下载并安装Redis 7:
$ sudo yum install redis -y
配置文件默认位置在/etc/redis.conf。
- 启动Redis服务:
安装完成后,启动Redis服务:
$ sudo systemctl start redis
- 设置Redis服务为开机启动:
使用以下命令确保Redis在系统重启时自动启动:
$ sudo systemctl enable redis
- 验证Redis安装:
使用以下命令检查Redis服务的状态:
$ sudo systemctl status redis
如果Redis服务正在运行,应能看到“active (running)”的状态。
redis.conf常用配置
开启守护进程模式:
daemonize yes
daemonize设置yes或者no区别:
-
yes:代表开启守护进程模式,redis会在后台运行,并将进程pid号写入至redis.conf选项pidfile设置的文件中。
-
no:启动将进入redis的命令行界面,exit或者关闭连接工具(putty,xshell等)都会导致redis进程退出。
bind配置项用于指定Redis服务器监听的IP地址,默认是使用的本地回环地址,也就是本地才能连接,可以注释掉这一行或者改为bind 0.0.0.0放开所有的外部网络访问。
#bind 127.0.0.1
bind 0.0.0.0
protected-mode用来限制对Redis服务器的访问。
protected-mode yes
外部想要访问redis服务,除了需要修改bind的IP地址,还需要满足以下两个条件之一:
- protected-mode设置为no,将允许Redis接受来自任何网络接口的连接请求,只要这些接口被Redis监听。
- protected-mode设置为yes,同时设置密码(requirepass)