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 1024 

Вызначаем колькасць вылучаемай аператыўнай памяці для кэшу. У выпадку ўказанні нулявога значэння, будзе выкарыстана ўся доступнуая аператыўную памяць для кэша.


  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 не будзе апублікаваны.