Para assinar notificações, use um script Python 2 ou Python 3.
Observação: Os scripts a seguir assinam todas as notificações de keyspace e imprimem os eventos recebidos.
Python 2:
# cat subscribe.py
import redis
import datetime
import time
r = redis.Redis(host='testdisabled.xxxxx.ng.0001.use1.cache.amazonaws.com', port=6379, db=0)
#Subscribing for events matching pattern "__key*__:*"
p = r.pubsub()
p.psubscribe('__key*__:*')
print('Starting message loop')
while True:
message = p.get_message()
if message:
print datetime.datetime.now(), message
else:
time.sleep(0.01)
Python 3:
import redis
from datetime import datetime
import time
r = redis.Redis(host = 'testdisabled.xxxxx.ng.0001.use1.cache.amazonaws.com', port = 6379, db = 0)
#Subscribing for events matching pattern "__key*__:*
p = r.pubsub()
p.psubscribe('__key*__:*')
print('Starting message loop')
while True:
message = p.get_message()
if message:
print (datetime.now(), message)
else:
time.sleep(0.01)
Observação: Pode haver sobrecarga do servidor quando valores mais baixos ou a ausência de hibernação fazem com que o cliente pesquise constantemente o canal. Valores mais altos causam maior uso de memória no servidor. Os scripts anteriores definiram o time.sleep como 0,01.
Em uma sessão separada, conecte-se ao cluster e execute o script createkey.py para definir ou expirar as chaves:
Observação: Certifique-se de definir a example-key como chave e o example-value como valor. Além disso, use um valor de 3 segundos como tempo de expiração.
# cat createkey.py
import redis
r = redis.Redis(host='testdisabled.xxxxx.ng.0001.use1.cache.amazonaws.com', port=6379, db=0)
r.set('example-key','example-value')
r.expire('example-key',3)
Em uma sessão separada, execute o script subscribe.py.
Exemplo de saída:
# python2 subscribe.py
Starting message loop
2024-04-29 23:40:56.356659 {u'pattern': None, u'type': 'psubscribe', u'channel': '__key*__:*', u'data': 1L}
2024-04-29 23:40:56.356659 {u'pattern': None, u'type': 'psubscribe', u'channel': '__key*__:*', u'data': 1L}
2024-04-29 23:41:00.016410 {u'pattern': '__key*__:*', u'type': 'pmessage', u'channel': '__keyspace@0__:example-key', u'data': 'set'}
2024-04-29 23:41:00.016512 {u'pattern': '__key*__:*', u'type': 'pmessage', u'channel': '__keyevent@0__:set', u'data': 'example-key'}
2024-04-29 23:41:00.016582 {u'pattern': '__key*__:*', u'type': 'pmessage', u'channel': '__keyspace@0__:example-key', u'data': 'expire'}
2024-04-29 23:41:00.016650 {u'pattern': '__key*__:*', u'type': 'pmessage', u'channel': '__keyevent@0__:expire', u'data': 'example-key'}
2024-04-29 23:41:03.111509 {u'pattern': '__key*__:*', u'type': 'pmessage', u'channel': '__keyspace@0__:example-key', u'data': 'expired'}
2024-04-29 23:41:03.111601 {u'pattern': '__key*__:*', u'type': 'pmessage', u'channel': '__keyevent@0__:expired', u'data': 'example-key'}
Observação: Depois de concluir o comando anterior, seu receptor de chaves do Redis estará pronto.