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相结合,欢迎大家了解及测试。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结