Redis®*: 入门指南

Redis 快速入门指南

👋 欢迎来到 Stackhero 文档!

Stackhero 提供即用型 Redis 云 解决方案,带来众多优势,包括:

  • 包含 Redis Commander 网页界面
  • 无限消息大小和传输。
  • 只需点击即可轻松更新
  • 私有和专用 VM提供的最佳性能和强大安全性

节省时间简化生活:只需 5 分钟即可试用 Stackhero 的 Redis 云托管 解决方案!

Redis 是一个功能强大且速度极快的内存数据库,具有多种用途。它可以用作缓存系统、键值存储、实时数据排序工具,并作为发布-订阅队列和事件系统。

警告 Redis 已更改其许可证,不再是开源的。 社区、开发者和公司创建了一个名为 Valkey 的 Redis 分支,它是 Redis 的直接替代品。 我们建议使用 Valkey 替代 Redis。

为了帮助您入门,我们分享了一些代码示例,演示如何连接到 Redis 实例。您可以在以下 GitHub 仓库中找到这些示例:https://github.com/stackhero-io/redisGettingStarted

首先,您可能需要安装 "redis" gem。您可以通过运行以下命令来完成:

bundle add redis

接下来,打开 config/environments/production.rb 文件,并添加以下行:

config.cache_store = :redis_cache_store, { url: ENV['REDIS_URL'] }

最后,定义 REDIS_URL 环境变量。以下是一个模板,您可以用您的详细信息替换:

REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

警告 默认情况下,缓存仅在生产环境中启用。如果您希望在开发过程中测试缓存,可以编辑 config/environments/development.rb 文件。添加上述配置,并包括 config.action_controller.perform_caching = true 以启用缓存。验证缓存是否工作的简单方法是启动 Rails 控制台(使用 bin/rails console)并通过写入 Rails.cache.write("foo", "bar") 进行测试。

有关将 Redis 配置为 Ruby on Rails 缓存系统的更多详细信息,请查看官方 Rails 文档

Sidekiq 将自动使用 REDIS_URL 环境变量中指定的 Redis 服务器。

您可以使用以下方式定义 REDIS_URL 环境变量:

REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

有关使用 Redis 的更多信息,请参阅官方 Sidekiq 文档

Resque 与 Sidekiq 类似,将使用 REDIS_URL 环境变量中定义的 Redis 服务器。

按如下方式设置 REDIS_URL

REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"

有关使用 Resque 的更多信息,请访问官方 Resque 文档

您可以使用以下代码在 Stackhero for Redis 上存储 PHP 会话:

<?php

// 解析 Redis URL
$redis_url = parse_url('rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>');

// 配置会话处理器
ini_set('session.save_handler', 'redis');
ini_set('session.save_path', "tls://{$redis_url['host']}:{$redis_url['port']}?auth={$redis_url['pass']}&timeout=5");

// 启动会话
session_start();

?>

为了确保您的 Redis 实例安全,实施某些安全措施至关重要。

默认情况下,Redis 不加密通信。然而,在 Stackhero 上,我们默认集成了 TLS 加密。

要利用这一点,请配置您的 Redis 客户端以使用 TLS 加密,并通过 <PORT_TLS> 端口连接到您的实例。避免使用 <PORT_CLEAR>,因为它不加密数据。

最好的部分是,您无需在您的端进行其他操作,我们已经处理了复杂的设置。

您的 Redis 实例通过密码保护,Stackhero 自动将其设置为高度安全的默认值。如果您选择更改它,请确保选择一个极其复杂的密码。

Redis 非常高效,但缺乏内置的暴力攻击保护,允许攻击者每秒测试多达 150,000 个密码组合。

为了应对这一风险,我们强制要求密码长度至少为 16 个字符(约 4.5231285e+74 种组合)。默认情况下,我们使用 64 个字符的密码(约 9.61963e+111 种组合)。

为了提高安全性并显著降低暴力攻击的风险,强烈建议配置 Stackhero 的防火墙设置(在“Firewall”选项卡下找到),以严格限制连接到您的 IP 地址。这一步对于增强您的安全态势至关重要。