Обмен технологиями

Конфигурация и оптимизация NoSQL Redis

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Базовое введение и сравнение базы данных Redis

Redis (RemoteDictionaryServer, тип удаленного словаря) — это база данных NoSQL с открытым исходным кодом, написанная на языке C. Redis работает на основе памяти и поддерживает постоянство. Он принимает форму хранения «ключ-значение» (пара ключ-значение) и является неотъемлемой частью текущей распределенной архитектуры.

1. Нереляционная база данных

NoSQL (NoSQL = Not Only SQL), что означает «не только SQL», — это общий термин для нереляционных баз данных. К основным базам данных NoSQL относятся Redis, MongBD, Hbase, CouhDB и т. д. Вышеупомянутые нереляционные базы данных совершенно разные по методам хранения, структурам хранения и сценариям использования. Поэтому мы думаем, что это совокупность нереляционных баз данных, а не общий термин, такой как реляционные базы данных. Другими словами, базы данных, отличные от основных реляционных баз данных, можно считать нереляционными. База данных NOSQL считается продуктом баз данных следующего поколения благодаря своим преимуществам нереляционного, распределенного, открытого исходного кода и горизонтального расширения.

2. Реляционная база данных

Реляционная база данных — это структурированная база данных, основанная на реляционной модели и обычно ориентированная на записи. Он обрабатывает данные в базах данных с помощью математических концепций и методов, таких как алгебра множеств. Реляционная модель относится к модели двумерных таблиц, поэтому реляционная база данных — это организация данных, состоящая из двумерных таблиц и связей между ними. В реальном мире различные сущности и различные отношения между сущностями могут быть представлены реляционными моделями. Оператор SQL (стандартный язык запросов данных) — это язык, основанный на реляционной базе данных, который используется для извлечения и работы с данными в реляционной базе данных.

3. История нереляционных баз данных

С появлением веб-сайтов Web2.0 реляционные базы данных становятся доступными при работе с веб-сайтами Web2.0, особенно с чисто динамическими веб-сайтами Web2.0 с большими объемами данных и SNS с высоким уровнем параллелизма (службы социальных сетей, то есть службы социальных сетей). Существует множество проблем. которые трудно решить, например, задача «три-хай».

(1)Высокая производительность — высокие требования к одновременному чтению и записи для базы данных.

Веб-сайты Web2.0 будут генерировать динамические страницы и предоставлять динамическую информацию в режиме реального времени на основе персонализированной информации пользователя, поэтому статическая технология динамических страниц не может быть использована. Таким образом, одновременная нагрузка на базу данных очень высока и обычно достигает более 10 000 запросов на чтение и запись в секунду. Реляционная база данных все еще едва может поддерживать десятки тысяч запросов, но если есть десятки тысяч запросов на запись данных, жесткий диск I0 больше не сможет этого выдержать. Для обычных веб-сайтов BBS часто существует большое количество одновременных запросов на запись данных.

(2)Огромное хранилище. Требования к эффективному хранению и доступу к большим объемам данных.

Веб-сайты социальных сетей, такие как Facebook и Friendfeed, каждый день генерируют большое количество динамической информации о пользователях. Например, Friendfeed будет генерировать не менее 250 миллионов пользовательских динамических данных в месяц. Для реляционных баз данных эффективность запросов очень низкая при выполнении SQL-запросов в таблице, содержащей 250 миллионов записей.

(3) Высокая масштабируемость и высокая доступность. Требования к высокой масштабируемости и высокой доступности баз данных.

В веб-архитектуре базу данных труднее всего масштабировать по горизонтали. Когда число пользователей и посещений системы приложений увеличивается с каждым днем, база данных не может просто увеличить свою производительность и нагрузочную способность путем добавления аппаратных и серверных узлов, таких как веб-сервисы. Особенно для некоторых веб-сайтов, которым необходимо предоставлять услуги 24 часа в сутки, обновления и расширения баз данных часто сопровождаются простоями в обслуживании и переносом данных, а рабочая нагрузка очень велика.

Реляционные и нереляционные базы данных имеют свои особенности и сценарии применения. Их тесное сочетание принесет новые идеи в разработку баз данных Web2.0. Пусть реляционные базы данных сосредоточатся на отношениях, а нереляционные — на хранении. Например, в среде базы данных MySQL, где чтение и запись разделены, часто используемые данные могут храниться в нереляционной базе данных для повышения скорости доступа.

