当前位置:   article > 正文

Ubuntu安装Redis_ubuntu 安装redis

ubuntu 安装redis

1. 场景还原

最近想在新建的Ubuntu虚拟机上安装Redis,记录下安装步骤以供参考。

Ubuntu版本:22.04(其它Ubuntu版本也适用

2. 安装步骤

安装最新稳定版本

如果需要安装最新稳定版本的Redis,可参考下面的步骤:

1. 安装必要的软件包

在终端运行下面的命令,安装必要的软件包:

sudo apt install lsb-release curl gpg -y

lsb-release:  这个软件包包含了一个命令行工具 lsb_release,用于显示 Linux 发行版的相关信息。

curl:  提供了一个命令行工具 curl,用于在网络上传输数据。通常用于下载文件或与 Web 服务器进行交互。

gpg: 这是 GNU Privacy Guard 的缩写,是一个用于加密和签名数据的工具。它提供了一组命令行工具,用于生成密钥、加密文件、验证签名等操作。

2. 将Redis存储库添加到apt索引并更新

先运行第一个命令

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

这个命令的目的是从 Redis 官方网站下载 GPG 公钥,然后将其解码并保存到系统的指定位置 /usr/share/keyrings/redis-archive-keyring.gpg 中。这个公钥文件将用于验证从 Redis 软件包存储库下载的软件包的签名,以确保它们未被篡改。

再运行第二个命令

echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

这个命令通过 echo 命令将一行文本输出到标准输出。这行文本是一个针对 Redis 软件包存储库的 APT 源列表条目,其中包含了存储库的地址和其他信息。具体解释如下:

deb:  这是 APT 源列表条目的开头,表示这是一个二进制软件包的存储库。

[signed-by=/usr/share/keyrings/redis-archive-keyring.gpg]: 这个部分指定了用于验证存储库中软件包的签名的 GPG 公钥文件的路径。这确保了从该存储库下载的软件包在下载和安装过程中都会被签名验证。

https://packages.redis.io/deb:  这是Redis存储库的 URL,指定了 Redis 软件包存储库的位置。

$(lsb_release -cs):  这部分使用 lsb_release -cs 命令获取当前系统的代号(codename),通常是一个用来指代特定发行版版本的标识符,如 "bionic" 或 "focal"。这个代号会被替换到存储库 URL 中,确保系统使用与其版本相对应的存储库。

main:  这是存储库中软件包的主要部分,包含了大部分的软件包。

tee: 是一个常用的命令行工具,用于从标准输入读取数据,并将数据写入一个或多个文件,同时将数据输出到标准输出。这个命令通常与管道操作符 | 结合使用,允许用户同时查看数据流并将数据写入文件中。

最后运行第三个命令更新apt索引:

sudo apt-get update

3. 安装Redis

运行下面的命令安装最新稳定版本的Redis:

sudo apt-get install redis -y

4. 启动Redis并设置开机自启

sudo systemctl enable --now redis-server

 5. 查看状态

sudo systemctl status redis

输出下面的结果,表示Redis服务已经在后台正常运行并启用了开机自启:

  1. root@ubuntu:~# sudo systemctl status redis
  2. ● redis-server.service - Advanced key-value store
  3. Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
  4. Active: active (running) since Wed 2024-04-24 17:41:36 CST; 7s ago
  5. Docs: http://redis.io/documentation,
  6. man:redis-server(1)
  7. Main PID: 3036 (redis-server)
  8. Status: "Ready to accept connections"
  9. Tasks: 5 (limit: 4568)
  10. Memory: 2.7M
  11. CPU: 51ms
  12. CGroup: /system.slice/redis-server.service
  13. └─3036 "/usr/bin/redis-server 127.0.0.1:6379" "" "" "" "" "" "" ""

安装指定版本

如果你不想用最新的版本,想安装指定版本的Redis,可参考下面的步骤:

1. 安装必要的软件包

在终端运行下面的命令,安装必要的软件包:

sudo apt install gcc make -y

gcc 是 GNU Compiler Collection 的缩写,它是一个包含 C、C++、Objective-C 和其他语言编译器的工具集 。因为Redis是C语言编写的,需要安装此软件包。

make 是一个构建工具,用于自动化构建和编译代码的过程。

2. 下载指定版本安装包

访问http://download.redis.io/releases/选择指定版本,比如我这里要安装6.2.9版本,右键复制链接地址:

运行下面的命令下载(后面的链接替换为你复制的版本链接):

wget http://download.redis.io/releases/redis-6.2.9.tar.gz

解压压缩包:

tar xzf redis-6.2.9.tar.gz

3. 安装Redis

将解压后的目录移动到usr/local⽬录下:

sudo mv ./redis-6.2.9 /usr/local/redis/

 进⼊redis⽬录编译和构建 redis:

cd /usr/local/redis/ && sudo make

测试(可跳过,此步骤执行时间过长):

sudo make test

安装redis:

sudo make install

4. 注册服务

上面的步骤已经将redis安装完成,你可以使用redis-server命令开启Redis服务了,但是为了更便捷地操作,我们需要让redis在后台运行设置开机自启

移动配置文件

将redis配置⽂件(配置文件目录:/usr/local/redis/redis.conf)移动到/etc/⽬录下,便于管理:

sudo mkdir -p /etc/redis/ && sudo cp /usr/local/redis/redis.conf /etc/redis/

注册redis服务

输入以下命令创建一个新的启动脚本:

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

按i进入编辑模式输入以下内容后按:wq保存退出:

  1. [Unit]
  2. Description=Redis Server
  3. After=network.target
  4. [Service]
  5. ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
  6. ExecStop=/usr/local/bin/redis-cli shutdown
  7. Restart=always
  8. [Install]
  9. WantedBy=multi-user.target

设置执行权限

将启动脚本设置为可执行:

sudo chmod +x /etc/systemd/system/redis.service

将脚本注册为服务

使用 systemctl 命令将脚本注册为服务,并启用它以在系统启动时自动启动:

sudo systemctl daemon-reload && sudo systemctl enable redis

 启动服务:

sudo systemctl start redis

查看状态

sudo systemctl status redis

输出下面的结果,表示Redis服务已经在后台正常运行并启用了开机自启:

  1. root@ubuntu:/etc/redis# systemctl status redis
  2. ● redis.service - Redis Server
  3. Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: enabled)
  4. Active: active (running) since Wed 2024-04-24 17:23:41 CST; 3min 28s ago
  5. Main PID: 28421 (redis-server)
  6. Tasks: 5 (limit: 4568)
  7. Memory: 1.6M
  8. CPU: 854ms
  9. CGroup: /system.slice/redis.service
  10. └─28421 "/usr/local/bin/redis-server 127.0.0.1:6379" "" "" "" "" "" "" ""

