Мой блог и ряд других веб-приложений активно используют технологии и практики, улучшающие производительность. К ним можно отнести CDN, оптимизацию JS и CSS и конечно же кеширование. В основе последнего используется Redis кеш. Redis позволяет добиться отличных показателей, но есть ряд нюансов. К ним можно отнести лимиты памяти для Redis. О них далее и пойдет речь.
Проблема лимитов памяти Redis в том, что их нет по умолчанию. В этом случае кеш будет расти, что неминуемо приведет к нехватке ОЗУ. Учитывая еще факт, что Ядро Linux не умеет обрабатывать нехватку ОЗУ, последствия могут быть печальные. Чтобы обезопасить себя и работу системы обязательно следует определить необходимый объем памяти Redis сразу же после установки. В этом помогут два метода – правка конфига Redis и задание необходимого значения через redis-cli. Начнем с последнего.
Вызываем команду redis-cli. Чтобы получить текущие лимиты памяти для Redis, выполняем config get maxmemory. Результат будет следующим:
1 2 3 4 | 127.0.0.1:6379> config get maxmemory 1) "maxmemory" 2) "0" 127.0.0.1:6379> |
Он означает, что лимиты отсутствуют. Для их задания следует выполнить команду config set maxmemory 256MB, где 256MB необходимый лимит:
1 2 3 4 5 6 | 127.0.0.1:6379> config set maxmemory 256MB OK 127.0.0.1:6379> config get maxmemory 1) "maxmemory" 2) "268435456" 127.0.0.1:6379> |
Второй способ заключается в задании необходимого значения в самом конфиге Redis. Он находится по пути /etc/redis/redis.conf Открыв его любым редактором, необходимо добавить строку maxmemory 256MB и перезагрузить сервис командой service redis restart. Изменения можно проверить с помощью redis-cli выполнив уже знакомую команду config get maxmemory.
На счет линукс понятно, а на винду можно поставить редис?
Redis для Windows есть но официально не поддерживаеться. Скачать можно тут https://github.com/rgl/redis/downloads