4.Преимущества Redis

Он имеет чрезвычайно высокую скорость чтения и записи данных. Скорость чтения данных может достигать 110 000 раз в секунду, а скорость записи данных — до 81 000 раз в секунду.

Поддерживает расширенные типы данных, не только поддерживает простые данные типа «ключ-значение», но также поддерживает операции с типами данных, такие как строки, списки, хеши, наборы и упорядоченные наборы.

Поддерживает сохранение данных. Данные в памяти можно сохранить на диске и снова загрузить для использования при перезапуске.

Атомарный: все операции Redis являются атомарными.

Поддерживает резервное копирование данных, то есть резервное копирование данных в режиме master-salve.

Redis — это база данных на основе памяти, и кэширование — один из наиболее распространенных сценариев ее применения. Кроме того, общие сценарии приложений Redis также включают операции по получению последних N данных, ранжированию приложений, счетчикам приложений, отношениям хранения, системам анализа в реальном времени и ведению журналов.

2. Установка и оптимизация redis

1: Установка

[root@localhost ~]# systemctl stop firewalld //В экспериментальной среде отключение брандмауэра не имеет никакого эффекта. Не рекомендуется отключать его в производственной среде. Попробуйте добавить политику брандмауэра.

[root@localhost ~]# setenforce 0 //Выключите ядро, которое заблокирует запуск приложения.

[root@localhost ~]# yum -y install gcc* zlib-devel //Загрузите инструменты, необходимые для распаковки tar-пакета

[root@localhost ~]#tar xvzf redis-4.0.9.tar.gz //redis — бесплатное приложение с открытым исходным кодом. Вы можете скачать этот пакет с официального сайта.

[root@localhost ~]#компакт-диск redis-4.0.9/

[root@localhost redis-4.0.9]# сделать

Уведомление:

При создании может появиться следующее сообщение об ошибке:

Решение 1. Используйтесделать MALLOC=libc указывает распределитель памяти для libcкомпилировать

Решение 2: очистить && make distclean

[root@localhost redis-4.0.9]# make PREFIX=/usr/local/redis install

[root@localhost ~]# ln -s /usr/local/redis/bin/* /usr/local/bin/

[root@localhost redis-4.0.9]# cd /root/redis-4.0.9/utils/

[root@localhost утилиты]# ./install_server.sh

Примечание:

Файл конфигурации: /etc/redis/6379.conf //Путь к файлу конфигурации

Файл журнала: /var/log/redis_6379.log //Путь к файлу журнала

Каталог данных: /var/lib/redis/6379 //Путь к файлу данных

Исполняемый файл: /usr/local/redis/bin/redis-server //путь к исполняемому файлу

Исполняемый файл Cli: /usr/local/redis/bin/redis-cli //Инструмент командной строки клиента

2. Просмотрите процесс

[root@localhost утилиты]# netstat -anpt | grep redis

3: Сервисный контроль

[root@localhost ~]#/etc/init.d/redis_6379 остановить

[root@localhost ~]#/etc/init.d/redis_6379 запуск

[root@localhost ~]#/etc/init.d/redis_6379 перезапуск

[root@localhost ~]#/etc/init.d/redis_6379 статус

4: Изменение параметров конфигурации

[root@localhost ~]#vim /etc/redis/6379.conf

привязать 127.0.0.1 192.168.10.101    //Прослушиваем адрес хоста

порт 6379 //порт

демонизировать да //Включаем процесс демона

pid-файл /var/run/redis_6379.pid //Указываем PID-файл

уведомление на уровне журнала //уровень журнала

файл журнала /var/log/redis_6379.log //Указываем файл журнала

[root@localhost~]#/etc/init.d/redis_6379 перезапустить

[root@localhost утилиты]# netstat -anpt | grep redis

3. Командный инструмент Redis

Ø redis-server: инструмент для запуска Redis;

Ø redis-benchmark: используется для определения эффективности работы Redis на этом компьютере;

Ø redis-check-aof: восстановить файл сохранения AOF;

Ø redis-check-rdb: восстановление файлов сохранения RDB;

Redis-cli: инструмент командной строки Redis.

1: инструмент командной строки redis-cli

(1) Подключитесь к локальному Redis

[root@localhost ~]# redis-cli

