Ubuntu 安装 Redis
本文档记录使用 Ubuntu 安装一个生产可用的 Redis 实例。
版本 | |
---|---|
Ubuntu | Ubuntu 22.04.1 LTS |
Redis | 7.0.7 |
- 如果你正在运行一个非常小的发行版(比如 Docker 容器),你可能需要先安装 lsdb -release:
$ sudo apt-get install lsb-release
- 将存储库添加到 apt 索引,更新它,然后安装:
$ curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
$ 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
$ sudo apt-get update
$ sudo apt-get install redis
- 创建 redis-server 和 redis-cli 的软链接到 /usr/local/bin:
$ sudo ln -s /bin/redis-server /usr/local/bin/redis-server
$ sudo ln -s /bin/redis-cli /usr/local/bin/redis-server
- 创建一个目录来存储 Redis 配置文件和数据:
$ sudo mkdir /etc/redis
$ sudo mkdir /var/redis
- 将 Redis 发行版中 utils 目录下的 init 脚本复制到 /etc/init.d。 建议使用您正在运行 Redis 实例的端口的名称来调用它。例如:
$ sudo cp utils/redis_init_script /etc/init.d/redis_6379
编辑初始化脚本:
$ sudo vi /etc/init.d/redis_6379
请确保根据您正在使用的端口修改 REDISPORT。pid 文件的路径和配置文件的名称都依赖于端口号。
- 将 /etc/redis/redis.conf(如果不存在,可以在 Redis 发行版的根目录下找到)复制一份副本,使用端口号作为名称,例如:
$ sudo cp /etc/redis/redis.conf /etc/redis/6379.conf
- 在 /var/redis 中创建一个目录,作为 Redis 实例的数据和工作目录:
$ sudo mkdir /var/redis/6379
- 编辑配置文件,确保执行以下更改:
- 将 daemonize 设置为 yes(默认设置为 no)。
- 将 pidfile 设置为 /var/run/redis_6379.Pid(如果需要修改端口)。
- 请相应地更改 port。在我们的示例中,不需要更改它,因为默认端口已经是 6379。
- 设置您喜欢的 loglevel。
- 设置 logfile 为 /var/log/redis_6379.log
- 将 dir 设置为 /var/redis/6379(非常重要的一步!)
- 最后,使用以下命令将新的 Redis init 脚本添加到所有默认运行级别:
$ sudo update-rc.d redis_6379 defaults
完成!现在你可以尝试运行你的实例:
$ sudo /etc/init.d/redis_6379 start
确保一切都按预期工作:
- 尝试用 redis-cli ping 你的实例。
- 使用 redis-cli save 进行测试保存,并检查转储文件是否正确存储到 /var/redis/6379/(您应该会找到一个名为 dump.rdb 的文件)。
- 检查您的 Redis 实例是否正确地在日志文件中记录。
- 重启你的电脑,确保重启后 Redis 能够自启动。
保护 Redis
默认情况下,没有任何身份验证。如果你的环境与外部互联网隔离,这是没有问题的。然而,如果一个未经保护的 Redis 暴露在互联网上,这是一个很大的安全问题。如果你不是 100% 确定你的环境是安全的,请检查以下步骤,以使 Redis 更安全。
- 确保 Redis 用来监听连接的端口(默认为6379,如果你在集群模式下运行 Redis,另外还有 16379,外加 26379)是受防火墙保护的,这样就不可能从外部连接 Redis。
- 修改配置文件中的 bind 参数,以保证 Redis 只监听你正在使用的网络接口。例如,如果您只是从同一台计算机本地访问 Redis,则只能使用回环地址(127.0.0.1),等等。
- 使用 requirepass 参数来添加额外的安全防护,以便客户端需要使用 AUTH 命令进行身份验证。
注意,在没有任何安全措施的情况下,将 Redis 实例暴露在互联网上是非常容易被利用的,所以请确保您理解上述内容并至少应用防火墙层。安装防火墙后,尝试从外部主机连接 redis-cli,以证明实例实际上不可访问。
使用 CLI 探索 Redis
外部程序使用 TCP 套接字和 Redis 特定协议与 Redis 通信。该协议在 Redis 客户端库中针对不同的编程语言实现。然而,为了使操作 Redis 更简单,Redis 提供了一个命令行实用程序,可以用来发送命令到 Redis。这个程序被称为 redis-cli。
为了检查 Redis 是否正常工作,首先要做的是使用 redis-cli 发送 PING 命令:
$ redis-cli ping
PONG
运行 redis-cli,后跟命令名及其参数,将该命令发送到本地主机上端口 6379 的 Redis 实例。您可以更改 redis-cli 使用的主机和端口——只需尝试 --help
选项来检查使用信息。
另一种有趣的运行 redis-cli 的方式是不带参数:程序将以交互模式启动。您可以键入不同的命令并查看它们的回复。
$ redis-cli
redis 127.0.0.1:6379> ping
PONG
redis 127.0.0.1:6379> set mykey somevalue
OK
redis 127.0.0.1:6379> get mykey
"somevalue"
分类:
Redis
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南