可能需要的条件

由于redis是C语言开发的,安装redis之前,需要先下载gcc
注意:Centos 7默认gcc版本为4.8,有时需要更高版本的,这里以升级至9.3.1版本为例,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 分别执行下面三条命令即可,无需手动下载源码编译

# 1、安装centos-release-scl
sudo yum install centos-release-scl

# 2、安装devtoolset,注意,如果想安装7版本的,就改成devtoolset-7-gcc,以此类推
sudo yum install devtoolset-9-gcc*

# 3、激活对应的devtoolset,所以你可以一次安装多个版本的devtoolset,需要的时候用下面这条命令切换到对应的版本
scl enable devtoolset-9 bash

# 4、大功告成,查看一下gcc版本
gcc -v

# 也可能直接用这个就行
yum install -y gcc tcl

准备好目录

1
2
3
cd /opt #进入opt目录
mkdir redis #创建redis目录
cd /opt/redis

下载

redis官网下载:

Redis下载页面

稳定版下载网址:https://download.redis.io/redis-stable.tar.gz

在Linux直接下载方法

1
wget https://download.redis.io/redis-stable.tar.gz

或者在其他设备下载好后传过来

解压、编译

1
2
3
tar xzf redis-stable.tar.gz
cd redis-stable
make

安装到指定目录

1
2
3
4
5
6
# 使用默认安装目录,redis默认的安装路径是在 /usr/local/bin目录下:
# 该目录以及默认配置到环境变量,因此可以在任意目录下运行这些命令
make install

# 指定安装目录
make PREFIX=/usr/local/redis install

配置文件

在解压出来的目录中,有一个 redis.conf 配置文件

主要能修改的有

1
2
3
4
5
6
7
8
9
10
# 允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0

# 守护进程,修改为yes后即可后台运行
daemonize yes
# 后台运行想要关闭,可以通过redis-cli登入,执行shutdown命令

# 密码,设置后访问Redis必须输入密码
requirepass 123321

服务端启动

在安装目录下,有多个可执行文件,主要是

  • redis-cli:是redis提供的命令行客户端
  • redis-server:是redis的服务端启动脚本
  • redis-sentinel:是redis的哨兵启动脚本
1
2
3
4
5
# 默认配置启动
redis-server

#指定配置文件启动
redis-server /opt/redis/redis-stable/redis.conf

开机自启

新建系统服务文件

1
vi /etc/systemd/system/redis.service

内容如下

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=redis-server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /opt/redis/redis-stable/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

然后重载系统服务

1
systemctl daemon-reload

现在,我们可以用下面这组命令来操作redis了:

1
2
3
4
5
6
7
8
# 启动
systemctl start redis
# 停止
systemctl stop redis
# 重启
systemctl restart redis
# 查看状态
systemctl status redis

执行下面的命令,可以让redis开机自启:

1
systemctl enable redis

客户端

1
2
3
4
5
6
7
# 连接本机redis
redis-cli

# 连接指定主机指定端口的redis,并使用指定密码
redis-cli -h 127.0.0.1 -p 6379 -a mypassword
# 密码可以不指定,连接上后,使用如下命令认证
AUTH mypassword