Redis — это база данных NOSQL, в которой данные хранятся в парах ключ-значение.
Redis хранит данные в основной памяти, что означает, что он быстрый, но энергозависимый, в отличие от систем баз данных, таких как PostgreSQL, которые хранят данные на диске.
В приложении с сервером и базой данных доступ к информации в базе данных приведет к задержке.
Базы данных «ключ-значение», такие как Redis, часто хранятся перед этими базами данных, и операции доступа выполняются в два этапа:
С помощью этих двух шагов и учитывая, что основная память имеет меньшую задержку, чем диск, мы можем сказать, что Redis можно использовать для хранения и доступа к частым, последним данным и дорогостоящим операциям, тем самым делая приложения в 10–50 раз быстрее.
Таким образом, фактом является то, что если вы вообще собираетесь создавать приложение, которое будет масштабируемым в будущем, Redis(или базы данных, подобные Redis) незаменим.
Является ли Redis открытым исходным кодом?: Да, Redis — это открытый исходный код со специальным типом лицензии, но есть альтернативы, такие как KeyDB от Snapchat и Memcached, которые имеют открытый исходный код. KeyDB — это форк Redis, но на данный момент он может работать только в Linux.
Поддерживает ли Redis Windows?: Нет, Redis не поддерживает Windows, но вы можете установить WSL/Ubuntu и установить Redis, используя
sudo apt install redis
redis-server --port 6000
где 6000 — это порт вашего локального сервера, на котором вы хотите его запустить. (т.е. 127.0.0.1:6000).
Большинство проблем связано с тем, что порт по умолчанию, который использует redis-server, уже используется
В Linux установить Redis так же просто, как
sudo apt install redis
или на Mac:
brew install redis
Вам необходимо иметь 2 экземпляра вашего терминала на
на первом сервере, на котором запускается ваш сервер
redis-server -port
а на втором — запустить клиент
redis-cli
При создании веб-приложения вам не нужно запускать клиент , но сервер должен быть запущен
Концепции Redis
В Redis есть 3 основные концепции, которые вы должны понимать или 4
Все остальные структуры данных в основном являются усовершенствованной реализацией первой
Под списком я имел в виду массив, а не связанный список, и именно так его называет Redis.
Пары «ключ-значение» — это распространенная структура данных в большинстве языков программирования.
В Python это называется словарями или dict короче
В Javascript это называется Карты
В C# это называется Словари
В Redis существует 6 основных операций для пар ключ-значение
Операции | Пояснения | Примеры | Дальнейшее объяснение |
---|---|---|---|
НАБОР | Создает пару ключ-значение | УСТАНОВИТЬ имя Джон | Назначает ключ для сопоставления со значением |
ПОЛУЧАТЬ | Получает значение ключа | Получить имя | Это возвращает Джона |
УДАЛ | Удаляет пару ключ-значение | имя DEL | При этом имя пары ключ-значение будет удалено из базы данных |
СУЩЕСТВУЕТ | Проверяет, существует ли ключ в базе данных Redis | СУЩЕСТВУЕТ имя | возвращает 1 или 0, соответствующее значению True или False |
СМЫТЬВОЛ | Очищает весь кэш | СМЫТЬВОЛ | более или менее похоже на DROP TABLE в postgres |
КЛЮЧИ * | Возвращает все ключи в базе данных | КЛЮЧИ * |
Существуют также операции, основанные на времени. В операциях, основанных на времени, ключ находится в кеше только в течение заданного периода времени, по истечении этого времени кеш удаляет ключ.
Существует 2 основные операции, основанные на времени
Операции | Пояснения | Примеры | Дальнейшее объяснение |
---|---|---|---|
ИСТЕЧЕНИЕ | Срок действия ключа истекает после определения | EXPIRE имя 10 | Удаляет имя значения ключа через 10 секунд. Ключ должен быть определен с помощью SET перед вызовом EXPIRE. Распространенной альтернативой является: |
СЕТЕКС | Срок действия ключа истекает после определения | SETEX возраст 30 15 лет | Устанавливает возраст ключа на значение 30, а затем удаляет пару ключ-значение через 15 секунд |
TTL | Время жить | Возраст TTL | Возвращает время, оставшееся до удаления ключа возраста. |
Блог стал слишком длинным, я буду говорить о списках, наборах, хэш-картах, а также возможных вопросах для интервью о Redis в другом блоге.
Пожалуйста, если у вас есть вопросы, задавайте их в комментариях ниже, я постараюсь на них ответить ⭐. Удачного кодирования
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3