Как проверить подключения к Redis db - PullRequest
0 голосов
/ 01 февраля 2019

Мне интересно регистрировать, какие пользователи подключились к базе данных и когда.

Команда MONITOR является избыточной и вызывает резкое снижение пропускной способности.

Какой рекомендуемый метод публикации / генерацииэти журналы?

Вероятно, в redis нет доступных команд для аудита, кроме MONITOR

redis-cli monitor

Используя команду MONITOR, я получу что-то вроде этого:

1339518083.107412 [0 127.0.0.1:60866] "keys" "*"
1339518087.877697 [0 127.0.0.1:60866] "dbsize"
1339518090.420270 [0 127.0.0.1:60866] "set" "x" "6"
1339518096.506257 [0 127.0.0.1:60866] "get" "x"
1339518099.363765 [0 127.0.0.1:60866] "del" "x"
1339518100.544926 [0 127.0.0.1:60866] "get" "x"

whileМне нужно что-то более похожее на: пользователь X подключен к отметке времени Y

1 Ответ

0 голосов
/ 02 февраля 2019

Вы можете использовать команду CLIENT LIST, чтобы получить эту информацию.Обязательно установите имя клиента, когда клиент создает соединение с Redis.Затем посмотрите на поле 'age', напечатанное СПИСКОМ КЛИЕНТОВ, чтобы получить общую продолжительность соединения в секундах.

redis 127.0.0.1:6379> client list
addr=127.0.0.1:52555 fd=5 name=ClientName1 age=855 idle=0     flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
addr=127.0.0.1:52787 fd=6 name=ClientName2 age=6 idle=5 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping

https://redis.io/commands/client-list

...