Галерея диаграмм связей Редис
Это интеллектуальная карта Redis. Основное содержание включает в себя: 8. Постоянство Redis, 7. Транзакции Redis, 6. Публикация и подписка, 2. Запуск, 1. Установка Redis 7.0, 5. Файл конфигурации Redis, 4. Данные Redis. тип, 3. Команды, связанные с ключом Redis (ключом).
Отредактировано в 2024-03-28 15:31:48Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
La gestion de projet est le processus qui consiste à appliquer des connaissances, des compétences, des outils et des méthodologies spécialisés aux activités du projet afin que celui-ci puisse atteindre ou dépasser les exigences et les attentes fixées dans le cadre de ressources limitées. Ce diagramme fournit une vue d'ensemble des 8 composantes du processus de gestion de projet et peut être utilisé comme modèle générique.
Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
Cent ans de solitude est le chef-d'œuvre de Gabriel Garcia Marquez. La lecture de ce livre commence par l'analyse des relations entre les personnages, qui se concentre sur la famille Buendía et raconte l'histoire de la prospérité et du déclin de la famille, de ses relations internes et de ses luttes politiques, de son métissage et de sa renaissance au cours d'une centaine d'années.
La gestion de projet est le processus qui consiste à appliquer des connaissances, des compétences, des outils et des méthodologies spécialisés aux activités du projet afin que celui-ci puisse atteindre ou dépasser les exigences et les attentes fixées dans le cadre de ressources limitées. Ce diagramme fournit une vue d'ensemble des 8 composantes du processus de gestion de projet et peut être utilisé comme modèle générique.
Редис
1. Установите Redis7.0.
1. Загрузите его в каталог opt;
https://redis.io/download/
2. Разархивируйте в каталог opt;
tar -zxvf redis-7.0.0.tar.gz
После декомпрессии
3. Войдите в каталог redis-7.0.11.
Установить gcc
ням, установи gcc-c
делать
сделать установку
Скриншот
4. Каталог установки по умолчанию.
/usr/локальный/бен
/usr/local в Linux аналогичен C:\Program Files в нашей системе Windows.
Проверять
redis-benchmark: инструмент тестирования производительности. Запустите эту команду после запуска службы, чтобы увидеть, как работает ваш ноутбук.
redis-check-aof: восстановить проблемные файлы AOF.
redis-check-dump: исправить проблемный файл dump.rdb
redis-cli: клиент, вход в операцию
redis-sentinel: используется кластером Redis
redis-server: команда запуска сервера Redis
5. Измените файл конфигурации redis.conf.
2. Старт
Введите каталог установки Redis по умолчанию.
redis-server: команда запуска сервера Redis
redis-cli: клиент, вход в операцию
Если пароль установлен: пароль аутентификации
Начать в фоновом режиме
Резервное копирование Redis.conf
демонизировать «нет» на «да»
[root@ecs-353138 redis-7.0.0]# redis-server ./redis.conf
Чтобы запустить Redis, вам необходимо указать файл конфигурации. Явного файла конфигурации не существует. Фактически, Redis по умолчанию читает внутренний файл конфигурации, а не redis.conf в каталоге установки.
закрытие
Завершение работы одного экземпляра: redis-cli -выключение по паролю
Выключение нескольких экземпляров: укажите выключение порта: redis-cli -p 6379 выключение
Удалить Редис
1. Остановите службу Redis.
2. Удалите файлы, связанные с Redis, в каталоге /usr/local/lib.
3. Команды, связанные с ключами Redis
ключи*
Просмотреть все ключи в текущей библиотеке
существует ключ
Определить, существует ли определенный ключ
введите ключ
Проверьте тип вашего ключа
дель ключ
Удалить указанные ключевые данные
ключ отвязки
Выберите неблокирующее удаление на основе значения
Команда Redis UNLINK очень похожа на команду DEL: используется для удаления указанного ключа. Как и в случае с DEL, если ключ не существует, он игнорируется. Однако эта команда выполняет фактическое освобождение памяти в потоке вне команды, поэтому она не блокируется, в отличие от DEL. Отсюда и название команды: команда UNLINK просто отключает ключ от пространства ключей. Фактическое удаление произойдет асинхронно позже.
срок действия ключа 10
10 секунд, установите срок действия данного ключа
ttl-ключ
Проверьте, сколько секунд осталось до истечения срока действия. -1 означает, что срок действия не истечет, а -2 означает, что срок действия истек.
выберите 0
Переключить базу данных
размер
Просмотр количества ключей в текущей базе данных
флешдб
Очистить текущую библиотеку
смыть
Убить все библиотеки
4. Тип данных Redis
Пять основных типов данных
нить
Введение
Строка — это самый простой тип Redis, и один ключ соответствует одному значению. Тип String является двоично-безопасным. Это означает, что строка Redis может содержать любые данные. Например, изображения в формате JPG или сериализованные объекты. Строковое значение в Redis может достигать 512M.
Общие команды
установить значение ключа NX
NX: если ключ не существует в базе данных, вы можете добавить значение ключа в базу данных. XX: Если ключ существует в базе данных, в базу данных можно добавить ключ-значение, что является взаимоисключающим с параметрами NX. EX: секунды тайм-аута ключа PX: тайм-аут ключа в миллисекундах, взаимоисключающий с EX.
Добавьте пары ключ-значение
получить ключ
Запросить соответствующее значение ключа
добавить значение ключа
Добавляет заданное значение в конец исходного значения
ключ Стрлен
Получить длину значения
значение ключа setnx
Установите значение ключа, только если ключ не существует.
ключ увеличения
Увеличьте числовое значение, хранящееся в ключе, на 1.
ключ декр
Уменьшите числовое значение, хранящееся в ключе, на 1.
Может работать только с числовыми значениями. Если оно пусто, новое значение будет 1 или -1.
Размер шага клавиш incrby/decrby
Увеличить или уменьшить числовое значение, хранящееся в ключе. Пользовательский размер шага
mset ключ1 значение1 ключ2 значение2
Установите одну или несколько пар ключ-значение одновременно
мгет ключ1 ключ2
Получите одно или несколько значений одновременно
msetnx ключ1 значение1 ключ2 значение2
Атомность: если один потерпит неудачу, то потерпят неудачу все.
Установите одну или несколько пар ключ-значение одновременно тогда и только тогда, когда все заданные ключи не существуют.
ключ getrange, начальная позиция, конечная позиция
Получить диапазон значений, аналогичный подстроке в Java, переднем пакете, заднем пакете.
Значение начальной позиции клавиши setrange
Перезаписать строковое значение, хранящееся в ключе, на значение, начиная с начальной позиции (индекс начинается с 0).
Значение срока действия ключа setex
При настройке значения ключа задайте срок действия в секундах.
значение ключа getset
Замените старое новым, установите новое значение и одновременно получите старое значение.
структура данных
Структура данных String — простая динамическая строка (SDS).
список
Введение
Один ключ с несколькими значениями, отсортированными в порядке вставки, позволяет добавить элемент в начало (слева) или хвост (справа) списка.
Общие команды
lpush / rpush ключ значение1 значение2
Вставьте одно или несколько значений слева/справа
лпоп/рпоп
Выдайте значение слева/справа. Значение находится в ключе, и значение находится в ключе.
rpopppush key1 key2
выдавите значение из правой части списка key1 и вставьте его в левую часть списка key2
клавиша диапазона, старт-стоп
lrange age 0–1, означает получить все
Получить элементы в соответствии с индексом (слева направо)
ключевой индекс Линдекса
Получить элементы в соответствии с индексом (слева направо)
Лен ключ
Получить длину списка
вставить ключ перед значением нового значения
Вставьте значение newvalue перед значением
lrem ключ n значение
Удалить n значений слева (слева направо)
lset значение индекса ключа
Замените значение, индекс которого является индексом в ключе списка, на значение.
структура данных
① Структура данных списка – QuickList. ② Во-первых, когда элементы списка малы, будет использоваться непрерывное хранилище в памяти. Эта структура представляет собой ziplist, который представляет собой сжатый список. ③ Если объем данных относительно велик, он будет изменен на быстрый список.
набор
Введение
Автоматическая дедупликация и Set представляют собой неупорядоченные коллекции строкового типа. Нижний уровень представляет собой хеш-таблицу с пустым значением. Сложность добавления, удаления и запроса составляет O(1).
Общие команды
грустное значение ключа1 значение2
Добавьте один или несколько элементов-членов в ключ коллекции. Существующие элементы-члены будут игнорироваться.
членский ключ
Получить все значения из набора
Значение ключа sismember
Определить, содержит ли заданный ключ значение, есть 1, нет 0
карточный ключ
Возвращает количество элементов в коллекции
средний возраст значение1 значение2
Удалить элемент из коллекции
выскочить ключ
выдать случайное значение из коллекции
ключ srandmember n
Случайным образом возьмите n значений из этого набора. не будет удален из коллекции
переместить исходное значение назначения
Переместить значение коллекции из одной коллекции в другую.
синтер ключ1 ключ2
Возвращает элемент пересечения двух коллекций.
солнечный ключ1 ключ2
Возвращает элементы объединения двух коллекций.
Sdiff ключ1 ключ2
Возвращает разностные элементы двух наборов (те, что в ключе 1, за исключением элементов в ключе 2).
структура данных
① Структура данных Set представляет собой словарь dict, словарь реализован с использованием хеш-таблицы. ② Внутренняя реализация HashSet в Java использует HashMap, но все значения указывают на один и тот же объект. То же самое относится и к заданной структуре Redis. Он также использует внутреннюю хэш-структуру, и все значения указывают на одно и то же внутреннее значение.
хэш
Введение
Хэш Redis — это набор пар ключ-значение, таблица сопоставления полей и значений строкового типа. Хэш особенно подходит для хранения объектов.
Общие команды
значение ключевого поля hset
Присвойте значение ключу поля в коллекции ключей.
hget ключевое поле
Получить значение из поля коллекции key1
hmset ключ1 поле1 значение1 поле2 значение2
Устанавливайте хэш-значения пакетно
ключевое поле hexists
Проверьте, существует ли данное поле поля в ключе хеш-таблицы.
ключ hkeys
Перечислить все поля этого хеш-набора
ключ hvals
Перечислить все значения хеш-набора
подсказка, приращение ключевого поля
Добавьте приращение 1-1 к значению поля поля в ключе хеш-таблицы.
Значение ключевого поля hsetnx
Установите значение поля поля в ключе хэш-таблицы равным значению тогда и только тогда, когда поле поля не существует.
структура данных
Существует две структуры данных, соответствующие типу Hash: ziplist (сжатый список) и hashtable (хеш-таблица). Если длина значения поля короткая и число небольшое, используйте ziplist, в противном случае используйте хеш-таблицу.
zset (заказной набор)
Введение
zset очень похож на обычный набор. Это строковая коллекция без повторяющихся элементов. Разница в том, что каждому члену упорядоченного набора присвоена оценка (score). Эта оценка (score) используется для сортировки от наименьшего значения. . Отсортируйте члены множества по наибольшему баллу. Члены набора уникальны, но результаты могут повторяться.
Общие команды
Ключ zadd значение1 значение1 значение2 значение2
Добавьте один или несколько элементов-членов и их значения оценок в ключ упорядоченного набора.
клавиша zrange, старт-стоп [WITHSCORES]
Возвращает элементы в ключе упорядоченного набора, индексы которых находятся между началом и остановкой. С помощью WithSCORES оценки и значения могут быть возвращены в набор результатов.
ключ zrangebyscore мин макс
Возвращает всех членов ключа отсортированного набора, значение оценки которых находится между минимальным и максимальным (в том числе равным минимальному или максимальному). Члены упорядоченного набора располагаются в порядке возрастания значения балла (от меньшего к большему).
ключ zrevrangebyscore, макс. мин.
Измените сортировку от большего к меньшему
значение приращения ключа цинкрби
Добавьте приращение к оценке элемента
ключевое значение zrem
Удалить элемент с указанным значением в коллекции
ключ zcount мин макс
Подсчитайте набор, количество элементов в интервале дроби
zrank ключевое значение
Возвращает ранг этого значения в наборе, начиная с 0.
структура данных
Хэш, функция хеша состоит в том, чтобы связать значение элемента и оценку веса, чтобы обеспечить уникальность значения элемента. Соответствующее значение оценки можно найти через значение элемента.
Список переходов Целью списка переходов является сортировка значений элементов и получение списка элементов в соответствии с диапазоном оценок.
Три расширенных типа данных
Растровые изображения
Сами по себе растровые изображения не являются типом данных, фактически это строка (ключ-значение), но они могут работать с битами строки.
Гиперлоглог
Redis HyperLogLog — это алгоритм, используемый для статистики мощности. Преимущество HyperLogLog заключается в том, что когда количество или объем входных элементов очень велико, пространство, необходимое для расчета мощности, всегда фиксировано и очень мало.
Геопространственный
ГЕО: Географический, аббревиатура географической информации. Этот тип представляет собой двумерные координаты элемента, то есть широту и долготу на карте. На основе этого типа Redis предоставляет общие операции, такие как настройка долготы и широты, запрос, запрос диапазона, запрос расстояния, хэш долготы и широты и т. д.
5. Файл конфигурации Redis
Конфигурация, связанная с сетью
связывать
По умолчанию привязка=127.0.0.1 может принимать запросы доступа только от этого компьютера.
защищенный режим
Установите режим защиты локального доступа на нет.
порт
Порт, по умолчанию 6379.
тайм-аут
Сколько секунд требуется для выключения неработающего клиента, 0 означает отключение этой функции. то есть никогда не закрываться
TCP-Keepalive
Единица измерения — секунды. Если установлено значение 0, обнаружение активности не будет выполняться. Рекомендуется установить значение 60.
Обнаружение пульса для доступа к клиентам один раз каждые n секунд.
ОБЩИЙобщий
демонизировать
Является ли это фоновым процессом (демоном), установите значение «да»
pid-файл
Место хранения файла pid. Каждый экземпляр создает отдельный файл pid.
уровень журнала
Для производственной среды выберите уведомление или предупреждение.
Укажите уровень ведения журнала. Redis поддерживает всего четыре уровня: отладка, подробный уровень, уведомление и предупреждение. По умолчанию используется уведомление.
журнальный файл
Имя файла журнала
базы данных 16
Установите количество библиотек. По умолчанию — 16. База данных по умолчанию — 0. Вы можете использовать команду SELECT <dbid>, чтобы указать идентификатор базы данных при соединении.
БЕЗОПАСНОСТЬБезопасность
Установка пароля
LIMITSлимиты
Максклиенты
Установите, к скольким клиентам Redis может подключаться одновременно.
По умолчанию — 10 000 клиентов.
Если этот предел достигнут, Redis отклонит новые запросы на подключение и ответит этим инициаторам запроса «максимальное количество достигнутых клиентов».
максимальная память
maxmemory-политика
maxmemory-образцы
6. Публикуйте и подписывайтесь
Что такое публикация и подписка?
Публикация и подписка Redis (pub/sub) — это модель передачи сообщений: отправитель (pub) отправляет сообщения, а подписчики (sub) получают сообщения.
Клиент подписывается на канал
Когда сообщение публикуется на этом канале, оно будет отправлено подписанному клиенту.
Реализация команды
Откройте клиент, чтобы подписаться на канал1.
подписаться на канал1
Откройте другой клиент и опубликуйте сообщение «Привет» на канале 1.
опубликовать канал 1, привет
Возвращенное число 2 — это количество подписок.
7. Транзакции Redis
1. Определение
Транзакция Redis — это отдельная изолированная операция: все команды в транзакции сериализуются и выполняются по порядку. Во время выполнения транзакции она не будет прерываться командными запросами, отправленными другими клиентами.
Основная функция транзакций Redis — последовательное соединение нескольких команд, чтобы предотвратить попадание других команд в очередь.
2. Мульти, Экс, сброс
① Начиная с ввода команды Multi, введенные команды будут последовательно вводиться в очередь команд, но не будут выполняться до тех пор, пока не будет введен Exec, и Redis будет последовательно выполнять команды из предыдущей очереди команд. ② В процессе формирования команды вы можете отказаться от формирования команды, отменив его.
Формирование команды прошло успешно, подача прошла успешно.
На этапе формирования команды была обнаружена ошибка, и подача заявки не удалась.
Формирование команды прошло успешно, а подача была успешной или неудачной.
3. Обработка ошибок транзакций
Если команда в очереди сообщает об ошибке, все очереди будут отменены во время выполнения.
Если на этапе выполнения для команды сообщается об ошибке, не будет выполняться только та команда, которая сообщила об ошибке, а остальные команды будут выполняться без отката.
4. Три характеристики транзакций Redis
отдельные карантинные операции
Все команды в транзакции сериализуются и выполняются последовательно. Во время выполнения транзакции она не будет прерываться командными запросами, отправленными другими клиентами.
Нет понятия уровня изоляции.
Команды в очереди не будут фактически выполняться до тех пор, пока они не будут отправлены, поскольку никакие инструкции не будут фактически выполнены до отправки транзакции.
Нет гарантии атомарности
Если команда в транзакции не может быть выполнена, последующие команды все равно будут выполняться без отката.
8. Постоянство Redis
RDB (база данных Redis)
Что это такое?
Запись снимка набора данных, находящегося в памяти, на диск в течение определенного интервала времени, который на жаргоне также называется снимком. При восстановлении файл снимка считывается непосредственно в память.
Как выполняется резервное копирование
Redis создаст (разветвит) дочерний процесс отдельно для сохранения. Сначала он запишет данные во временный файл. После завершения процесса сохранения этот временный файл будет использоваться для замены последнего сохраненного файла. В течение всего процесса основной процесс не выполняет никаких операций ввода-вывода, что обеспечивает чрезвычайно высокую производительность. Если требуется крупномасштабное восстановление данных и целостность восстановления данных не очень чувствительна, метод RDB более эффективен, чем метод AOF. . высокой эффективности. Недостатком RDB является то, что данные после последнего сохранения могут быть потеряны.
Вилка
Функция Fork — скопировать процесс, аналогичный текущему. Все данные (переменные, переменные среды, счетчик программ и т. д.) нового процесса имеют те же значения, что и исходный процесс, но это совершенно новый процесс и служит дочерним процессом исходного процесса.
В программе Linux fork() генерирует дочерний процесс, который точно такой же, как родительский процесс, но после этого дочерний процесс часто выполняет системные вызовы exec. Из соображений эффективности в Linux введена «технология копирования при записи».
Обычно родительский процесс и дочерний процесс используют один и тот же сегмент физической памяти. Только когда содержимое каждого сегмента в пространстве процесса изменяется, содержимое родительского процесса будет скопировано в дочерний процесс.
файл dump.rdb
Настройте имя файла в redis.conf, по умолчанию — dump.rdb.
Преимущество
Подходит для крупномасштабного восстановления данных.
Его лучше использовать, если требования к целостности и согласованности данных не высоки.
Экономьте место на диске
Быстрое восстановление
недостаточный
Резервное копирование создается через определенные промежутки времени в течение цикла резервного копирования, поэтому в случае неожиданного выхода Redis из строя все изменения после последнего моментального снимка будут потеряны.
Подведем итог
AOF (только добавление файла)
Что это такое?
Записывайте каждую операцию записи в виде журнала (инкрементное сохранение), записывайте все инструкции записи, выполняемые Redis (операции чтения не записываются), только добавляйте файлы, но не можете перезаписывать файлы, Redis будет читать в начале. Этот файл реконструирует данные. Другими словами, при перезапуске Redis инструкции записи будут выполняться спереди назад на основе содержимого файла журнала для завершения работы по восстановлению данных.
Процесс сохранения AOF
AOF не включен по умолчанию
AOF и RDB включены одновременно, кого слушает Redis?
AOF и RDB включены одновременно, и система принимает данные AOF по умолчанию (данные не будут потеряны)
Преимущество
Механизм резервного копирования более надежен, а вероятность потери данных ниже.
недостаточный
Занимает больше места на диске, чем RDB.
Восстановление резервных копий происходит медленнее.
Подведем итог