node_redis
node_redis — это современный, высокопроизводительный клиент Redis для Node.js. Он имеет более 3,658,902 недельных загрузок и встроенную поддержку всех команд Redis. Он использует исходные команды Redis со всеми заглавными буквами, а также версии этих команд с верблюжьей ладонью.
Примеры:
// Redis commands syntex
await client.SET('key', 'field', 'value');
await client.GET('key');
// camel cased commands
await client.rPush('key', 'value');
await client.lRange('key', from, to);
Установка node_redis на Javascript
npm i redis
Сопоставление типов данных в Javascript с типом Redis
Тип данных Javascript | Тип Redis |
---|---|
Строка | строка |
Массив строк | список |
Массив строк | набор |
Integer | число |
строка | float |
Объект | хэш |
Команда Redis с использованием node_redis
Команды хэширования
- HSET: Устанавливает строковое значение поля хэша.
Пример Redis
HSET id key "value"
Выход
OK
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.HSET('id', 'key', 'value').then((res) => {
console.log('Set key value : ', res);
client.quit();
});
Вывод
Redis Client Connected
Set key value : 0
- HGET: Получает значение хэш-поля, хранящегося по указанному ключу.
Пример Redis
HGET id key
Выход
value
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.get('key').then((res) => {
console.log('Get key value : ', res);
client.quit();
});
Вывод
Redis Client Connected
Get key value : value
- HMGET: Получает значения всех заданных хэш-полей.
Пример Redis
HMGET id key1 key2
Выход
1) "value"
2) "value1"
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.HMGET('id', ['key1', 'key2']).then((res) => {
console.log('Get key value : ', res);
client.quit();
});
Вывод
Redis Client Connected
Get key value : ['hello', 'world']
- HMSET: Устанавливает несколько хэш-полей в несколько значений.
Пример Redis
HMSET id key1 "Hello" key2 "World"
Вывод
OK
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.HSET('id', ['key1', 'hello', 'key2', 'world']).then((res) => {
console.log('Set key value : ', res);
client.quit();
});
Вывод
Redis Client Connected
Set key value : 1
- HDEL: Удаляет одно или несколько полей хэша.
Пример Redis
HDEL id key1
Выход
1
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.HDEL('id', 'key1').then((res) => {
console.log('Deleted key1 : ', res);
});
Вывод
Redis Client Connected
Deleted key1 : 1
- HEXISTS: Определяет, существует ли хэш-поле или нет.
Пример Redis
HEXISTS id key1
Выход
1
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.HEXISTS('id', 'key1').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
false
- HGETALL: Получает все поля и значения, хранящиеся в хэше.
Пример Redis
HGETALL id key1
Выход
1) "key"
2) "value"
3) "key2"
4) "world"
5) "numkey"
6) "10"
7) "floatkey"
8) "10.2"
9) "key1"
10) "value1"
11) "key11"
12) "value1"
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.HGETALL('id').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
[Object: null prototype] { key: 'value', key2: 'world' }
- HINCRBY: Увеличивает целочисленное значение хэш-поля на заданное число.
Пример Redis
HINCRBY id numkey 3
Вывод
6
HINCRBY id numkey 3
Выход
9
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.HSET('id', 'numkey', 9).then((res) => {
console.log('set numkey', res);
});
client.HINCRBY('id', 'numkey', 1).then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
set numkey 1
10
- HINCRBYFLOAT: Увеличивает float-значение хэш-поля на заданную величину.
Пример Redis
HINCRBYFLOAT id floatkey 0.5
Вывод
1
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.HSET('id', 'floatkey', 9.1).then((res) => {
console.log('set floatkey', res);
});
client.HINCRBYFLOAT('id', 'floatkey', 1.1).then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
set floatkey 1
10.2
- HKEYS: Получает все поля в хэше.
Пример Redis
HKEYS id
Вывод
1) "key"
2) "key2"
3) "numkey"
4) "floatkey"
5) "key1"
6) "key11"
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.HKEYS('id').then((keys) => {
console.log(keys);
client.quit();
});
Вывод
Redis Client Connected
['key', 'key2', 'numkey', 'floatkey', 'key1', 'key11']
- HLEN: Получает количество полей в хэше.
Пример Redis
HLEN id
Выход
4
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.HLEN('id').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
4
- HSETNX: Устанавливает значение хэш-поля, только если это поле не существует.
Пример Redis
HSETNX id key1 value1
Вывод
1
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.HSETNX('id', 'key1', 'value1').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
true
- HVALS: Получает все значения в хэше
Пример Redis
HVALS id
Вывод
1) "value"
2) "world"
3) "10"
4) "10.2"
5) "value1"
6) "value1"
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.HVALS('id').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
['value', 'world', '10', '10.2', 'value1', 'value1']
- HSCAN: Инкрементная итерация хэш-полей и связанных с ними значений.
Пример Redis
HSCAN id curser
HSCAN id 0
Вывод
1) "0"
2) 1) "key"
2) "value"
3) "key2"
4) "world"
5) "numkey"
6) "10"
7) "floatkey"
8) "10.2"
9) "key1"
10) "value1"
11) "key11"
12) "value1"
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.HSCAN('id', 0).then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
{
cursor: 0,
tuples: [
{ field: 'key', value: 'value' },
{ field: 'key2', value: 'world' },
{ field: 'numkey', value: '10' },
{ field: 'floatkey', value: '10.2' },
{ field: 'key1', value: 'value1' },
{ field: 'key11', value: 'value1' }
]
}
Команды списка
- BLPOP: Это блокирующая версия LPOP, поскольку она удаляет и получает первый элемент в списке или блокирует его до тех пор, пока он не станет доступен.
Пример Redis
BLPOP list1 list2 timeout
Выход
1) "list1"
2) "a"
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.BLPOP('mylist', 2).then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
{ key: 'mylist', element: 'three' }
- BRPOP: Удаляет и получает последний элемент в списке или блокирует его до тех пор, пока он не будет доступен.
Пример Redis
BRPOP list1 list2 timeout
Выход
1) "list1"
2) "hello"
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.BRPOP('mylist', 1).then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
null
- LINDEX: Получение элемента из списка по его индексу
Пример Redis
LINDEX mylist position
LINDEX mylist 0
Вывод
"hello"
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.LINDEX('mylist', 0).then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
nice
- LINSERT: Вставка элемента перед или после другого элемента в списке
Пример Redis
LINSERT mylist BEFORE "World" "There"
Вывод
3
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.LINSERT('mylist', 'BEFORE', 'nice', 'three').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
4
- LLEN: Получает длину списка
Пример Redis
LLEN mylist
Вывод
2
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.LLEN('mylist').then((length) => {
console.log(length);
client.quit();
});
Вывод
Redis Client Connected
4
- LPOP: Удаление и получение первого элемента в списке
Пример Redis
LPOP mylist
Вывод
"three"
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.LPOP('mylist').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
nice
- LPUSH: добавляет одно или несколько значений в список
Пример Redis
LPUSH mylist "hello"
Вывод
7
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.LPUSH('mylist', 'one').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
3
- LPUSHX: добавляет значение в список, только если список существует
Пример Redis
LPUSHX mylist "Hello"
Вывод
2
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.LPUSHX('mylist', 'value1').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
4
- LRANGE: Получение диапазона элементов из списка
Пример Redis
LRANGE mylist -3 2
Вывод
1) "one"
2) "two"
3) "three"
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.LRANGE('mylist', 0, -1).then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
['value1', 'one', 'world', 'hello']
- LREM: Удаление элементов из списка
Пример Redis
LREM mylist -2 "hello"
Вывод
2
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.LREM('mylist', 0, 'hello').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
1
- LSET: Устанавливает значение элемента в списке по его индексу.
Пример Redis
LSET mylist 0 "four"
Вывод
OK
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.LSET('mylist', 0, 'Hello').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
OK
- LTRIM: обрезает список до указанного диапазона
Пример Redis
LTRIM mylist 1 -1
Вывод
OK
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.LTRIM('mylist', 1, -1).then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
OK
- RPOP: Удаление и получение последнего элемента в списке
Пример Redis
RPOP mylist
Выход
hello
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.RPOP('mylist').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
hello
- RPOPLPUSH: Удаляет последний элемент списка, добавляет его в другой список и возвращает.
Пример Redis
RPOPLPUSH mylist myotherlist
Вывод
world
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.RPOPLPUSH('mylist', 'myotherlist').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
world
- RPUSH: добавляет одно или несколько значений в список
Пример Redis
RPUSH mylist "hello"
Вывод
1
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.RPUSH('mylist', 'hello').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
1
- RPUSHX: добавляет значение в список, только если список существует, и возвращает длину списка.
Пример Redis
RPUSHX mylist "world"
Вывод
2
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.RPUSHX('mylist', 'world').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
2
Команды установки
- SADD: Добавляет один или несколько членов в набор
Пример Redis
SADD myset "Hello"
Вывод
1
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.SADD('myset', 'Hello').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
1
- SCARD: Получает количество членов в наборе
Пример Redis
SCARD myset
Выход
1
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.SCARD('myset').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
1
- SDIFF: Вычитание нескольких множеств
Пример Redis
SDIFF key1 key2
Вывод
1) "a"
2) "b"
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.SADD('key1', 'a', 'b', 'c', 'e').then((res) => {
console.log(res);
client.SADD('key2', 'a', 'b', 'd').then((res) => {
console.log(res);
client.SDIFF('key1', 'key2').then((res) => {
console.log(res);
client.quit();
});
});
});
Вывод
1
1
['a']
- SDIFFSTORE: Вычитает несколько наборов и сохраняет полученный набор в ключе.
Пример Redis
SDIFFSTORE key1 key2
Вывод
2
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.SADD('key1', 'a', 'b', 'c', 'e').then((res) => {
console.log(res);
client.SADD('key2', 'a', 'b', 'd').then((res) => {
console.log(res);
client.SDIFFSTORE('key1', 'key2').then((res) => {
console.log(res);
client.quit();
});
});
});
Вывод
Redis Client Connected
1
1
1
- SINTER: пересекает несколько множеств
Пример Redis
SINTER key1 key2
Вывод
1
1
['a']
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.SADD('key1', 'a', 'b', 'c', 'e').then((res) => {
console.log(res);
client.SADD('key2', 'a', 'b', 'd').then((res) => {
console.log(res);
client.SINTER('key1', 'key2').then((res) => {
console.log(res);
client.quit();
});
});
});
Вывод
Redis Client Connected
1
1
['a']
- SINTERSTORE: Пересекает несколько множеств и сохраняет полученное множество в ключе.
Пример Redis
SINTERSTORE key key1 key2
Вывод
1
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.SADD('key1', 'a', 'b', 'c', 'e').then((res) => {
console.log(res);
client.SADD('key2', 'a', 'b', 'd').then((res) => {
console.log(res);
client.SINTERSTORE('key1', 'key2').then((res) => {
console.log(res);
client.quit();
});
});
});
Вывод
Redis Client Connected
1
1
1
- SISMEMBER: Определяет, является ли данное значение членом множества
Пример Redis
SISMEMBER myset "one"
Вывод
1
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.SISMEMBER('myset', 'one').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
false
- SMEMBERS: Получает все члены в наборе
Пример Redis
SMEMBERS myset
Выход
1) "Hello"
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.SMEMBERS('myset').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
['Hello']
- SMOVE: Перемещение члена из одного набора в другой
Пример Redis
SMOVE myset myotherset "two"
Вывод
1
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.SADD('key6', 'a', 'b', 'c', 'e').then((res) => {
console.log(res);
client.SADD('key5', 'a', 'b', 'd', 'x').then((res) => {
console.log(res);
client.SMOVE('key5', 'key6', 'e').then((res) => {
console.log(res);
client.quit();
});
});
});
Вывод
1
1
true
- SPOP: Удаляет и возвращает случайный член из множества.
Пример Redis
SPOP myset
Вывод
three
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.SPOP('myset').then((reply) => {
console.log(reply);
client.quit();
});
Вывод
Redis Client Connected
Hello
- SRANDMEMBER: Получает один или несколько случайных членов из набора
Пример Redis
SRANDMEMBER myset -5
Выход
1) "s"
2) "w"
3) "s"
4) "a"
5) "a"
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.SRANDMEMBER('myset', -5).then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
a
- SREM: Удаление одного или нескольких членов из набора
Пример Redis
SREM myset "a"
Вывод
1
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.SREM('myset', 'a').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
1
- SUNION: Добавляет несколько наборов
Пример Redis
SUNION key1 key2
Вывод
1) "a"
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.SUNION('key1', 'key2').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
['a']
- SUNIONSTORE: Складывает несколько наборов и сохраняет полученный набор в ключе.
Пример Redis
SUNIONSTORE key key1 key2
Вывод
5
Пример JavaScript
const redis = require('redis');
const client = redis.createClient();
client.on('error', (err) => console.log('Redis Client Error', err));
client.on('connect', () => console.log('Redis Client Connected'));
client.connect();
client.SUNIONSTORE('key', 'key1', 'key2').then((res) => {
console.log(res);
client.quit();
});
Вывод
Redis Client Connected
1