Buforowanie danych w pamięci RAM za pomocą Redis jest jedną z metod przyspieszenia działania witryny. To miejsce jest bardzo wydajne i może być używane do buforowania nie tylko witryn, ale także sesji, a także nierelacyjnych baz danych.
Instalacja Redis odbywa się w dwóch etapach:
- Łączenie z repozytorium backports . Wersja w standardowym repozytorium jest zbyt stara.
- Zainstaluj za pomocą
aptitude install -t jessie-backports redis-server redis-tools
Treść artykułu:
- Настраиваем оптимальную конфигурацию 1 Konfigurowanie optymalnej konfiguracji
- Кэширование php сессий 2 buforujące sesje php
Konfigurujemy optymalną konfigurację
W Debianie plik konfiguracyjny znajduje się w katalogu / etc / redis / i nazywa się redis.conf .
Przede wszystkim musisz poprawić błąd przy nieprawidłowo określonej maksymalnej liczbie połączeń TCP. Jest to istotne w przypadku korzystania z gniazd Tcp.
cat /proc/sys/net/core/somaxconn
komendę cat /proc/sys/net/core/somaxconn
w konsoli i ustawiamy odpowiedni numer:
tcp-backlog 128
Aby przyspieszyć pracę, umożliwiamy pracę z gniazdem unix.
unixsocket /var/run/redis/redis.sock unixsocketperm 777
Ograniczamy maksymalną liczbę połączonych klientów. Jeśli potrzebujesz więcej niż 1024 połączeń, musisz również zmienić limit liczby jednocześnie otwieranych plików (ulimit).
maxclients 1024
Określ ilość pamięci RAM przydzielonej do pamięci podręcznej. W przypadku wartości zerowej zostanie wykorzystana cała dostępna pamięć RAM.
maxmemory 64mb
Ustalamy politykę pracy z pamięcią. Dzięki tym zasadom, podczas braku pamięci najstarsze i najmniej używane klucze zostaną usunięte, aby zrobić miejsce na nowe.
maxmemory-policy allkeys-lru
Ponadto w celu uniknięcia problemów z pracą Redis (paragraf 3 instrukcji , eng), należy wyłączyć funkcję Transparent HugePages jądra.
# echo never> / sys / kernel / mm / transparent_hugepage / enabled
Zrestartuj, aby zmiany zaczęły obowiązywać.
# ponowne uruchomienie usługi
I dodajemy następujące linie do pliku /etc/rc.local , aby po ponownym uruchomieniu serwera ta funkcja była wyłączona.
jeśli test -f / sys / kernel / mm / transparent_hugepage / enabled; następnie echo never> / sys / kernel / mm / transparent_hugepage / enabled fi jeśli test -f / sys / kernel / mm / transparent_hugepage / defrag; następnie echo nigdy> / sys / kernel / mm / transparent_hugepage / defrag fi
Buforowanie sesji php
Możesz skonfigurować php do przechowywania sesji na kilka sposobów, w zależności od używanego pakietu.
Bezpośrednio w php.ini
[Sesja] session.save_handler = redis session.save_path = "unix: ///run/redis/redis.sock"
Apache2 i mod_php (w pliku hosta wirtualnego lub 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 (w pliku puli)
php_admin_value [session.save_handler] = "redis" php_admin_value [session.save_path] = "unix: ///run/redis/redis.sock"