java系统找不到指定文件怎么解决
269
2022-09-30
EasyGBS中Redis不启动的问题排查及优化
Redis即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
之前我们介绍了在EasyGBS中,可以使用外部的Redis来进行数据的接入,本文我们讲的问题就跟Redis有关。在某个EasyGBS的项目现场,发现总是报“is busy”错误,所有设备都无法播放。
查看后台日志一直报错,定位到是无法连接到Redis。
查看用户的Redis配置,设置访问的是127.0.0.1
查看代码,代码中如果是localhost,才会自动启动本地的Redis ,因此出现Redis无法运行的问题。修改代码如下:
if (host == "localhost" || host == "127.0.0.1") && utils.Exist(EXE()) { if utils.IsPortInUse(port) { err = fmt.Errorf("Port[%d] In Use", port) return } args := []string{"--port", strconv.Itoa(port)} if auth != "" { args = append(args, "--requirepass", auth) } cmd = exec.Command(EXE(), args...) cmd.Dir = filepath.Dir(EXE()) err = cmd.Start() if err != nil { return } pidPath := filepath.Join(filepath.Dir(EXE()), "redis.pid") ioutil.WriteFile(pidPath, []byte(strconv.Itoa(cmd.Process.Pid)), 0644)}
添加如果是127.0.0.1的程序也启动程序,修改完成后,Redis模块正常启动。
EasyGBS更新新版以来,我们做了不少功能上的改进,比如视频调阅、登录鉴权等,同时也增加了很多新功能,比如告警功能、语音对讲等,我们也在不断升级,在未来会将AI智能分析与EasyGBS相结合,欢迎大家了解及测试。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~