2013-06-21 1 views
2

memcache-client를 사용하여 생성 된 amazon elastiCache 클러스터 엔드 포인트에 연결하려고합니다. 그러나 오류ruby와 함께 memcache 클라이언트 사용

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

을 받고 그러나 아마존 elastiCache 클러스터 엔드 포인트의 로컬 호스트 instread가 정확하게 무엇입니까 사용하고 있습니다.

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

아니오 나는 문제를 해결하지 못했습니다! memcache 대신 memcached 및 memcache-client를 사용했습니다. 그러나 동일한 오류가 발생했습니다. – chinchu

+0

아무 해결책이 있으면 – chinchu

답변

5

제게는 보안 그룹이 문제였습니다. Elasticache 보안 그룹에 나열된 보안 그룹이있는 ec2 인스턴스에서만 Elasticache 노드에 액세스 할 수 있습니다.

나를 위해 ec2 인스턴스에는 "web"보안 그룹이 있습니다. elasticache에서, 나는 "default"탄력성 보안 그룹에 "web"을 추가했다. 여기

또한 설명 : 나는 후자를 사용하고

https://github.com/mperham/dalli

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

을하고 사용하기 때문에 그것을 잘 작동합니다 : 또한 http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheSecurityGroup.html

,이 두 가지 보석 중 하나를 사용하십시오 노드의 자동 검색.

+0

도우십시오. config/initializers/session_store에서 사용할 코드를 알려주십시오. rb 및 config/environments/production.rb를 dalli-elasticache와 함께 사용 하시겠습니까? –

+0

dalli-elasticache가 작동합니다. 방금 레일스 4.2.5를 확인했습니다. –