有没有办法将 Redis 层设置为 OpsWorks 中现有的 Rails 应用程序?
Posted
技术标签:
【中文标题】有没有办法将 Redis 层设置为 OpsWorks 中现有的 Rails 应用程序?【英文标题】:Is there a way to set Redis layer to existing Rails app in OpsWorks? 【发布时间】:2016-06-11 05:52:40 【问题描述】:我使用 mysql 数据(1 层)创建了一个在 OpsWOrks(Ubuntu 服务器)中运行的 Rails 应用程序(2 层)。
有没有办法为 Redis 创建另一个层并将这个 Redis 层连接到现有的 Rails 层?我可以创建 Redis 层,但不知道如何连接它们。
我读过有一种方法可以使用 Chef recipes 将 Redis 添加到 Rails 层,但我对 Chef 不是很熟悉,所以我正在尝试 layer-approach。
编辑:
我试图停止 Redis,在“Rails”层下添加这个 Redis 层,但结果仍然相同 - 我无法验证 Redis 是否正常工作。
如果我登录到服务器(例如在rails-myapp1
上)并运行
redis-cli
输出是
redis-cli
WARNING:root:could not open file '/etc/apt/sources.list.d/trusty-multiverse.list'
The program 'redis-cli' is currently not installed. To run 'redis-cli' please ask your administrator to install the package 'redis-tools'
任何提示如何解决这个问题?
EDIT2:
我在“Redis”下也有redis1
层(现在是“无实例”),但结果是一样的。
EDIT3:
如果我在安装了 Redis 的服务器上通过 SSH 连接并运行 redis-cli
然后运行 KEYS *
以查看 Redis 缓存的所有内容,则什么都没有。
在config/environments/production.rb
中设置
#config.cache_store = :redis_store, "redis://localhost:6379/0/cache"
config.cache_store = :redis_store, "redis://127.0.0.1:6379/0/cache"
提前谢谢你。
【问题讨论】:
也许这个答案可以帮助你:***.com/questions/35741359/… 【参考方案1】:OpsWorks 不为 Redis 提供内置层。
您可以执行How to run Redis on Amazon OpsWorks for a Rails application? 之类的操作来使用 Elasticache 并使用自定义说明书在您的 Rails 实例中进行配置。
或者如果你想在 OpsWorks 层创建 Redis 实例,你需要使用自定义说明书来设置 Redis 服务器。之后,您可以在 Rails 层中使用自定义说明书,通过使用层属性找到 Redis 层实例:http://docs.aws.amazon.com/opsworks/latest/userguide/attributes-json-opsworks-layers.html。然后将 Redis 配置到您的 Rails 应用程序中。
【讨论】:
以上是关于有没有办法将 Redis 层设置为 OpsWorks 中现有的 Rails 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法为 UIScrollView 中的不同图层设置不同的帧大小?