我有兴趣记录哪些用户连接到数据库以及何时连接。
MONITOR命令过大,导致吞吐量急剧下降。
推荐使用什么方法来发布/生成这些日志?
除了MONITOR之外,redis中可能没有可用的审计命令
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"
同时我需要更多类似的东西: 用户X在时间戳Y处连接
答案 0 :(得分:1)
您可以使用客户LIST命令得到这个信息。确保在客户端创建连接到Redis的设置客户端名称。然后查看“客户列表”打印的“年龄”字段,以获取连接的总持续时间(以秒为单位)。
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