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。
在Ruby和Ruby on Rails中使用Redis
将Redis配置为Ruby on Rails的缓存系统
首先,您可能需要安装"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
Sidekiq将自动使用REDIS_URL环境变量中指定的Redis服务器。
您可以使用以下方式定义REDIS_URL环境变量:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
有关使用Sidekiq和Redis的更多信息,请参阅官方Sidekiq文档。
为Resque配置Redis
Resque与Sidekiq类似,将使用REDIS_URL环境变量中定义的Redis服务器。
按如下方式设置REDIS_URL:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
有关使用Resque和Redis的更多信息,请访问官方Resque文档。
使用Redis处理PHP会话
您可以使用以下代码在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实例安全,实施某些安全措施至关重要。
使用Redis加密通信(TLS)
默认情况下,Redis不加密通信。然而,在Stackhero上,我们默认集成了TLS加密。
要利用这一点,请配置您的Redis客户端以使用TLS加密,并通过<PORT_TLS>端口连接到您的实例。避免使用<PORT_CLEAR>,因为它不加密数据。
最好的部分是,您无需在自己这边做任何其他事情,我们已经处理了复杂的设置。
保护Redis免受暴力攻击
您的Redis实例通过密码进行保护,Stackhero会自动设置为高度安全的默认值。如果您选择更改,请确保选择一个极其复杂的密码。
Redis效率极高,但缺乏内置的暴力攻击保护,攻击者可能每秒测试多达150,000个密码组合。
为了应对这一风险,我们强制要求密码长度至少为16个字符(约4.5231285e+74种组合)。默认情况下,我们使用64个字符的密码(约9.61963e+111种组合)。
为了增加安全性并显著降低暴力攻击的风险,强烈建议配置Stackhero的防火墙设置(在"Firewall"选项卡下找到),以严格限制连接到您的IP地址。这一步对于增强您的安全态势至关重要。