Redis — HackerX https://hackerx.ru Блог о программировании, СУБД, сетях и алгоритмах. Уроки и статьи по разным языкам программирования Wed, 11 Jul 2018 07:15:23 +0000 ru-RU hourly 1 https://wordpress.org/?v=4.9.8 Использование Redis в Node.js https://hackerx.ru/redis-%d0%b8-node-js/ https://hackerx.ru/redis-%d0%b8-node-js/#respond Mon, 30 Jan 2017 17:27:01 +0000 https://hackerx.ru/?p=385 В предыдущем статье я рассказал, как можно установить Redis на операционную систему Linux. Сегодня я вкратце расскажу — что такое Redis, какие типы данных существует, как и где данные хранятся, будем выполнять базовые операции. Что такое Redis Redis — это высокопроизводительная key-value хранилище данных. Все данные хранятся в оперативной памяти. Также, по мере необходимости данные дублируются на физический носитель. После сбоев или перезагрузки сервера Redis читать […]

The post Использование Redis в Node.js appeared first on HackerX.

]]>
В предыдущем статье я рассказал, как можно установить Redis на операционную систему Linux. Сегодня я вкратце расскажу — что такое Redis, какие типы данных существует, как и где данные хранятся, будем выполнять базовые операции.

Что такое Redis

Redis — это высокопроизводительная key-value хранилище данных. Все данные хранятся в оперативной памяти. Также, по мере необходимости данные дублируются на физический носитель. После сбоев или перезагрузки сервера Redis читать данные с диска. Используя Redis, мы получаем хранилище данных, которые хранятся в оперативной памяти, и после сбоев или перезагрузки сервера мы не теряем эти данные.

Сохранение данных на физический диск можно настроить двумя способами:

  1. через определенный промежуток времени он сохранял данные на диск;
  2. после определенное количество атомарных изменений он сохранял данные на диск.

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.

The post Использование Redis в Node.js appeared first on HackerX.

]]>
https://hackerx.ru/redis-%d0%b8-node-js/feed/ 0
Установка Redis на Linux Ubuntu 16.04 и 14.04 https://hackerx.ru/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-redis-%d0%bd%d0%b0-linux-ubuntu/ https://hackerx.ru/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-redis-%d0%bd%d0%b0-linux-ubuntu/#respond Sat, 21 Jan 2017 16:39:50 +0000 https://hackerx.ru/?p=371 Redis — это высокопроизводительная key-value хранилище данных. Он хранит данные в оперативной памяти. Redis разработан в 2009 году. Это NoSQL база данных, который позволяет хранить большие объемы данных. Redis поддерживает большое количество языков программирования. Redis можно использовать как и в качество основной базы данных, так и для хранение кэша. В отличие от Memcached, который может в любой момент удалить ваши данные, он хранит информацию […]

The post Установка Redis на Linux Ubuntu 16.04 и 14.04 appeared first on HackerX.

]]>
Redis — это высокопроизводительная key-value хранилище данных. Он хранит данные в оперативной памяти. Redis разработан в 2009 году. Это NoSQL база данных, который позволяет хранить большие объемы данных. Redis поддерживает большое количество языков программирования. Redis можно использовать как и в качество основной базы данных, так и для хранение кэша. В отличие от Memcached, который может в любой момент удалить ваши данные, он хранит информацию постоянно.

Настройки для установки Redis

В первую очередь нам нужно обновить все пакеты:

sudo apt-get update

После обновление пакетов нам нужно скачать и установить компилятор, который поможет установить Redis.

sudo apt-get install build-essential

И, наконец, нам нужно скачать tcl:

sudo apt-get install tcl8.5

Установка Redis

И так, приступаем к установке Redis. С официального сайта загружаем последнюю стабильную версию Redis:

wget http://download.redis.io/releases/redis-stable.tar.gz

После загрузки, нужно разархивировать архив и перейти в каталог:

tar xzf redis-stable.tar.gz
cd redis-stable

А сейчас нам нужно компилировать бинарные файлы Redis. Это делается с помощью команды make.

make

После компиляции, мы можем запустить тесты, чтобы убедиться, что все правильно скомпилировано:

make test

После выполнение тестов можно установить бинарные данные. Эта команда устанавливает Redis в масштабах всей системы:

sudo make install

После установки, нужно запустить Redis. Redis поставляется с скриптом, с помощью которого можно запустить программу.

Переходим в каталог utils:

cd utils

Из этого каталога запускаем установочный скрипт (Ubuntu / Debian):

sudo ./install_server.sh

После завершение работы скрипта, Redis будет работать в фоновом режиме. По умолчанию Redis запускается на порту 6379. Redis можно запустить и остановить с помощью этих команд:

sudo service redis_6379 start
sudo service redis_6379 stop

Можно получить доступ к базе данных с терминала с помощью этой команды:

redis-cli

У хранилище данных Redis есть очень много настроек. В следующем статье я расскажу о самых важных настроек и об обеспечение безопасности данных. Также, можете узнать, как можно использовать Redis в Node.js.

The post Установка Redis на Linux Ubuntu 16.04 и 14.04 appeared first on HackerX.

]]>
https://hackerx.ru/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-redis-%d0%bd%d0%b0-linux-ubuntu/feed/ 0