127.0.0.1:6379>

(2) Проверьте, запущена ли служба Redis.

127.0.0.1:6379> пинг

ПОНГ

(3) Удаленное подключение

[root@localhost ~]#redis-cli -h 192.168.10.101 -p 6379

2: Получить помощь

Ø помощь@<group> :Получать<group> список команд в ;

Ø помощь<command> : Получить помощь по команде;

Ø помощь<tab> : Получите список тем, которые могут помочь.

Примечание:

Ø помощь<tab> : Получите список тем, которые могут помочь.

После ввода справки нажмите клавишу табуляции.

(1)Просмотр всех команд, связанных с типом данных List

127.0.0.1:6379&gt;помощь @list

(2)Просмотр справки по команде set

127.0.0.1:6379&gt;набор справки

3: инструмент тестирования redis-benchmark

redis-benchmark — это официальный инструмент тестирования производительности Redis, который позволяет эффективно проверять производительность сервисов Redis.

Ø -h: указать имя хоста сервера;

Ø -p: указать порт сервера;

Ø -s: указать сокет сервера;

Ø -c: укажите количество одновременных подключений;

Ø -n: укажите количество запросов;

Ø -d: указать размер данных значения SET/GET в байтах;

Ø -k:1=оставить в живых 0=переподключиться;

Ø -r: SET/GET/INCR использует случайные ключи, SADD использует случайные значения;

Ø -P: Передача по трубам<numreq> просить;

Ø -q: принудительно выйти из Redis. Отображаются только значения запроса/сек;

Ø --csv: вывод в формате CSV;

Ø -l: создать цикл и постоянно выполнять тест;

Ø -t: запускать только список тестовых команд, разделенных запятыми;

Ø-I: режим ожидания. Откройте только N простаивающих соединений и подождите.

(1) Производительность тестового запроса

[root@localhost ~]#redis-benchmark -h 192.168.10.101 -p 6379 -c 100 -n 100000 //Отправляем 100 одновременных подключений и 100000 тестов запросов на сервер Redis с IP-адресом 192.168.10.101 и портом 6379.

Примечание:

Ø -h: указать имя хоста сервера;

Ø -p: указать порт сервера;

Ø -c: укажите количество одновременных подключений;

Ø -n: укажите количество запросов;

====== MSET (10 клавиш) ======

100000 запросов выполнено за 1,02 секунды

100 параллельных клиентов ##100 одновременных подключений

3 байта полезной нагрузки

оставить в живых: 1

87,25% &lt;= 1 миллисекунда ##87.25% времени выполнения команд меньше или равно 1 миллисекунде

99,90% &lt;= 2 миллисекунды

100.00% &lt;= 2 миллисекунды

97943.19 запросов в секунду #Количество запросов в секунду

(2) Проверка производительности доступа

[root@localhost ~]#redis-benchmark -h 192.168.10.101 -p 6379 -q -d 100

Примечание:

Ø -h: указать имя хоста сервера;

Ø -p: указать порт сервера;

Ø -d: указать размер данных значения SET/GET в байтах;

Ø -q: принудительно выйти из Redis. Отображаются только значения запроса/сек;

PING_INLINE: 121506.68 запросов в секунду //Сколько операций PING выполняется в секунду

PING_BULK: 124378,11 запросов в секунду

SET: 121654.50 запросов в секунду //Сколько раз в секунду выполняется ввод ключа SET

GET: 122100.12 запросов в секунду //Сколько значений ключа GET выполняется в секунду

INCR: 118764.84 запросов в секунду //Сколько атомных отсчетов выполняется в секунду

LPUSH: 112612,61 запросов в секунду

RPUSH: 118623,96 запросов в секунду

LPOP: 107874,87 запросов в секунду

RPOP: 114416.48 запросов в секунду

SADD: 123304.56 запросов в секунду

HSET: 122249,38 запросов в секунду

SPOP: 128040,97 запросов в секунду

LPUSH (необходимо для оценки LRANGE): 116686,12 запросов в секунду

LRANGE_100 (первые 100 элементов): 40016.00 запросов в секунду

LRANGE_300 (первые 300 элементов): 11991,85 запросов в секунду

LRANGE_500 (первые 450 элементов): 7381,71 запросов в секунду

LRANGE_600 (первые 600 элементов): 5230,67 запросов в секунду

