ruby-on-rails memcached dalli

ruby on rails - Rails+Dalli memcache gema: DalliError: No hay servidor disponible



ruby-on-rails memcached (5)

Hola, tengo problemas para configurar mi proyecto de Rails en mi servidor porque apache sigue quejándose

DalliError: No server available .

Instalé memcached en mi máquina ubuntu, pero todavía no funciona. Mi proyecto de rieles también tiene config.cache_store = :dalli_store, ''localhost:11211'', { :namespace => "production" } en los entornos / production.rb. ¿Cómo podría depurar esto?

Mi registro muestra antes de cada solicitud:

localhost:11211 failed (count: 6) DalliError: No server available

telnet al 11211:

root@s2:/usr/local/www/production/current/log# telnet localhost 11211 Trying 127.0.1.1... telnet: Unable to connect to remote host: Connection refused


Fue porque alguien cambió el /etc/hosts al punto 127.0.1.1 para localhost en lugar de 127.0.0.1 . Después de cambiar eso, memcached funcionó.


La respuesta aceptada probablemente resolverá el problema para el 95% de las personas que están viendo este error, pero en mi caso, encontré que el problema es mucho más fundamental:

Desde el servidor, no pude hacer ping 127.0.0.1 . Esto significaba que Dalli no podía conectarse al servidor de memcache , que por defecto se ejecuta en 127.0.0.1:11211 .

Hay varias cosas que podrían causar este problema, pero lo más probable es que simplemente falte una interfaz de red. Si ejecuta ifconfig , debería ver algo como esto en la salida:

lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:15686 errors:0 dropped:0 overruns:0 frame:0 TX packets:15686 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:23730314 (23.7 MB) TX bytes:23730314 (23.7 MB)

Si falta esto, asegúrese de que su /etc/network/interfaces contenga la siguiente definición de interfaz local:

auto lo iface lo inet loopback

Y luego reinicie el servicio de red:

sudo /etc/init.d/networking restart


Si eres un usuario de Homebrew:

brew install memcached

Compruebe si el servicio se está ejecutando:

brew services list

Si no, comience

brew services start memcached


Use 127.0.0.1 lugar de localhost para resolver su problema (y el mío).

config.cache_store = :dalli_store, ''127.0.0.1:11211'', { namespace: ''production'' }


Yo tuve el mismo problema. Primero instalé memcached como gem gem install memcached y obtuve el error "DalliError: No hay servidor disponible"

Luego instalé memcached haciendo sudo apt-get install memcached . Funciona bien ahora.