В предыдущем статье я рассказал, как можно установить Redis на операционную систему Linux. Сегодня я вкратце расскажу — что такое Redis, какие типы данных существует, как и где данные хранятся, будем выполнять базовые операции.
Что такое Redis
Redis — это высокопроизводительная key-value хранилище данных. Все данные хранятся в оперативной памяти. Также, по мере необходимости данные дублируются на физический носитель. После сбоев или перезагрузки сервера Redis читать данные с диска. Используя Redis, мы получаем хранилище данных, которые хранятся в оперативной памяти, и после сбоев или перезагрузки сервера мы не теряем эти данные.
Сохранение данных на физический диск можно настроить двумя способами:
- через определенный промежуток времени он сохранял данные на диск;
- после определенное количество атомарных изменений он сохранял данные на диск.
Redis обладает такими возможностями и механизмы, как журналирование, снимки, поддержка работы с такими данными, для каждого из которых существует свой набор команд, транзакции, неблокирующая master-slave репликация на несколько узлов, подтяжка использование нескольких БД, с возможностью атомарного переноса ключей между ними, Pipeline (отправка на выполнение набора команд и отложенное получение ответа).
Типы данных Redis
- Строки (String) — Базовый тип данных Redis. Строки в Redis бинарно-безопасны, могут использоваться так же как числа.
- Списки (List) — Классические списки строк, упорядоченные в порядке вставки, которая возможна как со стороны головы, так и со стороны хвоста списка.
- Множества (Set) — Множества строк в математическом понимании: не упорядочены, поддерживают операции вставки, проверки вхождения элемента, пересечения и разницы множеств.
- Хеш-таблицы (Hash) — Классические хеш-таблицы или ассоциативные массивы.
- Упорядоченные множества (Sorted Sets) — Упорядоченное множество отличается от обычного тем, что его элементы упорядочены по особому параметру «score».
Обычно стандартные key-value хранилищи позволяют работать только с ключами. Но Redis нарушает эти принципы. Для каждого типа содержимое у него своя логика работы и набор команд.
Redis и Node.js — Модуль Redis для Node.js
Для работы с Redis v Node.js нам нужно установить модуль redis:
npm install redis
А теперь, давайте подключаем модуль и начнем работу с ним.
// Подключаем модуль const redis = require("redis"); // Создаем клиента const client = redis.createClient(); // Выбираем базу данных client.select(0, ( ) => { client.on("error", (err) => { console.log("Error " + err); }); // ....... client.quit( ); });
После подключение модуля и создание redis-клиента мы выбрали базу данных — 0. Но в данном случае это лишний шаг, по умолчанию используется база 0.
После выбора базы данных можно работать с Redis — записать данные в базу, получить и удалить данные с базы.
const redis = require("redis"); const client = redis.createClient(); client.select(0, ( ) => { client.on("error", (err) => { console.log("Error " + err); }); // Запись данных client.set("string_key", "string value", redis.print); // Получение данных client.get("string_key", (err, data) => { if(err) console.log(err); console.log(data); }); client.quit( ); });
С помощью метода set объекта client записать данные в виде «Ключ — Значение», а с помощью метода get мы получаем данные по ключу.
Также, мы можем удалить данные по ключу с помощью метода del:
client.del("string_key", (err) => { if(err) console.log(err); });
Данный модуль поддерживает все команды Redis. Например, мы с помощью одной команды можем одновременно работать с множеством ключей и значение.
client.mset( "string_key_1", "string value 1", "string_key_2", "string value 2", "string_key_3", "string value 3", "string_key_4", "string value 4", (err, result) => { if(err) console.log(err); console.log(result); } );
В следующем статье я покажу, как на Node.js можно создать модель для Redis.
Комментарии