복붙노트

[REDIS] Resque와 레일와 레디 스 : ERR 명령이 허용되지 않는 경우에 사용되는 메모리> 'maxmemory'

REDIS

Resque와 레일와 레디 스 : ERR 명령이 허용되지 않는 경우에 사용되는 메모리> 'maxmemory'

레디 스를 사용하는 경우, 그것은 나에게 오류를 제공합니다 :

ERR command not allowed when used memory > 'maxmemory'

[정보] 명령을 보여준다 :

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

used_memory 높은인가? 나는 완전한 레디 스 멍청한 놈입니다. 그렇다면, 어떻게이 문제가 발생 않으며, 여기에서 어떻게 진행해야합니까? 어떤 도움이 크게 인식되어 있으므로 이와 같은 오류가 전체 (Heroku가) 생산에서 발생이다. 감사합니다.

해결법

  1. ==============================

    1.maxmemory 한계에 도달했을 때이 메시지가 리턴됩니다. 당신은 전류 제한 다음 명령을 사용하는 것입니다 확인할 수 있습니다 :

    maxmemory 한계에 도달했을 때이 메시지가 리턴됩니다. 당신은 전류 제한 다음 명령을 사용하는 것입니다 확인할 수 있습니다 :

    redis 127.0.0.1:6379> config get maxmemory
    1) "maxmemory"
    2) "128000000"
    

    결과는 바이트입니다.

    당신은 maxmemory 매개 변수에 1734K를 설정해야합니다, 당신은이 제한을 유용한 데이터의 1MB의 저장하고 시행 할 계획 그렇다면, (리눅스)의 메모리 710킬로바이트에 대한 빈 레디 스 인스턴스 사용을 유의하시기 바랍니다. 구성 파일에서 maxmemory 설정을 사용하면 K, M, G 접미사를 사용하는 경우를 제외하고, 바이트입니다.

    메모리에 레디 스 저장 모든 (그것은 결코 디스크에 데이터를 유출하지 않습니다), 당신의 Resque 큐의 그래서 모든 콘텐츠 맞게 있습니다. 몇 MB는 Resque 엔진 매우 낮은 것으로 보인다.

    당신은 당신이 선택하는 Heroku가 옵션을 지정하지 않은, 그러나 나의 이해는 레디 스에 가서 "나노"옵션 (무료 하나) 제한 5메가바이트입니다.

  2. ==============================

    2.디디에하여 멋진 대답이 그것을 높이기 위해 단지 단계는 다음과 같습니다

    디디에하여 멋진 대답이 그것을 높이기 위해 단지 단계는 다음과 같습니다

    redis-cli
    127.0.0.1:6379> config get maxmemory
    1) "maxmemory"
    2) "67108864" # (67mb) this will be different in your case
    

    이것은을 변경하는 방법입니다 :

    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"
    
  3. from https://stackoverflow.com/questions/9987832/redis-with-resque-and-rails-err-command-not-allowed-when-used-memory-maxmemo by cc-by-sa and MIT license