gpt4 book ai didi

redis - 如何使用 Chef JSON 设置 redis 和 sidekiq 配置

转载 作者:IT王子 更新时间:2023-10-29 06:14:42 24 4
gpt4 key购买 nike

我将 AWS OpsWorks 用于带有 Redis 和 Sidekiq 的 Rails 应用程序,并希望执行以下操作:

  • 重写redis的maxmemory配置
  • 仅在选定的 EC2 实例上运行 Redis 和 Sidekiq

我当前的 JSON 配置只有 database.yml 覆盖:

{
"deploy": {
"appname": {
"database": {
"username": "user",
"password": "password",
"database": "db_production",
"host": "db.host.com",
"adapter": "mysql2"
}
}
}
}

最佳答案

Override the maxmemory config for redis

看看您选择的 Redis 说明书是否为您提供了一个属性来设置/提供自定义配置值。我知道主要的 redisio 可以让你设置配置值,就像我在我的堆栈上所做的那样(我相信我设置了磁盘缓存的路径)

Only run Redis & Sidekiq on a selected EC2 instance

这部分很简单:为 Redis(或 Redis/Sidekiq)创建一个层并向该层添加一个实例。

现在,因为 Redis 与您的 Rails 服务器位于不同的实例上,您不一定知道您的 Redis 服务器的 IP 地址是什么。特别是因为您可能想要使用内部 EC2 IP 地址与盒子的公共(public) IP 地址(使用内部地址意味着您已经在默认防火墙内)。

Sooo...您可能需要为您的应用编写自定义说明书(如果您还没有的话)。在您的 attributes/default.rb 中编写如下代码:

redis_instance_details = nil
redis_stack_name = "REDIS"

redis_instance_name, redis_instance_details = node["opsworks"]["layers"][redis_stack_name]["instances"].first

redis_server_dns = "127.0.0.1"
if redis_instance_details
redis_server_dns = redis_instance_details["private_dns_name"]
end

然后稍后在属性文件中将您的 redis 配置设置为您的 redis_hostname(可能使用它来设置:

default[:deploy][appname][:environment_variables][:REDIS_URL] = "redis://#{redis_server_dns}:#{redis_port_number}"

希望这对您有所帮助!

关于redis - 如何使用 Chef JSON 设置 redis 和 sidekiq 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30051377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com