Valkey: 在 Ruby 中使用
如何将 Valkey 与 Ruby 连接
👋 欢迎来到 Stackhero 文档!
Stackhero 提供即开即用的 Valkey cloud 解决方案,带来多项优势,包括:
- 集成
Redis Commander网页界面。- 无限制的消息大小与传输。
- 只需一键即可轻松完成更新。
- 依托专属私有基础设施,实现卓越性能与强大安全性。
节省时间,简化您的工作流程:只需 5 分钟即可体验 Stackhero 的 Valkey cloud hosting 解决方案!
Valkey 是一个开源的内存数据库,专为卓越性能和灵活性而设计。Valkey 是在 Redis 采用更严格许可协议后分支出来的,提供了一个完全开源的替代方案。它与 Redis 的库高度兼容,非常适合用作之前依赖 Redis 的项目的无缝替换。
Valkey 通常被归类为 NoSQL 数据库,支持多种数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)和有序集合(sorted sets)等。凭借其高速操作能力和对大数据量的处理能力,Valkey 已成为缓存、实时分析、消息传递等场景的热门选择。
Valkey 能够轻松集成到 Ruby 和 Ruby on Rails 中,提升应用的性能、可扩展性和灵活性。Ruby 开发者可以利用 Valkey 实现缓存、会话管理、实时数据处理、后台任务处理等功能。
以下是 Valkey 与 Ruby 及 Ruby on Rails 常见的集成方式:
-
缓存(Caching):Valkey 可作为 Rails 应用的缓存层,加快响应速度并减轻数据库负载。
-
后台任务处理(Background job processing):Valkey 可作为 Sidekiq 和 Resque 等流行后台任务处理库的后端,提升 Rails 应用中后台任务的性能和可靠性。
-
实时功能(Real-time features):Valkey 的 Pub/Sub 功能让 Rails 应用能够实现实时通知、聊天系统和实时分析等功能,通过高效的消息传递机制连接各应用组件。
Stackhero 提供即开即用的 Ruby cloud 解决方案,带来多项优势,包括:
- 通过简单的
git push,几秒钟内即可部署您的应用。- 使用您自己的域名,并享受自动配置的HTTPS证书,提升安全性。
- 享受自动备份、一键升级,以及简单、透明、可预测的定价,让您无后顾之忧。
- 依托专属私有基础设施,获得最佳性能和强大安全性。
节省时间,简化流程:只需5 分钟即可体验 Stackhero 的 Ruby cloud hosting 方案!
配置 Valkey 作为 Ruby on Rails 的缓存系统
要在 Ruby on Rails 中将 Valkey 配置为缓存系统,请按照以下步骤操作:
- 安装
redisgem:
bundle add redis
- 编辑
config/environments/production.rb文件,添加如下配置:
config.cache_store = :redis_cache_store, { url: ENV['VALKEY_URL'] }
- 定义环境变量
VALKEY_URL。请使用如下格式的 URL,并将<yourPassword>和<XXXXXX>替换为您的凭证:
VALKEY_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
如需了解更多关于在 Ruby on Rails 中配置 Valkey 作为缓存系统的信息,建议参考 官方 Rails 文档。
配置 Valkey 与 Sidekiq 集成
Sidekiq 会自动使用由环境变量 REDIS_URL 指定的 Valkey 服务器。
您可以如下设置 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
该配置确保当 Valkey 服务器不可用时,客户端会在 2 分钟内持续重试,之后才会报错。这为 Valkey 服务器重启等操作预留了时间。您可根据实际 Sidekiq 使用情况,调整该设置以满足具体需求。
如需了解更多关于 Sidekiq 与 Valkey 的集成信息,请参考 官方文档。
配置 Valkey 与 Resque 集成
要将 Valkey 与 Resque 配合使用,请设置环境变量 REDIS_URL,将 <yourPassword> 和 <XXXXXX> 替换为您的凭证:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:<PORT_TLS>"
Resque 会自动使用 REDIS_URL 环境变量中指定的 Valkey 服务器。
如需了解更多关于 Resque 与 Valkey 的集成信息,请参考 Resque 文档。