SpringBoot整合Redis,如何调试Redis指令?
在springboot整合redis的环境中,如果没有合适的调试工具,可能会遇到发送redis指令时难以追踪问题的情况。与mybatis类似,在mybatis中我们可以通过配置显示发送的sql语句,那么在redis环境中,该如何显示后端发送给redis server的指令呢?
目前springboot整合redis starter不支持输出相关配置。 解决方法包括:
- 自行实现调试工具。
- 使用redis自带的monitor命令。
不过,redisson提供了以下方式来显示输出的指令:
redisclientconfig redisclientconfig = new redisclientconfig(); redisclientconfig.setaddress("localhost", 6379); redisclient client = redisclient.create(redisclientconfig); final redisconnection conn = client.connect(); final object test = conn.sync(stringcodec.instance, rediscommands.set, "test", 0);
同时配置日志等级:
"org.redisson": trace
调用的结果如下:
2023-03-21T08:28:16.691+08:00 TRACE 66205 --- [ntLoopGroup-4-2] o.r.client.handler.CommandEncoder : channel: [id: 0xeab76aaa, L:/127.0.0.1:56970 - R:localhost/127.0.0.1:6379] message: *3 $3 SET $4 test $1 0 2023-03-21T08:28:16.718+08:00 TRACE 66205 --- [ntLoopGroup-4-2] o.r.client.handler.CommandDecoder : reply: +OK
上述输出即原始的resp格式。