ruby-on-rails-3 - rescue remedy
Redis con Resque y Rails: comando ERR no permitido cuando se usa la memoria> ''maxmemory'' (2)
Al usar redis, me da el error:
ERR command not allowed when used memory > ''maxmemory''
El comando info revela:
redis 127.0.0.1:6379> info
redis_version:2.4.10
redis_git_sha1:00000000
redis_git_dirty:0
arch_bits:64
multiplexing_api:kqueue
gcc_version:4.2.1
process_id:1881
uptime_in_seconds:116
uptime_in_days:0
lru_clock:1222663
used_cpu_sys:0.04
used_cpu_user:0.04
used_cpu_sys_children:0.00
used_cpu_user_children:0.00
connected_clients:1
connected_slaves:0
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
used_memory:930912
used_memory_human:909.09K
used_memory_rss:1269760
used_memory_peak:931408
used_memory_peak_human:909.58K
mem_fragmentation_ratio:1.36
mem_allocator:libc
loading:0
aof_enabled:0
changes_since_last_save:4
bgsave_in_progress:0
last_save_time:1333432389
bgrewriteaof_in_progress:0
total_connections_received:1
total_commands_processed:2
expired_keys:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:0
vm_enabled:0
role:master
¿La memoria usada es alta? Soy un completo redis noob. Si es así, ¿cómo ocurre este problema y cómo debo proceder desde aquí? Este mismo error está ocurriendo en la producción (Heroku), por lo que cualquier ayuda es muy apreciada. Gracias.
Este mensaje se devuelve cuando se alcanza el límite máximo de memoria. Puede verificar cuál es el límite actual usando el siguiente comando:
redis 127.0.0.1:6379> config get maxmemory
1) "maxmemory"
2) "128000000"
El resultado está en bytes.
Tenga en cuenta que una instancia de Redis vacía usa aproximadamente 710 KB de memoria (en Linux), por lo que si planea almacenar solo 1 MB de datos útiles y hacer cumplir este límite, debe configurar 1734 K en el parámetro maxmemory. En el archivo de configuración, el valor máximo de memoria está en bytes, excepto si usa un sufijo K, M, G.
Redis almacena todo en la memoria (nunca derrama datos en el disco), por lo que todo el contenido de las colas de Resque tiene que caber. Unos pocos MB parecen muy bajos para un motor Resque.
No especificó qué opción de Heroku seleccionó, pero mi entendimiento es que la opción "nano" de Redis To Go (la opción gratuita) es de 5 MB.
Gran respuesta por Didier
, estos son solo los pasos para aumentarla:
redis-cli
127.0.0.1:6379> config get maxmemory
1) "maxmemory"
2) "67108864" # (67mb) this will be different in your case
Así es como se cambia:
127.0.0.1:6379> config set maxmemory 100mb
OK
127.0.0.1:6379> config set maxmemory-policy allkeys-lru
OK
127.0.0.1:6379> config get maxmemory
1) "maxmemory"
2) "104857600"