Redis Pub Sub только для определенного набора ключей? - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть сценарий использования, в котором я хочу включить уведомление только для определенного набора ключей, чтобы по истечении срока действия этих ключей я мог получать уведомление от Redis.

Я следовал этому ответу, чтобы реализовать это.

Я установил для параметра notify-keyspace-events значение "Ex"

Для этого я добавляю ключи, для которых я хочу получать уведомления в DB-0, и другие ключи в DB-1. Но я получаю уведомления для обеих БД. Есть ли способ просто получить уведомление от конкретной БД?

Согласно документации Redis:

" Redis может уведомлять клиентов Pub / Sub о событиях, происходящих в пространстве ключей. Эта функция задокументирована на http://redis.io/topics/notifications Например, если включено уведомление о событиях пространства ключей, и клиент выполняет операцию DEL с ключом "foo", хранящимся в базе данных 0 , два сообщения будут публиковаться через Pub / Sub:

PUBLISH пробел @ 0 : foo del

ПУБЛИКАЦИЯ keyevent @ 0 : del foo «

Но я получаю уведомление от DB-0 и DB-1.

PS: я знаю, что могу фильтровать ключи в своем приложении, но я храню слишком много ключей с истекшим сроком в Redis, и отправка уведомления для всех с истекшим сроком действия увеличит нагрузку на мой сервер Redis.

1 Ответ

0 голосов
/ 19 сентября 2018

Я думаю, что вы подписались на шаблон, который соответствует уведомлению всех БД, например, PSUBSCRIBE __key*__:*.

Фактически, вы можете указать индекс БД в подписанном шаблоне: PSUBSCRIBE __keyspace@0__:* и PSUBSCRIBE __keyevent@0__:*. Таким образом, вы получите только уведомление о DB0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...