Redis®*: 使用 Ruby
如何将 Redis 与 Ruby 连接
👋 欢迎来到 Stackhero 文档!
Stackhero 提供现成的 Redis 云 解决方案,具有众多优势,包括:
- 包含
Redis Commander网页界面。- 无限消息大小和传输。
- 只需点击即可轻松更新。
- 由专用私有 VM提供的最佳性能和强大安全性。
节省时间,简化生活:只需 5 分钟即可试用 Stackhero 的 Redis 云托管 解决方案!
Redis,全称为远程字典服务器,是一个开源的内存数据库,提供卓越的性能和灵活性。
通常被称为 NoSQL 数据库,Redis 支持多种数据结构,如字符串、哈希、列表、集合和有序集合等。凭借其高速操作和处理大量数据的能力,Redis 已成为缓存、实时分析、消息传递及其他多种应用场景的热门选择。
Redis 可以无缝集成到 Ruby 和 Ruby on Rails 中,以增强性能、可扩展性和灵活性。通过利用 Redis,Ruby 开发者可以实现多种功能,如缓存、会话管理、实时数据处理和后台任务处理等。
以下是 Redis 与 Ruby 和 Ruby on Rails 常见的使用方式:
- 缓存:Redis 可以作为 Rails 应用中的缓存存储,加快响应时间并减少数据库负载。
- 后台任务处理:Redis 作为流行的后台任务处理库如 Sidekiq 和 Resque 的后端,提高了 Rails 应用中后台任务的性能和可靠性。
- 实时功能:Redis 的发布/订阅功能允许 Rails 应用实现实时功能,如通知、聊天系统和实时分析,通过在不同应用组件之间快速高效地传递消息。
Stackhero 提供即用型 Ruby 云 解决方案,带来诸多优势,包括:
- 通过简单的
git push在几秒钟内 部署您的应用。- 使用您自己的域名,并享受 自动配置的 HTTPS 证书以增强安全性。
- 享受 自动备份、一键更新以及简单、透明和 可预测的定价带来的安心。
- 通过 专用的私有 VM 获得最佳的 性能和强大的 安全性。
节省时间并简化生活:尝试 Stackhero 的 Ruby 云托管 解决方案只需 5 分钟。
配置 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 环境变量。您可以使用此 URL,只需将 <yourPassword> 和 <XXXXXX> 替换为您的信息:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
有关将 Redis 配置为 Ruby on Rails 缓存系统的更多信息,您可以查阅 Rails 官方文档。
配置 Redis 与 Sidekiq
Sidekiq 将自动使用环境变量 REDIS_URL 中定义的 Redis 服务器。
您可以这样设置环境变量 REDIS_URL,替换 <password> 和 <XXXXXX> 为您的信息:
REDIS_URL="rediss://default:<password>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
默认情况下,Sidekiq 的配置不容忍网络中断。为改善这一点,我们建议修改 config/initializers/sidekiq.rb 中的 Sidekiq 客户端配置以增强稳定性:
# 文件 config/initializers/sidekiq.rb
Sidekiq.configure_client do |config|
config.redis = {
network_timeout: 5, # 设置超时时间为 5 秒
pool_timeout: 5, # 设置超时时间为 5 秒
reconnect_attempts: Array.new(240, 0.5) # 尝试重新连接 240 次,每 0.5 秒一次(总共 120 秒/2 分钟)后触发错误
}
end
此配置确保如果您的 Redis 服务器不可用,客户端将在 2 分钟内尝试重试,然后报告错误。 例如,这给 Redis 服务器重启的时间。 根据您的 Sidekiq 使用情况,您可以调整此设置以更好地满足您的特定需求。
有关 Sidekiq 和 Redis 的更多信息,您可以查阅 官方文档。
配置 Redis 与 Resque
Resque 将自动使用环境变量 REDIS_URL 中定义的 Redis 服务器。
您可以这样设置环境变量 REDIS_URL,替换 <yourPassword> 和 <XXXXXX> 为您的信息:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
有关 Resque 和 Redis 的更多信息,您可以查阅 官方文档。