MSET (10 ключей): 92421,44 запросов в секунду //Несколько клавиш v в секундулауэКоличество запросов

(3)Установить и lpush производительность операции

[root@localhost ~]# redis-benchmark -t set,lpush -n 100000 -q //Проверьте производительность службы Redis на этом компьютере во время операций set и lpush.

Примечание:

Ø -n: укажите количество запросов;

Ø -q: принудительно выйти из Redis. Отображаются только значения запроса/сек;

Ø -t: запускать только список тестовых команд, разделенных запятыми;

SET: 121951.22 запросов в секунду

LPUSH: 127226,46 запросов в секунду

4. Редис Общие команды базы данных

Ø набор: Сохранение данных. Основной формат команды. установить ключевое значение

Ø получать: Получить данные. Основной формат команды: получить ключ

1ключ Связанные команды

существовать Редис в базе данных, с ключ Соответствующие команды в основном включают следующее.

1) добавить пары ключ-значение

использовать ключи Команда может принимать список значений ключей, соответствующих правилам. Обычно ее можно комбинировать.* ,? варианты использования.

127.0.0.1:6379>набор к1 1

ХОРОШО

127.0.0.1:6379>набор к2 2

ХОРОШО

127.0.0.1:6379>набор к3 3

ХОРОШО

127.0.0.1:6379>набор v1 4

ХОРОШО

127.0.0.1:6379>набор v5 5

ХОРОШО

(2) Просмотр всех ключей в текущей базе данных.

127.0.0.1:6379>КЛЮЧИ  *  

1) «учитель»

2) "к1"

3) "к2"

4) "к3"

5) "v1"

6) "v5"

127.0.0.1:6379>набор v22 5

ХОРОШО

(3) Просмотрите текущую базу данных с помощью в данные в начале

127.0.0.1:6379>КЛЮЧИ v*    

1) "v1"

2) "v5"

3) "v22"

(4) Просмотрите текущую базу данных с помощью в Содержит любой бит данных после начала

127.0.0.1:6379>КЛЮЧИ v?   

1) "v1"

2) "v5"

(5) Просмотрите текущую базу данных с помощью в начало в Содержит любые две цифры данных после начала

127.0.0.1:6379>КЛЮЧИ v??   

1) "v22"

2:существует

существует Команда может определить, существует ли значение ключа.

127.0.0.1:6379>существует учитель

(целое число) 1

Результат 1, что означает учитель ключ существует

127.0.0.1:6379>существует чай

(целое число) 0

Результат 0, что означает чай ключ не существует

3:удалить

дель Команда может удалить указанный ключ

127.0.0.1:6379>ключи *

1) «учитель»

2) "v1"

3) "v22"

4) "к3"

5) "к1"

6) "к2"

7) "v5"

127.0.0.1:6379> дель v5

(целое число) 1

127.0.0.1:6379>получить v5

(ноль)

4:тип

использовать тип Команду можно получить ключ соответствующий ценить тип значения

127.0.0.1:6379>тип к1

нить

Примечание:

Типы данных, поддерживаемые Redis

  • Строка: самый простой тип, обычный набор и получение, используемый для кэширования значений ключей.
  • Хэш: структура, похожая на карту. Как правило, структурированные данные, такие как объект, можно кэшировать в Redis.
  • Список: список — это упорядоченный список. Вы можете использовать список для хранения некоторых структур данных типа списка, таких как списки поклонников, списки комментариев к статьям и т. д.
  • Set: Set — это неупорядоченная коллекция, которая автоматически удаляет дубликаты.
  • Сортированный набор: Сортированный набор — это отсортированный набор, который дедуплицируется, но может быть отсортирован. При записи выставляется оценка и автоматически сортируется в соответствии с ней.

5:переименовать

переименовать Команда предназначена для существующего ключ переименовывать

В реальных условиях рекомендуется использовать существует Команда для просмотра цели ключ существует, а затем решить, выполнять ли переименовать команда, чтобы избежать перезаписи важных данных

127.0.0.1:6379>ключи v*

1) "v1"

2) "v22"

127.0.0.1:6379>переименовать v22 v2

ХОРОШО

127.0.0.1:6379>ключи v*

1) "v1"

2) "v2"

127.0.0.1:6379>получить v1

"4"

127.0.0.1:6379>получить v2

"5"

