最近在对接广东省互联网医院监管平台时,发现广东这边是要求平台必须要有医生和患者要有视频通话功能。因为原本的消息通话是用的网易IM,所以音视频也选的网易。网易音视频能实现通话视频云录制,然后通知到我们指定的接口,所以能够满足互联网医院的监管需求。
因为网易IM的通知地址只能留一个,即时通讯通知和音视频录制通知都要在这个接口处理,如果每条信息都及时处理很容易出现服务器宕机导致消息丢失,因此,我这边的做法是先将收到的信息存储到Redis中,然后在慢慢查找处理,处理完的消息从redis中清除,以实现平滑处理消息信息。
因为环境是用宝塔搭建,所以Redis也是用宝塔自带的安装的。宝塔安装经常会自动默认一些安全配置,这个一定要注意。
我在代码中使用keys方法时,总是返回false。刚开始我以为是redis中没有存入数据,于是我直接set了一个对值,然后g可以get到,但是用keys却还是出现false。然后我用$redis->dbsize()查看了一下,发现有800条数据,难道数据多了不让这样查,于是想着把redis库清理一下,于是用$redis->flushdb()清库,还是返回false。
于是我猜想到宝塔会默认配置一下安全设置。于是我连上ssh远程终端,用命令链接redis,使用keys命令,出现err unknown conmand报错。
用info命令看看,能正常返回信息
我感觉应该是部分命令被禁用了,于是试着搜索redis keys 禁用。
从搜索结果来看还用几个常用危险命令,于是一一试验。
果然几个命令都是报这个错,应该是这个命令被禁用了,所以跟着文章的禁用方法去查找Redis配置文件。
但是宝塔redis配置文件的redis配置文件的SECURITY
处并没有这个配置(我对redis配置不熟),这就有点蒙了。
知道是命令被禁用了,但是暂时又不知道怎么修改的话,那就只能用替代方法,于是用scan命令试试。
找数据行得通,再试试删除数据试试。
算了,还是找禁用命令的配置吧。再打开redis配置文件。一行一行看,本想看看是不是还有其他引入的配置文件,终于在配置结尾处找到了。
吐血,没注意到用Ctrl+F查找。
其实Redis配置对于熟悉使用的人来说,应该不难。求别喷,我承认我不熟悉。我写这个是想为一些新手朋友在编程中提供查找定位一个问题的方法和思路。
原创文章,作者:Zeyu,如若转载,请注明出处:https://jinzhijun.cn/develop/521