185.74K

Лекция4

1.

Введение в Redis
Структуры данных
Команды Redis

2.

Введение в Redis
Redis (Remote Dictionary Server) – это
нереляционная структура данных в памяти,
используемая в качестве базы данных.
Данные в Redis хранятся в виде пары
ключ-значение.
Карл Сегуин. Маленькая книга о Redis (The Little MongoDB Book)

3.

Структуры данных Redis
Строки (Strings). Строки в Redis бинарно-безопасны,
могут использоваться так же как числа.
Хеш-таблицы (Hashes). Классические хеш-таблицы или
ассоциативные массивы.
Множества (Sets). Не упорядоченное множество строк,
поддерживают операции вставки, проверки вхождения
элемента, пересечения и разницы множеств.
Упорядоченные множества (Sorted Sets). Отличается от
обычного множества тем, что его элементы упорядочены
по особому параметру «score».
Списки (Lists). Классические списки строк,
упорядоченные в порядке вставки, которая возможна
как со стороны головы, так и со стороны хвоста списка.

4.

Начало работы в redis
1. Разархивируйте скачанный архив с базой данных Redis
2.
3.
4.
5.
Запустите сервер (из папки 64bit): redis-server.exe
Запустите клиента: redis-cli.exe
Все команды запускаем в консоли клиента.
Установите базу данных командой: select 1
Все базы данных в redis устанавливаются под номерами
(от 0 до 15).

5.

Строки (Strings)
Строки хранятся в виде пар: ключ-значение.
SET – установка ключа и его значения, с
дополнительными необязательными
параметрами для указания срока действия
записи значения ключа.
SET name "Mila"
SET age 21 ex 5

6.

Строки (Strings)
GET – получение значения, связанного с
ключом. Если запись значения ключа
превысила срок действия, будет возвращено
nil.
GET name

7.

Строки (Strings)
EXISTS – проверка, существует ли что-то с
данным ключом. Возвращает 1 если объект
существует или 0 если нет.
EXISTS age

8.

Строки (Strings)
GETSET – возвращает текущее значение и
устанавливает новое. Используется для
атомарного управления данными.
SET favorite:colors "white black"
GETSET favorite:colors "yellow green blue"
GET favorite:colors
GETSET favorite:food "pizza burger chips"

9.

Строки (Strings)
DEL – удаление ключа и соответствующего
значения.
DEL favorite:food
FLUSHDB – удаление всех данных (значений и
ключей) из текущей базы данных, в которой
вы находитесь.
FLUSHALL – удаление всех данных (значений и
ключей) в текущем сеансе.

10.

Строки (Strings)
APPEND – добавление в соответствующий
ключ дополнительного значения.
Возвращается количество символов итогового
значения.
SET person1:hobby "game"
APPEND person1:hobby " sport"
GET person1:hobby
-- "game sport"

11.

Строки (Strings)
KEYS – возвращает все ключи из базы данных
по указанному шаблону.
KEYS *
-- 1) "hobby"
-- 2) "color"
KEYS col*
-- 1) "color"

12.

Строки (Strings)
INCR / DECR – увеличение/уменьшение
значения на 1 (для числовых данных).
SET myscore 70
INCR myscore
-- (integer) 71
INCR myscore
-- (integer) 72
DECR myscore
-- (integer) 71

13.

Строки (Strings)
RENAME – переименование ключей.
RENAME name1 name2
GET name1
-- (nil)
GET name2
-- "bar"

14.

Строки (Strings)
Операции со строками
strlen key – длина строки
getrange key k1 k2 – вывод символов строки с
k1 по k2
append key another_string – добавление
строки в указанный ключ

15.

Хеши (Hashes)
Хеши во многом похожи на строки. Важным
отличием является то, что они предоставляют
дополнительный уровень адресации данных –
поля (fields).
HSET – запись объекта в хеш-таблицу.
HSET user1 name "Eva"
HSET user1 age 10

16.

Хеши (Hashes)
Вывод значений:
HGET user1 name
-- "Eva"
HGETALL user1
-- 1) "name"
-- 2) "Eva"
-- 3) "age"
-- 4) 10

17.

Хеши (Hashes)
HSET users:child1 name Eva
Установка и вывод нескольких множеств:
HMSET users:child1 age 5 place Zolushka
HMGET users:child1 place age
HGETALL users:child1
Вывод и удаление ключей:
HKEYS users:child1
HDEL users:child1 age

18.

Списки (Lists)
Списки позволяют хранить и манипулировать
массивами значений для заданного ключа.
Списки сохраняют порядок своих значений и имеют
эффективные операции с использованием индексов.
LPUSH / RPUSH – добавление элементов в список
(в начало /в конец списка).

19.

Списки (Lists)
LPUSH subject chemistry
RPUSH subject biology
LPUSH subject math
LPUSH subject informatics
LRANGE subject 0 -1 //вывод всего списка
LLEN subject //количество элементов в списке
Укорачиваем список:
LTRIM subject 0 2
LRANGE subject 0 5 //вывод списка с 0 индекса по 5
LSET subject 2 phisics //меняем значение первого элемента

20.

Множества (Sets)
Множества используются для хранения
уникальных значений и предоставляют набор
операций – таких, как объединение.
Множества не упорядочены, но предоставляют
эффективные операции со значениями.

21.

Множества (Sets)
SADD – запись множества
SADD myanimals pet1
SADD myanimals pet2
SADD myanimals pet3
SMEMBERS myanimals
-- 1) "pet1"
-- 2) "pet2"
-- 3) "pet3"

22.

Множества (Sets)
SADD friend_animals pet1 pet3
Пересечения множеств:
SINTER friend_animals myanimals
-- 1) "pet3"
-- 2) "pet1“
Сохраняем результат под новым ключом:
SINTERSTORE friend_animals myanimals

23.

Упорядоченные множества (Sorted Sets)
ZADD – для записи упорядоченного
множества.
ZADD cities 157 Khabarovsk
ZADD cities 31 Novosibirsk
ZRANGE cities 0-1
1) "Novosibirsk"
2) "Khabarovsk"

24.

Команды Redis
https://redis.io/commands/

25.

Лабораторная работа 5
1. Сохраните в хеш-таблицы объекты,
хранящие имена персон и их электронную
почту.
2. Выведите объекты на экран.
3. Добавьте новую персону.
4. Сохраните имена персон во множествах
(sets).
5. Выведите сведения о персонах используя
множества.
English     Русский Правила