В случае с AOF, Redis ведёт лог операций, которые выполняют клиенты и записывает их в файл (по умолчанию каждую секунду). AOF это аббревиатура от Append Only File, а это означает то, что Redis не изменяет уже записанные данные, а лишь добавляет новые в конец. Благодаря тому, что при использовании AOF, Redis по умолчанию пишет данные на диск каждую секунду, максимум, что вы теряете в случае сбоя при использовании этого режима — это 1 секунда.
Перезагружаем
systemctl restart redis
Если заглянуть в /var/log/redis/redis.log
То можно увидеть два предупреждения WARNING overcommit_memory is set to 0 WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128
Исправим первое
nano /etc/sysctl.conf
вставляем строчку
vm.overcommit_memory = 1
выполняем команду
sysctl vm.overcommit_memory=1
Исправим второе
nano /etc/rc.local
Добавляем строчку
sysctl -w net.core.somaxconn=65535
и заодно выполним ее в консоли
sysctl -w net.core.somaxconn=65535
Перезагружаем и смотрим в /var/log/redis/redis.log что все теперь впорядке
systemctl restart redis
Осталось установить модуль redis для php
Так как для php70 его в портах нет, придеться компилировать самому
cd /tmp
wget https://github.com/phpredis/phpredis/archive/php7.zip
yum install unzip -y
unzip php7.zip
cd phpredis-php7
yum install php70-php-devel m4 autoconf -y
/opt/remi/php70/root/usr/bin/phpize
./configure CFLAGS="-O3" --with-php-config=/opt/remi/php70/root/usr/bin/php-config
make clean all
make test
cp /tmp/phpredis-php7/modules/redis.so /opt/remi/php70/root/lib64/php/modules/
echo extension=redis.so > /etc/opt/remi/php70/php.d/redis.ini
rm -rf /tmp/php7.zip && rm -rf /tmp/phpredis-php7
Рестарт
systemctl restart php70-php-fpm
Проверим
php70 -m | grep -i redis
В ответ redis
Значит модуль стал.
Создаем тестовый файл
nano -w /var/www/test.dev/2.php
connect('localhost:6379');
Проверяем,если ошибка, что класс Redis не существует, не вылетела, то все отлично.
Можно так же запустить бенчмарк, посмотреть как быстро работатет ваш redis
Не плохо так же перенести стандартные php сессии на redis, для этого
В php.ini прописываем ( наши сессии теперь будут храниться в redis)
nano -w /etc/opt/remi/php70/php-fpm.d/www.conf
php_value[session.save_handler] = redis
php_value[session.save_path] = tcp://127.0.0.1:6379
# если с паролем то
# session.save_path = "tcp://127.0.0.1:6379?auth=yourverycomplexpasswordhere"
yum -y install mongodb-org
semanage port -a -t mongod_port_t -p tcp 27017
Запустим
systemctl start mongod
Проверим
mongo
> db.version()
> exit
Предупреждение 1 WARNING: Readahead for /var/lib/mongo is set to 4096KB
Предупреждение 2 WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'
Предупреждение 3 WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
Предупреждение 4 WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files.
Сейчас это будем исправлять
nano -w /etc/init.d/mongod
Перед Starting mongod вставляем
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
В нашей системе(виндовс) создаем общую папку test.dev в нее ложим файлик 1.php с содержимым устройства -> подключить образ диска Дополнительной гостевой ос
- устанавливаем дополнительные пакеты
yum install gcc make kernel-devel-$(uname -r) bzip2 -y
- монтируем привод
mount /dev/cdrom /mnt
- и запускаем VboxLinuxAdditions.run
cd /mnt && sudo sh ./VBoxLinuxAdditions.run
Если у вас вылезла ошибка, как у меня Building the OpenGL support module[FAILED]
То выполняем команду
export MAKE='/usr/bin/gmake -i'
И запустим опять
./VBoxLinuxAdditions.run
Проверяем наличие vboxsf
modprobe vboxsf
Ошибки не выскочило значит все пока что хорошо.
Создаем папку в системе CentOS которая будет у нас общей с виндовс
mkdir -p /var/www/test.dev
Монтируем общую папку
mount -t vboxsf test.dev /var/www/test.dev
Проверяем что в нашей папке test.dev теперь лежить наш созданный в виндовсе файл 1.php
ls /var/www/test.dev/
Если видим файлы нашего проекта, то все хорошо и можно добавить это монтирование в загрузку
nano -w /etc/rc.local
Дописываем:
modprobe vboxsf
mount -t vboxsf test.dev /var/www/test.dev
Выполняем
chmod +x /etc/rc.d/rc.local
Теперь общая папка у нас есть и будет подключаться автоматом при загрузке системы.