Как узнать операцию уведомления при подписке на базу данных redis? - PullRequest
0 голосов
/ 13 ноября 2018

Я использую Redis-Py. Я подписываюсь на базу данных redis и читаю уведомление вот так:

>>> p.psubscribe("__keyspace@{}__:*".format(...))
>>> for message in p.listen():
...     # do something with the message

Я хочу получить операцию сообщения, например, УДАЛИТЬ или ДОБАВИТЬ, как я могу это сделать?

Спасибо ~

1 Ответ

0 голосов
/ 13 ноября 2018

Согласно документации (https://github.com/andymccurdy/redis-py#publish--subscribe), при вызове listen(), message возвращается как словарь:

  • тип: один из следующих: «подписаться», «отписаться», «подписаться», «подписаться», «сообщение», «сообщение»
  • channel: канал [un] подписался или канал, на который было опубликовано сообщение
  • шаблон: шаблон, который соответствует каналу опубликованного сообщения. Будет None во всех случаях, кроме типов «pmessage».
  • данные: данные сообщения. В случае [un] подписки сообщений это значение будет количеством каналов и шаблонов, на которые в данный момент подписано соединение. В сообщениях [p] это значение будет фактическим опубликованным сообщением.

В случае шаблона '__keyspace *' клавиша data в диктовке message содержит имя операции. Поставить по-другому:

>>> p.psubscribe("__keyspace@{}__:*")
>>> for message in p.listen():
...     print(message['data'])  # print the operation

Примечание. В вашем примере вызов format(...) не нужен.

...