Ответ 1
Вы случайно изменили количество баз данных? Если вы используете очень большое число, то первоначальное использование памяти может быть высоким
Я пытаюсь установить команду OOM при попытке установить ключ,
maxmemory
установлен на 500M с maxmemory-policy
"volatile-lru", я устанавливаю TTL для каждой клавиши, отправленной на redis.
INFO
возвращает: used_memory_human:809.22M
INFO
команда не отображает никаких ключей, как это возможно?KEYS *
возвращает "(пустой список или набор)", я пытался изменить номер db, все еще не найдено ключей.Здесь выводится информационная команда:
redis-cli -p 6380
redis 127.0.0.1:6380> info
# Server
redis_version:2.6.4
redis_git_sha1:00000000
redis_git_dirty:0
redis_mode:standalone
os:Linux 2.6.32-358.14.1.el6.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.4.7
process_id:28291
run_id:229a2ee688bdbf677eaed24620102e7060725350
tcp_port:6380
uptime_in_seconds:1492488
uptime_in_days:17
lru_clock:1429357
# Clients
connected_clients:1
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
# Memory
used_memory:848529904
used_memory_human:809.22M
used_memory_rss:863551488
used_memory_peak:848529192
used_memory_peak_human:809.22M
used_memory_lua:31744
mem_fragmentation_ratio:1.02
mem_allocator:jemalloc-3.0.0
# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1375949883
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
rdb_current_bgsave_time_sec:-1
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
# Stats
total_connections_received:3
total_commands_processed:8
instantaneous_ops_per_sec:0
rejected_connections:0
expired_keys:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:0
# Replication
role:master
connected_slaves:0
# CPU
used_cpu_sys:18577.25
used_cpu_user:1376055.38
used_cpu_sys_children:0.00
used_cpu_user_children:0.00
# Keyspace
redis 127.0.0.1:6380>
Вы случайно изменили количество баз данных? Если вы используете очень большое число, то первоначальное использование памяти может быть высоким
Политика Redis maxmemory volatile-lru может не освободить достаточную память, если предел maxmemory уже используется энергонезависимыми ключами.
Память управляется в конфиге. Таким образом, ваш экземпляр ограничен, поскольку он говорит. Вы можете либо посмотреть в свой redis.conf, либо с помощью функции CLI Tool "config get maxmemory", чтобы получить лимит.
Если вы управляете этим экземпляром Redis, вам нужно будет проконсультироваться и настроить файл конфигурации. Обычно искали в /etc/redis.conf или/etc/redis/redis.conf.
Если вы используете поставщика Redis, вам нужно будет с ними связаться с увеличением вашего лимита.
В нашем случае maxmemory был установлен на большую сумму, а затем кто-то из команды изменил его на более низкую сумму после того, как данные уже были сохранены.
Для такой проблемы рассмотрите возможность увеличения вашей maxmemory в файле redis.conf. Это помогло мне.
как maxmemory для меня было 21000000, тогда я изменил его на 31000000. Надеюсь, это поможет.