127.0.0.1:6379>переименовать v1 v2

ХОРОШО

127.0.0.1:6379>получить v1

(ноль)

127.0.0.1:6379>получить v2

"4"

6:переименовать

переименовать Функция команды заключается в изменении существующего ключ Выполните переименование и проверьте, существует ли новое имя.

использоватьпереименовать При переименовании команды, если цель ключ Если он существует, он не будет переименован.

127.0.0.1:6379>ключи *

1) «учитель»

2) "к3"

3) "к1"

4) "к2"

5) "v2"

127.0.0.1:6379>получить учителя

"чжанлун"

127.0.0.1:6379>получить v2

"4"

127.0.0.1:6379>учитель renamenx v2

(целое число) 0

127.0.0.1:6379>ключи *

1) «учитель»

2) "к3"

3) "к1"

4) "к2"

5) "v2"

127.0.0.1:6379>получить учителя

"чжанлун"

127.0.0.1:6379>получить v2

"4

7:размер_базы_данных

размер_базы_данных Цель команды — просмотр текущей базы данных ключ Количество.

127.0.0.1:6379> размер_базы_данных

(целое число) 5

5. Общие команды для нескольких баз данных

1: Переключение между несколькими базами данных

Редис Включено по умолчанию без каких-либо изменений 16 база данных, имя базы данных — это число 0-15 быть названным по порядку

(1)Переключиться на серийный номер 10 база данных

127.0.0.1:6379>выберите 10

ХОРОШО

(2)Переключиться на серийный номер 15 база данных

127.0.0.1:6379[10]>выберите 15

ХОРОШО

(3)Переключиться на серийный номер 0 база данных

127.0.0.1:6379[15]>выбрать 0

2. Перемещение данных между несколькими базами данных

Редис Несколько баз данных в определенной степени относительно независимы, например, в базе данных 0 Магазин выше к1 данные, в прочем 1-15 Его невозможно просмотреть в базе данных.

127.0.0.1:6379>набор к1 100

ХОРОШО

127.0.0.1:6379>получить k1

"100"

127.0.0.1:6379>выберите 1

ХОРОШО

127.0.0.1:6379[1]>получить k1

(ноль)

127.0.0.1:6379[1]>выбрать 0 //Переключиться на целевую базу данных 0

ХОРОШО

127.0.0.1:6379>получить k1 //Проверьте, существуют ли целевые данные

"100"

127.0.0.1:6379>ход k1 1 //база данных 0 середина к1 Переместить в базу данных 1 середина

(целое число) 1

127.0.0.1:6379>выберите 1 //Переключиться на целевую базу данных 1

ХОРОШО

127.0.0.1:6379[1]>получить k1 //Просмотр перемещенных данных

"100"

127.0.0.1:6379[1]> выбрать 0

ХОРОШО

127.0.0.1:6379> получить k1 //в базе данных 0 Невозможно просмотреть в к1 ценить

(ноль)

3. Очистите данные в базе данных.

Чтобы очистить текущие данные базы данных, используйте FLUSHDB

Реализация команды; очистить все данные базы данных, использовать ФЛАШОЛЛ Реализация команды

6. Постоянство Redis

Редис Все данные хранятся в памяти, а затем время от времени асинхронно сохраняются на диск.(Это называетсяПолупостоянный режим”); Вы также можете записать каждое изменение данных в файл. добавить только файл(aof)в(Это называетсяПолный режим сохранения”)

Поскольку данные Redis хранятся в памяти, если постоянство не настроено,Редис После перезагрузки все данные теряются.Поэтому необходимо включитьРедис Функция сохранения сохраняет данные на диск. Редис После перезагрузки данные можно восстановить с диска.Редис Для обеспечения устойчивости предусмотрены два метода: один РБДRedisБаза Данных Настойчивость (принцип состоит в том, чтобы РидыВремя ведения журнала базы данных в памяти свалка на диск РБД настойчивость), другой АОФтолько добавить файлНастойчивость (принцип состоит в том, чтобы Риды Журнал работы записывается в файл в виде приложения).

1:РБД и АОФ Разница

(1) Что такое РБД?

Метод по умолчанию

Сохранение RDB — это процесс создания моментального снимка текущих данных процесса и сохранения его на жестком диске. Процесс запуска сохранения RDB делится на запуск вручную и автоматический запуск.

