最近在项目上使用到了Redis缓存,在使用过程中遇到了一些问题,这里来总结一下。
1、Redis设置成Windows启动服务:
执行命令
redis-server --service-install redis.windows-service.conf --loglevel verbose
1、Redis运行一段时间之后,发现Redis Client连接不上了,报错 Error:max number of clients reached,首先想到的是,是不是在代码使用过程中没有释放掉空闲的Redis连接,然后检查代码,发现确实没有关闭连接,修改后的代码如下:
下图中的dispose是后来添加的:
添加上释放代码之后又过了一段时间发现还是报同样的错误,于是用redis的控制台窗口查看当前所有的客户端连接情况:
其中idle(以秒计算的空闲时长)竟然这么长时间。。很多空闲连接都没有被及时释放掉从而导致connected_clients非常高
查看redis的配置timeout (当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能)
然后设置timeout
再次查看connected_clients
连接数瞬间少了很多,至此该问题已解决。