gpt4 book ai didi

ruby - 将内存缓存客户端与 ruby​​ 一起使用

转载 作者:数据小太阳 更新时间:2023-10-29 08:27:49 25 4
gpt4 key购买 nike

我正在尝试使用内存缓存客户端连接创建的亚马逊 elastiCache 集群端点。但是我得到了错误

MemCache::MemCacheError: No connection to server (testcachecluster.u098ed.cfg.us
e1.cache.amazonaws.com:11211 DEAD (Timeout::Error: execution expired), will retr
y at 2013-06-21 11:34:15 +0530)
from C:/ProgramData/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/me
mcache-client-1.8.5/lib/memcache.rb:863:in `with_socket_management'
from C:/ProgramData/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/me
mcache-client-1.8.5/lib/memcache.rb:370:in `block in set'
from C:/ProgramData/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/me
mcache-client-1.8.5/lib/memcache.rb:886:in `with_server'
from C:/ProgramData/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/me
mcache-client-1.8.5/lib/memcache.rb:361:in `set'
from (irb):5
from C:/ProgramData/RailsInstaller/Ruby1.9.3/bin/irb:12:in `<main>'

但是使用 localhost instread amazon elastiCache 集群端点得到正确。

irb(main):006:0>  m = MemCache.new('localhost:11211')
=> <MemCache: 1 servers, ns: nil, ro: false>
irb(main):007:0> m.set 'abc', 'xyz'
=> "STORED\r\n"
irb(main):008:0> m.get 'abc'
=> "xyz"
irb(main):009:0>

最佳答案

好的,对我来说,问题是安全组。您只能从具有在 Elasticache 安全组中列出的安全组的 ec2 实例访问 Elasticache 节点。

所以对我来说,我的 ec2 实例有一个安全组“web”。在 elasticache 中,我随后将“web”添加到“默认”elasticache 安全组。

这里有进一步的解释:http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheSecurityGroup.html

此外,尝试使用这两个 gem 中的任何一个:

https://github.com/mperham/dalli

https://github.com/ktheory/dalli-elasticache

我正在使用后者并且效果很好,因为它使用节点的自动发现。

关于ruby - 将内存缓存客户端与 ruby​​ 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17228902/

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