Механизм триггера: Ручной триггер соответствует командам save и bgsave соответственно.

Команда save: блокирует текущий сервер Redis до завершения процесса RDB. Для экземпляров с большим объемом памяти это приведет к блокировке по времени. Не рекомендуется использовать в онлайн-среде.

Команда bgsave: процесс Redis выполняет операцию разветвления (функцию, используемую для создания процесса) для создания дочернего процесса. Процесс сохранения RDB отвечает за дочерний процесс и автоматически завершается после завершения. Блокировка происходит только во время фазы форка.

(2) Преимущества и недостатки РБД:

Преимущества РБД:

RDB — это компактный сжатый двоичный файл, представляющий собой снимок данных Redis на определенный момент времени. Он очень подходит для резервного копирования, полного копирования и других сценариев. Например, выполняйте резервное копирование bgsave каждые 6 часов и копируйте файл RDB на удаленный компьютер или в файловую систему для аварийного восстановления.

Redis загружает RDB и восстанавливает данные намного быстрее, чем метод AOF.

Недостатки РБД:

Данные в режиме RDB не могут сохраняться в режиме реального времени или сохраняться на втором уровне. Потому что каждый раз, когда запускается bgsave, выполняется операция ветвления для создания дочернего процесса, а это тяжелая операция, и стоимость частого выполнения слишком высока.

Файлы RDB сохраняются в определенном двоичном формате. В процессе развития версий Redis существует несколько форматов версий RDB. Возникла проблема: старая версия службы Redis несовместима с новой версией формата RDB.

2. Что такое АОФ?

Постоянство AOF (только добавление файла): записывайте каждую команду записи в независимый журнал, а затем повторно выполните команду в файле AOF, чтобы восстановить данные при перезапуске. Основная функция AOF — решение проблемы сохранения данных в реальном времени. Сейчас это основное направление сохранения Redis.

Критерии выбора между двумя:

Пожертвуйте некоторой производительностью в обмен на более высокую согласованность кэша (АОФ),

