Ubuntu 安装 Redis(含远程连接配置)

记录下 Redis 在 Ubuntu 上的安装和相关配置

  • 本文环境
    • 云服务器:腾讯云(不同厂商云服务器上的操作基本相同)
    • 系统:Ubuntu 22.04 LTS
    • 终端:腾讯云 OrcaTerm(腾讯云的 WebShell(个人感觉使用体验不错,因为 ui 好看),不同厂商的云服务器都可以使用,可以代替 Xshell+Xftp 使用)
  • 本文全部 shell 终端指令均执行在 root 用户下(命令前的sudo可不加),如果是非 root 用户也许本文中某些没加sudo命令也要加上sudo

一、安装 Redis

1.更新软件包列表

sudo apt update

2.查看是否安装 Redis

dpkg -l | grep redis


如果输入上述命令后没有任何的输出(如上图),则说明没有安装 Redis

3.安装 Redis

sudo apt install redis-server


这里列出了软件包的相关信息并询问你是否继续安装
输入y后回车确定继续安装
等待安装完后再输入第 2 步的命令查看 Redis 是否已经安装

输出如上图,说明 Redis 已经安装成功  
安装的 Redis 版本默认为当前 apt 源中最新的稳定版本,可以输入下面的命令查看 Redis 版本

redis-server -v


注:写本文时的版本为 6.0.16

4.查看 Redis 状态

一旦安装完成,Redis 服务将会自动启动,想要查看 Redis 服务运行状态可以输入下面命令查看

sudo systemctl status redis


输出显示 Redis 服务已经被启动,并且正在运行

5.启动、重启、停止 Redis 服务的命令

上一步的命令可以用来查看 Redis 服务的运行状态,下面是启动、重启、停止命令

# 启动
sudo systemctl start redis
# 停止
sudo systemctl stop redis
# 重启
sudo systemctl restart redis

停止和启动命令的演示

6.测试 Redis

输入下面命令连接到 Redis 服务器

redis-cli


使用乒乓来测试连通性,输入ping

返回pong说明成功!
退出

exit

二、配置 Redis 远程连接

配置 Redis 主要是对配置文件 redis.conf 进行修改,默认位置在 /etc/redis/redis.conf

1.查找 Redis 配置文件

使用之前的sudo systemctl status redis命令查看 Redis 服务的状态

可以找到这样一个文件
然后使用下面的命令查看该文件

cat /lib/systemd/system/redis-server.service


就可以找到我们 redis.conf 文件所在的位置

2.编辑配置文件

使用 vim 编辑 redis.conf 文件

vim /etc/redis/redis.conf

说明

Redis 默认开启保护模式,并且绑定了本地,也就是只有云服务器本地才能连接并操作 Redis

  • 保护模式:如果符合下面两个条件(不是之一)则无法被远程连接
    1. 没有明确使用 bind 绑定某个 ip 地址
    2. 没有设置密码
  • 想要实现远程连接主要有三种方案
    1. 取消本地绑定(可以被任何 ip 访问),设置密码
    2. 明确绑定某个 ip 地址,设置密码(可选)
    3. 取消本地绑定(可以被任何 ip 访问),关闭保护模式

取消本地绑定/绑定某个 ip 地址

移动光标定位到bind 127.0.0.1 ::1

输入i进入编辑模式(在英文输入法下)
bind 127.0.0.1 ::1的意思是只接受本机的访问请求

  • 如果想取消本地绑定(可以被任何 ip 访问)
    • 将该行注释掉(在前面加#,即# bind 127.0.0.1 ::1),表示接受任何 ip 地址的访问
  • 如果想明确绑定某个 ip 地址
    • 127.0.0.1替换为指定的 ip 地址即可

设置密码

移动光标定位到# requirepass foobared

取消该行注释(删除#),并将foobared修改为你想要设置的密码

如 123456 就是我设置的密码
配置修改生效后再进入 Redis 命令行时需要输入密码登录
即使用redis-cli -a your_password命令登录,your_password是你自己设置的密码
示例:

如果不输入密码进入则会报错未授权

关闭保护模式

移动光标定位到protected-mode yes

yes修改为no即表示关闭保护模式

总结

  • 一般在上线部署时(只在云服务器本地运行),不需要修改配置文件
  • 线下调试时,希望开发环境也可以连接到 Redis(方案一)
    • # bind 127.0.0.1 ::1,取消本地绑定(可以被任何 ip 访问)
    • protected-mode yes,保护模式默认开启即可
    • requirepass your_password,设置密码

以上仅作为参考,具体可以自行选择

3.重启 Redis 服务

Esc退出编辑模式,然后输入:wq后回车保存文件并退出(在英文输入法下)
输入下面命令重启 Redis 服务以应用修改后的配置文件

sudo systemctl restart redis

输入以下命令查看 Redis 服务所监听的 ip 和端口(以方案一设置为例)

netstat -tlpn | grep redis


可以看到 Redis 绑定的 ip 已经变成了 0.0.0.0,即接受任何 ip 地址的访问

4.云服务器放行 6379 端口

在云服务器厂商找到对应云服务器的防火墙,并放行 6379 端口(Redis 的默认端口)
这里以腾讯云为例,不同厂商基本都大同小异


有这样一条记录就说明 6379 端口已经放行了

5.测试连接

本文使用 Another Redis Desktop Manager 测试连接云服务器上的 Redis

地址填你云服务器的 ip 地址

连接成功!