Исходный код вики Механизмы
Версия 12.1 от Alexandr Fokin на 2023/12/16 14:11
Скрыть последних авторов
| author | version | line-number | content |
|---|---|---|---|
| |
5.1 | 1 | |(% style="width:170px" %)[[Параллелизм>>doc:Разработка.NET.C#.Многопоточность и асинхронность.Параллелизм.WebHome]]|(% style="width:668px" %)Для входящих запросов используется 1 процесс и 1 поток. Базовые операции являются атомарными.| |
| |
1.15 | 2 | |(% style="width:170px" %) |(% style="width:668px" %) | |
| |
1.14 | 3 | |(% style="width:170px" %)Конвейер |
| |
1.15 | 4 | Pipelining|(% style="width:668px" %)((( |
| |
1.17 | 5 | Механизм, позволяющий накопить несколько команд, а потом отправить их одним запросом, чтобы оптимизировать сетевое взаимодействие. |
| |
1.15 | 6 | |
| 7 | !В отличии от транзакции допускается, что во время выполнения группы команд, может быть выполнена команда из другого соединения. | ||
| 8 | )))|Redis pipelining | ||
| |
1.14 | 9 | [[https:~~/~~/redis.io/docs/manual/pipelining/>>https://redis.io/docs/manual/pipelining/]] |
| |
1.6 | 10 | |(% style="width:170px" %)Транзакции|(% style="width:668px" %)((( |
| |
1.13 | 11 | |
| |
1.6 | 12 | )))|((( |
| |
12.1 | 13 | [[Транзакции>>Разработка.Базы данных.NoSQL.Ключ-значение структура.Redis.Механизмы.Транзакции.WebHome]] |
| |
1.2 | 14 | ))) |
| |
1.4 | 15 | |(% style="width:170px" %)Срок жизни|(% style="width:668px" %)Управление истечение ключа можно задать только на уровне всего элемента. (Т.е. нельзя удалить отдельный элемент List/Set/Hash и др., а только весь набор целиком).| |
| |
1.2 | 16 | |(% style="width:170px" %)Постоянное хранение. |
| |
1.7 | 17 | Persistent|(% style="width:668px" %)((( |
| |
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" %)Запись всех команд в файл. | ||
| |
6.1 | 24 | Требует периодической оптимизации для уменьшения размера файла.|(% style="width:207px" %)[[File sync ~~| FSync>>Хостинг.Операционные системы.Механизмы.File sync | FSync.WebHome]] частота сброса буфера на носитель. |
| |
5.2 | 25 | [[Event sourcing>>doc:Архитектура и модели.Группа\. Архитектурные подходы.Event sourcing.WebHome]] |
| |
1.7 | 26 | )))|Redis persistence |
| 27 | [[https:~~/~~/redis.io/docs/manual/persistence/>>https://redis.io/docs/manual/persistence/]] | ||
| |
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]] |
| |
1.2 | 29 | |(% style="width:170px" %) |(% style="width:668px" %) | |
| 30 | |(% style="width:170px" %)Channel | ||
| 31 | Pub/Sub|(% style="width:668px" %)((( | ||
| 32 | Реализация модели издатель/подписчик. | ||
| |
1.3 | 33 | После подключения к канаду клиент будет получать все сообщения, поступающие на канал (сообщения никак не распределяются между клиентами). |
| 34 | На стороне Redis выделяется буфер для хранения сообщений, еще не обработанных всеми клиентами. Если клиент сильно отстает в обработке сообщений (заполняя буфер), то он может быть отключен. | ||
| |
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" %) | | ||
| |
9.1 | 40 | |(% style="width:170px" %)[[Кластер>>doc:Разработка.Базы данных 2.Механизмы.Кластер.WebHome]]|(% style="width:668px" %)((( |
| |
10.1 | 41 | |(% style="width:265px" %)Асинхронная [[Репликация ~~| Replication>>Разработка.Базы данных 2.Механизмы.Кластер.Репликация | Replication.WebHome]]|(% style="width:384px" %)((( |
| |
1.11 | 42 | master-slaves |
| 43 | |||
| 44 | Распределяет нагрузку операций чтения. | ||
| 45 | Повышает отказоустойчивость. | ||
| 46 | ))) | ||
| |
1.18 | 47 | |(% style="width:265px" %) |(% style="width:384px" %) |
| |
1.11 | 48 | )))|Redis replication |
| |
1.9 | 49 | [[https:~~/~~/redis.io/docs/manual/replication/>>https://redis.io/docs/manual/replication/]] |
| |
1.2 | 50 | |
| |
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]] | ||
| |
1.16 | 61 | |
| 62 | Шпаргалка по Redis | ||
| 63 | [[https:~~/~~/habr.com/ru/post/204354/>>https://habr.com/ru/post/204354/]] |