Skip to main content

Як налаштувати Redis як кешуючого



Кешування даних в оперативній пам'яті за допомогою Redis є одним з методів прискорення роботи сайту. Дане сховище високопродуктивно і може використовуватися для кешування не тільки сайтів, а й сесій, а також в якості нереляційних бази даних.

Установка Redis проводиться в два етапи:


  1. Підключення сховища backports . Версія в стандартному репозиторії занадто стара.
  2. Установка командою aptitude install -t jessie-backports redis-server redis-tools

Зміст статті:

Налаштовуємо оптимальну конфігурацію

В Debian конфігураційний файл розташований в каталозі / etc / redis / і називається redis.conf.

В першу чергу необхідно виправити помилку з некоректно зазначеним максимальною кількістю tcp з'єднань. Це актуально в разі використання tcp-сокетів.

Друкуємо в консолі команду cat /proc/sys/net/core/somaxconn і виставляємо відповідну кількість:


  tcp-backlog 128 

Для швидшої роботи підключаємо можливість роботи з unix-сокетом.

  unixsocket /var/run/redis/redis.sock
 unixsocketperm 777 

Обмежуємо максимальну кількість підключаються клієнтів. Якщо необхідно більше 1024-х підключень, також буде потрібно змінити обмеження на кількість одночасно відкритих файлів (ulimit).

  maxclients тисячі двадцять чотири 

Визначаємо кількість виділеної оперативної пам'яті для кеша. У разі зазначення нульового значення, буде використана вся доступнуая оперативну пам'ять для кеша.


  maxmemory 64mb 

Визначаємо політику роботи з пам'яттю. При цій політиці, під час нестачі пам'яті, будуть видалятися найбільш старі і найменш використовувані ключі, щоб звільнити місце для нових.

  maxmemory-policy allkeys-lru 

Так само, щоб уникнути проблем з роботою Redis (пункт 3 керівництва , англ), слід відключити функцію ядра Transparent HugePages.

  # Echo never> / sys / kernel / mm / transparent_hugepage / enabled 

Перезапускаємо для вступу змін в силу.

  # Service redis restart 

І додаємо в файл /etc/rc.local наступні рядки, щоб після перезавантаження сервера дана функція була відключена.

  if test -f / sys / kernel / mm / transparent_hugepage / enabled;  then
    echo never> / sys / kernel / mm / transparent_hugepage / enabled
 fi
 if test -f / sys / kernel / mm / transparent_hugepage / defrag;  then
    echo never> / sys / kernel / mm / transparent_hugepage / defrag
 fi 

Кешування php сесій

Налаштувати php на зберігання сесій можна кількома шляхами, в залежності від використовуваної зв'язки.

Безпосередньо в php.ini

  [Session]
 session.save_handler = redis
 session.save_path = "unix: ///run/redis/redis.sock" 

Apache2 і mod_php (в файлі віртуального хоста або apache2.conf)

  <IfModule mod_php5.c>
 php_admin_value session.save_handler "redis"
 php_admin_value session.save_path "unix: ///run/redis/redis.sock"
 </ IfModule> 

PHP-FPM (в файлі пулу)

  php_admin_value [session.save_handler] = "redis"
 php_admin_value [session.save_path] = "unix: ///run/redis/redis.sock" 


Як ви оціните статтю?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (Поки оцінок немає)
Завантаження ...

Додати коментар

Ваш e-mail не буде опублікований.