Вы можете объединить клиента, используя Redis Pub / Sub и Redis Keyspace Notifications , чтобы клиент получал сообщение, когда события происходят с определенными ключами или когда определенные события происходят с любымключ.Затем вы можете использовать сопоставления с образцом подписок , чтобы получать сообщения для более чем одного ключа.Вы также можете подписаться на несколько каналов с одного клиента;все сообщения включают в себя канал, на который он публикует, чтобы ваш клиент мог решить, что делать.
Чтобы получить сообщение по истечении срока действия любого ключа, начинающегося с foo
, выполните следующие действия:
- Установите
notify-keyspace-events
значение конфигурации на Kx
с помощью портала Azure.Шаги для установки значения для Azure здесь .Более подробная информация о схеме значений конфигурации определена здесь . - Используя клиент по вашему выбору, PSUBSCRIBE (шаблон подписки) на канал для вашего ключа:
PSUBSCRIBE '__keyspace@*__:foo*'
- Используя другое клиентское соединение, установите значение для своего ключа с помощью TTL:
SET foo42 bar EX 5
- Через 5 секунд вы увидите сообщение на своем подписавшемся клиенте:
"pmessage","__keyspace@*__:foo*","__keyspace@0__:foo42","expired"
Чтобы получить сообщение об истечении срока действия любого ключа, выполните следующие действия:
- Установите для
notify-keyspace-events
config значение Ex
- PSUBSCRIBE для канала событий ключадля ключей, срок действия которых истек:
PSUBSCRIBE '__keyevent@*__:expired'
- В другом клиенте установите ключ с TTL:
SET foo bar EX 5
- Через 5 секунд увидите сообщение на клиенте, подписавшемся:
"pmessage","__keyevent@*__:expired","__keyevent@0__:expired","foo"
Для быстрой разработки и отладки клиентов я бы рекомендовал использовать redis-cli или консоль Redis в портале Azure .
Надеюсь это поможет.Удачи!