3. 可选操作和配置

查看Redis安装版本

运行下面的命令查看已安装的Redis版本:

redis-server -v

输出结果: 

配置密码登录

Redis 默认情况下是没有启用密码登录的。要启用密码登录,需要手动编辑 Redis 配置文件并设置密码,运行下面的命令(将命令中MyPassword123go替换为你需要设置的密码,该命令也适用于之前修改过密码重置密码):

new_password="MyPassword123go";sudo sed -i.bak -E "s/^(\s*#)?\s*requirepass\s+.*/requirepass $new_password/" /etc/redis/redis.conf

重启Redis服务:

systemctl restart redis

验证密码

使用 redis-cli 工具连接到 Redis 服务器: 

redis-cli

输入auth命令进行身份验证(auth后跟上一步你设置的密码):

auth MyPassword123go

如果输出OK表示设置密码成功: 

  1. 127.0.0.1:6379> auth MyPassword123go
  2. OK

 启用远程访问

在启用远程访问前请确保已经配置了密码访问,最好还在防火墙限制了IP访问,不然如果你的云服务器没做防火墙限制的话,分分钟会被黑。因为将 Redis 服务器暴露在公网上会大大增加受到攻击的风险。攻击者可以轻松扫描公网 IP 地址,发现开启了 Redis 服务的服务器,并尝试利用漏洞进行攻击。

运行下面的命令:

sudo sed -i 's/^bind .*/bind 0.0.0.0/' /etc/redis/redis.conf

重启Redis服务: 

systemctl restart redis

测试连接:

redis-cli -h 192.168.31.223 -p 6379 -a MyPassword123go

redis-cli:是 Redis 提供的一个命令行工具,用于与 Redis 服务器进行交互。

-h 192.168.31.223:指定要连接的 Redis 服务器的 IP 地址。在这里,192.168.31.223 请替换为你要连接的远程 Redis 服务器的 IP 地址。

-p 6379:指定 Redis 服务器的端口号。默认情况下,Redis 服务器的端口号是 6379。如果你的 Redis 服务器使用了不同的端口,需要修改为相应的端口号。

-a MyPassword123go:指定连接到 Redis 服务器所需的密码。在这里,MyPassword123go 替换为你设置的密码。如果远程 Redis 服务器未设置密码,则可以省略该参数。

卸载Redis

请确保你在执行卸载之前备份了重要的数据

卸载软件:

sudo apt-get remove --purge redis-server -y

删除 Redis 配置文件和数据文件:

sudo rm -rf /etc/redis /var/lib/redis

如果你是通过make方式安装的指定版本的Redis,请输入下列命令(可全部复制粘贴运行):

  1. sudo systemctl stop redis
  2. sudo rm -rf /usr/local/bin/redis*
  3. sudo rm -rf /usr/local/redis*
  4. sudo rm -rf /etc/redis
  5. sudo rm -rf /var/lib/redis
  6. sudo rm /etc/systemd/system/redis.service
  7. sudo systemctl disable redis

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号