Redis活动日志

时间:2017-01-12 17:44:58

标签: redis

我们的服务器上运行了一个redis数据库,但由于某种原因,我在数据库中看不到任何键。我只是想知道redis是否存储了一个活动日志,我可以在哪里跟踪密钥是否被删除?

我有正常的redis日志文件,在/var/log/redis.log但是没有我要查找的信息。

2 个答案:

答案 0 :(得分:2)

我认为没有直接的方式来记录所有内容,但这里是一个黑客。

$ redis-cli monitor  >> ~/my_redis_commands.log 2>&1

此处>>告诉操作系统输出流已从monitor更改为file2>&1告知将STDERR重定向到STDOUT }。

  

n>& m将流n的输出与流m合并。

     

请注意,文件描述符0通常是标准输入(STDIN),1是标准输出(STDOUT),2是标准错误输出(STDERR)。

在某些SSH会话中查看文件内容以进行调试。

$ tail -f ~/my_redis_commands.log

或者您可以使用grep来查找" DEL"代替。您可以看到Redis支持的命令列表,并尝试grep查询,如SETGET等。

$ grep '"DEL"' ~/my_redis_commands.log

这个想法的缺点是:

  • 您需要运行单独的流程来执行此操作
  • 它的内存和CPU消耗
    • 单个MONITOR客户端可以将吞吐量降低50%以上。运行更多MONITOR客户端将进一步降低吞吐量。
  • 出于安全考虑,某些特殊管理命令(如CONFIG)未登录到MONITOR输出

有关详情https://redis.io/commands/monitor

,请参阅此处

答案 1 :(得分:0)

allcmdstats开关一起使用时,INFO command可用于收集一些取证信息 - 您将能够查看所有命令的计数,包括令人反感的命令。< / p>

请注意,这可能是未经授权的入侵造成的,并且您的服务器可能已遭到入侵。