2013-06-21 2 views
2

Я пытаюсь подключить созданную конечную точку кластера amazon elastiCache с помощью memcache-client. Но я получаю ошибкуИспользование клиента memcache с ruby ​​

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>' 

Но используя локальный instread из амазонка 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> 
+0

Вы решили это? У меня такая же проблема. –

+0

Нет, я не решил проблему! Я использовал memcached и memcache-client вместо memcache. Но такая же ошибка возникает – chinchu

+0

Если у вас есть какое-либо решение, пожалуйста, помогите мне также – chinchu

ответ

5

Хорошо, для меня проблемой были группы безопасности. Вы можете получить доступ только к узлам Elasticache из экземпляров ec2, у которых есть группа безопасности, указанная в группе безопасности Elasticache.

Так что для меня мой экземпляр ec2 имеет группу безопасности «сеть». В эластике я добавил «сеть» в «дефолтную» группу безопасности эластиков.

Дальнейшее объяснение здесь: http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheSecurityGroup.html

Кроме того, попробуйте использовать один из этих двух камней:

https://github.com/mperham/dalli

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

Я использую последний и он прекрасно работает, потому что он использует автообнаружение узлов.

+0

Не могли бы вы показать нам, какой код использовать в config/initializers/session_store. rb и config/environment/production.rb для работы с dalli-elasticache? –

+0

dalli-elasticache работает. Я только что проверил с Rails 4.2.5 –