Исходный код вики Механизмы
Версия 1.9 от Alexandr Fokin на 2022/10/19 16:23
Скрыть последних авторов
author | version | line-number | content |
---|---|---|---|
![]() |
1.6 | 1 | |(% style="width:170px" %)Транзакции|(% style="width:668px" %)((( |
2 | Есть поддержка пессимистичных транзакций, на время выполнения которых Redis выполняет только команды данной транзакции, а другие клиенты ожидают ее завершения. | ||
3 | |||
4 | Есть поддержка оптимистичных транзакций для действий, изменяющих данные, с возможностью указать кол-во повторных попыток в случае неудачи. | ||
5 | )))|((( | ||
![]() |
1.5 | 6 | Transactions |
7 | [[https:~~/~~/redis.io/docs/manual/transactions/>>https://redis.io/docs/manual/transactions/]] | ||
8 | |||
![]() |
1.2 | 9 | Как же работают транзакции в Redis |
10 | [[https:~~/~~/habr.com/ru/post/165223/>>url:https://habr.com/ru/post/165223/]] | ||
11 | |||
12 | Как работает Redis при одновременном доступе нескольких клиентов? | ||
13 | [[https:~~/~~/ru.stackoverflow.com/questions/876405/Как-работает-redis-при-одновременном-доступе-нескольких-клиентов>>url:https://ru.stackoverflow.com/questions/876405/Как-работает-redis-при-одновременном-доступе-нескольких-клиентов]] | ||
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" %)Запись всех команд в файл. | ||
24 | Требует периодической оптимизации для уменьшения размера файла.|(% style="width:207px" %)[[File sync ~~| FSync>>Хостинг.Операционные системы.File sync | FSync.WebHome]] частота сброса буфера ОС. | ||
![]() |
1.7 | 25 | )))|Redis persistence |
26 | [[https:~~/~~/redis.io/docs/manual/persistence/>>https://redis.io/docs/manual/persistence/]] | ||
![]() |
1.2 | 27 | |(% 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" %) | |
28 | |(% style="width:170px" %) |(% style="width:668px" %) | | ||
29 | |(% style="width:170px" %)Channel | ||
30 | Pub/Sub|(% style="width:668px" %)((( | ||
31 | Реализация модели издатель/подписчик. | ||
![]() |
1.3 | 32 | После подключения к канаду клиент будет получать все сообщения, поступающие на канал (сообщения никак не распределяются между клиентами). |
33 | На стороне Redis выделяется буфер для хранения сообщений, еще не обработанных всеми клиентами. Если клиент сильно отстает в обработке сообщений (заполняя буфер), то он может быть отключен. | ||
![]() |
1.2 | 34 | |
35 | Каналы являются глобальными для ноды приложения, не вложены в пространство какой-либо базы данных. | ||
36 | )))|Redis Pub/Sub | ||
37 | [[https:~~/~~/redis.io/docs/manual/pubsub/>>url:https://redis.io/docs/manual/pubsub/]] | ||
38 | |(% style="width:170px" %) |(% style="width:668px" %) | | ||
![]() |
1.9 | 39 | |(% style="width:170px" %)Кластер|(% style="width:668px" %)Репликация|Redis replication |
40 | [[https:~~/~~/redis.io/docs/manual/replication/>>https://redis.io/docs/manual/replication/]] | ||
![]() |
1.2 | 41 | |
42 |