Если операции записи выполняются часто, не включайте резервное копирование в обмен на повышение производительности и ждите операций вручную. сохранять когда, сделай резервную копию еще раз(РБД

Примечание:

Если после перезапуска Redies необходимо загрузить постоянный файл, будут выбраны файлы AOF.

Если сначала включен RDB, а затем включен AOF и сначала сохраняется RDB, содержимое файла RDB будет перезаписано AOF.

3:Редис Конфигурация персистентности

(1)РБД Конфигурация персистентности

[root@localhost ~]# vim /etc/redis/6379.conf

Откройте 6379.conf После файла выполните поиск сохранять, вы можете увидеть информацию о конфигурации, как показано ниже.

  • Ø save 900 1: Через 900 секунд (15 минут), если изменится хотя бы 1 ключ, сделать дамп снимка памяти.
  • Ø save 300 10: Через 300 секунд (5 минут), если поменялось хотя бы 10 ключей, сделать дамп снимка памяти.
  • Ø save 60 10000: Через 60 секунд (1 минуту), если было изменено не менее 10 000 ключей, сделайте дамп снимка памяти.
  • dbfilename dump.rdb: имя файла RDB ##254 строка
  • dir /var/lib/redis/6379: путь к файлу RDB ##264 строка
  • rdbcompression yes: сжимать ли строку ##242.

(2)АОФ Конфигурация персистентности

существовать Редис В файле конфигурации есть три метода синхронизации:

  • addonly yes: включить сохранение AOF (по умолчанию нет) ##673 строка
  • Appendfilename "appendonly.aof ": имя файла AOF ##677 строка
  • # appendfsync всегда
  • appendfsync каждую секунду
  • # appendfsync нет

всегда: синхронное сохранение, каждый раз, когда данные изменяются, они немедленно записываются на диск

Everysec: рекомендуется по умолчанию, асинхронная запись каждую секунду (значение по умолчанию).

нет: нет синхронизации, решение о том, как синхронизироваться, остается на усмотрение операционной системы.

  • aof-load-truncated да ##769行

Игнорировать последнюю потенциально проблемную инструкцию.

[root@localhost ~]#/etc/init.d/redis_6379 перезапуск

(2) Переписывание AOF

чтобы решить АОФ Если размер файла продолжает увеличиваться, пользователи могут сообщить об этом в Редис отправлять BGREWRITEAOFЗаказ.BGREWRITEAOF Команда будет удалена через АОФ избыточные команды в файле для переопределения (переписатьАОФфайл, сделать АОФ Сохраняйте размер файла как можно меньшим.

127.0.0.1:6379&gt; bgrewriteaof

Фоновое добавление только перезапись файла началась

# Когда журнал BGREWRITEAOF,еслинет-appendfsync-on-rewriteУстановите значение «да», что означает, что новые операции записи не будут синхронизироваться с fsync, а будут лишь временно сохраняться в буфере. , чтобы избежать конфликтов операций ввода-вывода с диска, перед записью дождитесь завершения перезаписи. По умолчанию в Redis нет.

нет-appendfsync-on-rewrite нет

# Когда текущий размер файла AOF в два раза превышает размер файла AOF во время последней перезаписи журнала, выполняется операция BGREWRITEAOF.

авто-аоф-перезапись-процент 100

Примечание:

100 относится кКоэффициент роста файла AOF относится к коэффициенту роста текущего файла AOF по сравнению с последней перезаписью.100 - это дважды

#Минимальное значение текущего файла AOF для выполнения команды BGREWRITEAOF, чтобы избежать частого использования BGREWRITEAOF из-за небольшого размера файла при первом запуске Reids.

авто-аоф-перезапись-мин-размер 64мб

7. Управление производительностью

1: просмотр информации о памяти

192.168.9.236:7001> информационная память

Used_memory:1210776 #Размер используемой памяти,в байтах
Used_memory_human:1.15M # Отображение с единицей измерения,в М
Used_memory_rss:7802880 # Сколько памяти занимает Redis с точки зрения операционной системы?
Used_memory_rss_human:7.44M # Отображение с блоком
maxmemory:1073741824 # Максимальный размер памяти
maxmemory_human:1.00G # Дисплей с устройством

2: Стратегия переработки

maxmemory-политика: Стратегия переработки

Ø летучий-lru: Это позволяет Редис Выберите наименее использованный из всего набора данных. ключ Удалить

Ø volatile-ttlУстранить по сроку действия ключа 

Ø изменчиво-случайный: Случайный выбор данных для исключения из коллекции данных с установленным сроком годности;

Ø allkeys-lru:использовать ЛРУ Алгоритмы исключают данные из всех наборов данных;

Ø всеключи-случайно: Случайный выбор данных для исключения из сбора данных;

Ø нетвыселение: отключить удаление данных (значение по умолчанию).

Примечание:

Установите срок действия ключа

истекает v1 10

v1 имеет срок действия 10 секунд.

Примечание:

когда Редис Необходимо восстановить один из-за нехватки памяти ключ час,Редис Первое, что необходимо учитывать, — это не перерабатывать самые старые данные, а те, которые использовались реже всего. ключ или срок действия истекает ключ Выберите один случайным образом из ключ, удалено из набора данных

8. Установите пароль для Redis

1: Метод настройки

Способ 1. Установите пароль через файл конфигурации redis.conf.

Найдите ключевое слово requirepass, за которым следует пароль. По умолчанию оно закомментировано, то есть пароль по умолчанию не требуется, как показано ниже:

Откройте комментарий, установите его в качестве своего пароля и перезапустите.

Способ 2. Установить пароль по имени

Используйте redis-cli для подключения к Redis и выполните следующую команду

набор конфигураций requirepass 123456

После завершения выполнения перезагрузка не требуется. Вам нужно будет ввести пароль при выходе из клиента и повторном входе.

2. Способ подключения

1. Введите пароль при подключении

[root@localhost bin]# ./redis-cli -a 123456

2. Сначала подключитесь, а затем введите пароль.

[root@localhost bin]# ./redis-cli127.0.0.1:6379&gt; аутентификация 123456

3: Метод закрытия

[root@localhost bin]# ./redis-cli -a 123456 выключение

4: Разница

1) Пароль, установленный путем изменения файла конфигурации, вступит в силу навсегда; пароль, установленный с помощью этой команды, вступит в силу временно и станет недействительным после перезапуска.

2) Для изменения пароля, установленного в файле конфигурации, требуется перезагрузка, чтобы вступить в силу после выхода из системы и повторного входа в систему, и после перезапуска он станет недействительным;

3) Приоритет команды выше приоритета файла конфигурации