Исходный код вики Механизмы

Редактировал(а) Alexandr Fokin 2023/12/16 14:13

Скрыть последних авторов
Alexandr Fokin 5.1 1 |(% style="width:170px" %)[[Параллелизм>>doc:Разработка.NET.C#.Многопоточность и асинхронность.Параллелизм.WebHome]]|(% style="width:668px" %)Для входящих запросов используется 1 процесс и 1 поток. Базовые операции являются атомарными.|
Alexandr Fokin 1.15 2 |(% style="width:170px" %) |(% style="width:668px" %) |
Alexandr Fokin 1.14 3 |(% style="width:170px" %)Конвейер
Alexandr Fokin 1.15 4 Pipelining|(% style="width:668px" %)(((
Alexandr Fokin 1.17 5 Механизм, позволяющий накопить несколько команд, а потом отправить их одним запросом, чтобы оптимизировать сетевое взаимодействие.
Alexandr Fokin 1.15 6
7 !В отличии от транзакции допускается, что во время выполнения группы команд, может быть выполнена команда из другого соединения.
8 )))|Redis pipelining
Alexandr Fokin 1.14 9 [[https:~~/~~/redis.io/docs/manual/pipelining/>>https://redis.io/docs/manual/pipelining/]]
Alexandr Fokin 1.6 10 |(% style="width:170px" %)Транзакции|(% style="width:668px" %)(((
Alexandr Fokin 1.13 11
Alexandr Fokin 1.6 12 )))|(((
Alexandr Fokin 12.1 13 [[Транзакции>>Разработка.Базы данных.NoSQL.Ключ-значение структура.Redis.Механизмы.Транзакции.WebHome]]
Alexandr Fokin 1.2 14 )))
Alexandr Fokin 1.4 15 |(% style="width:170px" %)Срок жизни|(% style="width:668px" %)Управление истечение ключа можно задать только на уровне всего элемента. (Т.е. нельзя удалить отдельный элемент List/Set/Hash и др., а только весь набор целиком).|
Alexandr Fokin 1.2 16 |(% style="width:170px" %)Постоянное хранение.
Alexandr Fokin 1.7 17 Persistent|(% style="width:668px" %)(((
Alexandr Fokin 1.9 18 |(% style="width:139px" %) |(% style="width:304px" %) |(% style="width:207px" %)
19 |(% style="width:139px" %)Snapshots|(% style="width:304px" %)Полный снимок оперативной памяти.
20 Есть блокирующий (без копирования) и неблокирующий (с копированием) режимы.
21 Также используется в механизме репликации.|(% style="width:207px" %)
22 |(% style="width:139px" %)AOF 
23 (Append Only File)|(% style="width:304px" %)Запись всех команд в файл.
Alexandr Fokin 6.1 24 Требует периодической оптимизации для уменьшения размера файла.|(% style="width:207px" %)[[File sync ~~| FSync>>Хостинг.Операционные системы.Механизмы.File sync | FSync.WebHome]] частота сброса буфера на носитель.
Alexandr Fokin 5.2 25 [[Event sourcing>>doc:Архитектура и модели.Группа\. Архитектурные подходы.Event sourcing.WebHome]]
Alexandr Fokin 1.7 26 )))|Redis persistence
27 [[https:~~/~~/redis.io/docs/manual/persistence/>>https://redis.io/docs/manual/persistence/]]
Alexandr Fokin 11.1 28 |(% style="width:170px" %)[[Lua>>path:/bin/view/%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0/%D0%94%D1%80%D1%83%D0%B3%D0%BE%D0%B5/Lua/]] скрипты|(% style="width:668px" %) |[[Lua скрипт API>>doc:Разработка.Базы данных.NoSQL.Ключ-значение структура.Redis.Механизмы.Lua скрипт API.WebHome]]
Alexandr Fokin 1.2 29 |(% style="width:170px" %) |(% style="width:668px" %) |
30 |(% style="width:170px" %)Channel
31 Pub/Sub|(% style="width:668px" %)(((
32 Реализация модели издатель/подписчик.
Alexandr Fokin 1.3 33 После подключения к канаду клиент будет получать все сообщения, поступающие на канал (сообщения никак не распределяются между клиентами).
34 На стороне Redis выделяется буфер для хранения сообщений, еще не обработанных всеми клиентами. Если клиент сильно отстает в обработке сообщений (заполняя буфер), то он может быть отключен.
Alexandr Fokin 1.2 35
36 Каналы являются глобальными для ноды приложения, не вложены в пространство какой-либо базы данных.
37 )))|Redis Pub/Sub
38 [[https:~~/~~/redis.io/docs/manual/pubsub/>>url:https://redis.io/docs/manual/pubsub/]]
39 |(% style="width:170px" %) |(% style="width:668px" %) |
Alexandr Fokin 13.1 40 |(% style="width:170px" %)[[Кластер>>doc:Разработка.Базы данных.Механизмы.Кластер.WebHome]]|(% style="width:668px" %)(((
Alexandr Fokin 14.1 41 |(% style="width:265px" %)Асинхронная [[Репликация ~~| Replication>>Разработка.Базы данных.Механизмы.Кластер.Репликация | Replication.WebHome]]|(% style="width:384px" %)(((
Alexandr Fokin 1.11 42 master-slaves
43
44 Распределяет нагрузку операций чтения.
45 Повышает отказоустойчивость.
46 )))
Alexandr Fokin 1.18 47 |(% style="width:265px" %) |(% style="width:384px" %)
Alexandr Fokin 1.11 48 )))|Redis replication
Alexandr Fokin 1.9 49 [[https:~~/~~/redis.io/docs/manual/replication/>>https://redis.io/docs/manual/replication/]]
Alexandr Fokin 1.2 50
Alexandr Fokin 1.14 51 ----
52
53 pipelining vs transaction in redis
54 [[https:~~/~~/stackoverflow.com/questions/29327544/pipelining-vs-transaction-in-redis>>https://stackoverflow.com/questions/29327544/pipelining-vs-transaction-in-redis]]
55
56 Redis Cluster - transaction vs LUA script, which one results in a better performance?
57 [[https:~~/~~/stackoverflow.com/questions/33625749/redis-cluster-transaction-vs-lua-script-which-one-results-in-a-better-perform>>https://stackoverflow.com/questions/33625749/redis-cluster-transaction-vs-lua-script-which-one-results-in-a-better-perform]]
58
59 Redis: Pipelining, Transactions and Lua Scripts
60 [[https:~~/~~/rafaeleyng.github.io/redis-pipelining-transactions-and-lua-scripts>>https://rafaeleyng.github.io/redis-pipelining-transactions-and-lua-scripts]]
Alexandr Fokin 1.16 61
62 Шпаргалка по Redis
63 [[https:~~/~~/habr.com/ru/post/204354/>>https://habr.com/ru/post/204354/]]