Вы можете использовать CLIENT LIST
для достижения цели.Эта команда выводит информацию обо всех клиентах, подключающихся к Redis.Ниже приведен пример информации о клиенте, отображаемой CLIENT LIST
:
id=87 addr=127.0.0.1:63950 fd=10 name= age=3 idle=3 flags=P db=0 sub=3 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=subscribe
- Если клиент прерывает или закрывает соединение, Redis удалит его из списка клиентов, и вы НЕ МОЖЕТЕ получить его addr из результата команды
CLIENT LIST
. - Если клиент подписывается / подписывается на один или несколько каналов / шаблонов, поле cmd информации о клиенте будет подписка или psubscribe , а поле sub / psub - это количество каналов / шаблонов, на которые он подписан.
- Если клиент отменяет подписку / punsbuscription все каналы / шаблоны и отправляет другую команду в Redis, поле cmd информации о клиенте будет последней командой, отправленной в Redis, и sub / psub поле будет 0.
Чтобы узнать, какой абонент ушел, вы можете периодически вызывать команду CLIENT LIST
и проверять информацию о каждом подключающемся клиенте.