Введение в Redis
Redis — это однопоточная база данных с открытым исходным кодом, работающая в памяти и используемая для кэширования, брокера сообщений и потокового механизма. Это самое популярное хранилище данных типа «ключ-значение». Она предоставляет такие структуры данных, как строки, хэши, списки, множества, отсортированные множества, растровые изображения и многое другое.
Redis был создан в начале 2009 года итальянским разработчиком по имени Сальваторе Санфилиппо. Он написан на языке C и лицензирован под BSD.
Установить Redis
- Установка на Ubuntu
В ubuntu мы можем установить Redis, используя официальный APT-репозиторий packages.redis.io.
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt-get update
sudo apt-get install redis
- Установить на Mac
На Mac мы можем использовать менеджер пакетов brew.
brew install redis
Redis для Javascript
В мире Javascript есть несколько пакетов, которые позволят нам подключиться к Redis, вот лишь некоторые из них:
- Node-Redis
- ioredis
- node-resque
- connect-redis
Сейчас мы будем использовать Node-Redis. Одним из преимуществ клиента node-Redis является то, что он автоматически ставит в очередь все команды, которые мы отправляем до того, как соединение будет готово.
Чтобы установить Node-Redis —
npm install redis
У нас установлен пакет Node-Redis, мы можем импортировать его в наш проект.
const redis = require('redis');
Для подключения к Redis нам нужен клиент. Для создания клиента Redis мы будем использовать функцию createClient из Redis, которая принимает объект Redis Host и Port.
const client = redis.createClient(
{
host: process.env.REDIS_HOST,
port: process.env.REDIS_PORT
}
);
если Redis установлен на локальной системе, то хостом Redis будет localhost, а портом Redis — 6379.
Теперь, когда клиент создан, мы можем подключиться к Redis с помощью функции connect.
client.on('connect', () => {
console.log('connected to redis');
});
client.on('error', (err) => {
console.log('error: ', err);
});
client.connect();
Здесь client.on используется для проверки того, подключен Redis или нет.
Redis: Hello word
Для написания этой простой задачи Hello word мы будем использовать команды GET и SET из Redis. Другие команды Redis
Команда SET — команда SET помещает ключ и значение в базу данных Redis. если ключ уже существует в базе данных, она перезаписывает существующее значение независимо от его типа. она возвращает ‘OK’, если ключ и значение успешно добавлены в базу данных Redis.
Команда Redis
SET mykey "Hello"
код javascript
client.set('name', 'vinayak').then((res) => {
console.log('res: ', res);
}).catch((err) => {
console.log('err: ', err);
});
ВЫХОД
res: OK
Команда GET — Команда GET извлекает значение по заданному ключу и возвращает nil, если ключ не существует.
GET mykey
код javascript
client.get('name').then((reply) => {
console.log(reply);
});
ВЫХОД
vinayak
С помощью этих двух команд мы напишем нашу первую программу на javascript
const redis = require('redis');
require('dotenv').config();
const client = redis.createClient(
{
host: process.env.REDIS_HOST,
port: process.env.REDIS_PORT
}
);
client.on('connect', () => {
console.log('connected to redis');
});
client.on('error', (err) => {
console.log('error: ', err);
});
client.connect();
client.set('name', 'vinayak').then((res) => {
console.log('res: ', res);
}).catch((err) => {
console.log('err: ', err);
});
client.get('name').then((reply) => {
console.log(reply);
});
client.quit();
OUTPUT
connected to redis
res: OK
vinayak