Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемДиана Изотова
1 Ключ-значение
2 Обзор лекции 1.Ключ-значение 2. Колоночные 3.Документо-ориентированные 4. Графовые 2
3 1. Базы данных типа «ключ- значение» ( ) 3
4 Свойства баз «ключ-значение» Простейшее NoSQL хранилище, быстрая запись, но доступ только к одной ячейке Хранит хэш-таблицу ключей, где каждый ключ связан с непрозрачным бинарным объектом Легко горизонтально масштабируется, не поддерживает другие типы данных Идеально для приложений с большими массивами простых данных Варианты использования: значения датчиков, изменение курсов акций, кэширование, результаты промежуточной обработки. Пример: Redis, Amazon DynamoDB 4
5 Redis – хранилище «ключ- значение» Ключи в Redis бинарно-безопасные (binary safe) строки. Слишком длинные ключи плохая идея, не только из-за занимаемой памяти, но так же и в связи с увеличением времени поиска определенного ключа в множестве в связи с дорогостоящим сравнением. Хорошая идея придерживаться схемы при построении ключей: «object-type:id:field». «Шпаргалка по Redis» 5
6 Redis. Информация API: Tons of languages, Written in: C, Concurrency: in memory and saves asynchronous disk after a defined time. Append only mode available. Different kinds of fsync policies. Replication: Master / Slave, Misc: also lists, sets, sorted sets, hashes, queues. Cheat-Sheet: cheatsheet-v1.pdfhttp://masonoise.files.wordpress.com/2010/03/redis- cheatsheet-v1. pdf Slides Admin UI 6
7 Типы данных Redis Строки (strings). Базовый тип данных Redis. Строки в Redis бинарно-безопасны, могут использоваться так же как числа, ограничены размером 512 Мб. Списки (lists). Классические списки строк, упорядоченные в порядке вставки, которая возможна как со стороны головы, так и со стороны хвоста списка. Максимальное количество элементов Множества (sets). Множества строк в математическом понимании: не упорядочены, поддерживают операции вставки, проверки вхождения элемента, пересечения и разницы множеств. Максимальное количество элементов Хеш-таблицы (hashes). Классические хеш-таблицы или ассоциативные массивы. Максимальное количество пар «ключ-значение» Упорядоченные множества (sorted sets). Упорядоченное множество отличается от обычного тем, что его элементы упорядочены по особому параметру «score». Структуры данных, используемые в Redis 7
8 Операции Redis Cоздание, выборка, модификация, удаление и базовая информация об объектах. set test:1:string "my binary safe string" get test:1:string getset test:1:string "other value set test:1:vlaue "487 rename test:1:vlaue test:1:value exists test:1:value del test:1:value keys test:1:* 8
9 Операции Redis 2 Время жизни redis :6379> ttl test:1:string > expire test:1:string 6000 Списки rpush test:1:messages "Hello, world!« lrange test:1:messages 0 2 llen test:1:messages lpop test:1:messages 9
10 Транзакции в Redis MULTI начать запись команд для транзакции. EXEC выполнить записанные команды. DISCARD удалить все записанные команды. WATCH команда, обеспечивающая поведение типа «check-and-set» (CAS) транзакция выполняется только в случае, если другие клиенты не изменили значение переменной. Иначе EXEC не выполнит записанные команды. 10
SUBSCRIBE messages Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "messages" 3) " title="Pub/Sub, сообщения в Redis redis 127.0.0.1:6379> SUBSCRIBE messages redis 127.0.0.1:6379> PUBLISH messages "Hello world!" (integer) 1 redis 127.0.0.1:6379> SUBSCRIBE messages Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "messages" 3) " class="link_thumb"> 11 Pub/Sub, сообщения в Redis redis :6379> SUBSCRIBE messages redis :6379> PUBLISH messages "Hello world!" (integer) 1 redis :6379> SUBSCRIBE messages Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "messages" 3) (integer) 1 1) "message" 2) "messages" 3) "Hello world!" 11 SUBSCRIBE messages Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "messages" 3) "> SUBSCRIBE messages Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "messages" 3) (integer) 1 1) "message" 2) "messages" 3) "Hello world!" 11"> SUBSCRIBE messages Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "messages" 3) " title="Pub/Sub, сообщения в Redis redis 127.0.0.1:6379> SUBSCRIBE messages redis 127.0.0.1:6379> PUBLISH messages "Hello world!" (integer) 1 redis 127.0.0.1:6379> SUBSCRIBE messages Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "messages" 3) ">
12 Репликация в Redis 12 Клиент Мастер Слейв Чтение Слейв Запись Чтение
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.