凡科建站相关链接,国内seo公司哪家最好,相亲交友小程序源码,邱启良 深圳网站建设〇、redis 配置
1、概况
本文基于 Ubuntu20.04 云服务器配置Redis#xff0c;且在本地进行 Redis 测试。
2、目录概况 一、配置文件
位于 /config/app.yml 中#xff0c;目的用于 Redis 初始化#xff1a;
redis:addr: 39.104.**.28:6379password: p…〇、redis 配置
1、概况
本文基于 Ubuntu20.04 云服务器配置Redis且在本地进行 Redis 测试。
2、目录概况 一、配置文件
位于 /config/app.yml 中目的用于 Redis 初始化
redis:addr: 39.104.**.28:6379password: passwordDB: 0poolSize: 30minIdleConn: 30二、main 文件
package mainimport (ChatTest/routerChatTest/utilsgithub.com/gin-gonic/gin
)func main() {utils.InitConfig()utils.InitRedis()r : gin.Default()r router.Router()r.Run(:8000)
}
二、初始化文件
位于 /utils/system_init.go 文件中目的用于初始化相关
package utilsimport (fmtgithub.com/go-redis/redis/v8github.com/spf13/viper
)var (Red *redis.Client
)// 初始化初始化文件func InitConfig() {viper.SetConfigName(app)viper.AddConfigPath(/Users/luliang/GoLand/ChatTest/config) //带绝对路径err : viper.ReadInConfig()if err ! nil {fmt.Println(err)}
}// 初始化 Redisfunc InitRedis() {Red redis.NewClient(redis.Options{Addr: viper.GetString(redis.addr),Password: viper.GetString(redis.password),DB: viper.GetInt(redis.DB),PoolSize: viper.GetInt(redis.minIdleConn),MinIdleConns: viper.GetInt(redis.minIdleConn),})fmt.Println(config Redis:, viper.Get(redis))
}
三、路由文件
路由文件位于 /router/app.go 中目的是建立路由
package routerimport (ChatTest/servicegithub.com/gin-gonic/gin
)func Router() *gin.Engine {r : gin.Default()r.GET(/send, service.SendMsg)r.GET(/recv, service.RecvMsg)return r
}四、实现服务
位于/service/message.go中是 HandlerFunc且实现服务:
package serviceimport (ChatTest/utilscontextgithub.com/gin-gonic/gin
)func SendMsg(c *gin.Context) {cmd : utils.Red.Publish(context.Background(), myRedis, Hello, MyRedis0001!)if cmd ! nil {c.JSON(200, gin.H{code: 0,message: 发送成功!,})return}c.JSON(200, gin.H{code: -1,message: 发送失败!,})}func RecvMsg(c *gin.Context) {pubSub : utils.Red.Subscribe(context.Background(), myRedis)defer pubSub.Close()ch : pubSub.Channel()for msg : range ch {c.JSON(200, gin.H{code: 0,message: msg.Payload,})// 根据业务逻辑决定是否终止循环并返回响应return}// 如果没有接收到消息可以根据需要返回响应c.JSON(200, gin.H{code: -1,message: 接受失败!,})
}
五、运行流程
这里面的核心就是Redis 的连接以及在 Redis 中发布消息和订阅消息了。
1、消息的发布
cmd : utils.Red.Publish(context.Background(), myRedis, Hello, MyRedis0001!)调用Publish() 函数发布一条消息这个 Publish() 是 go-redis中封装好的方法。
2、消息的订阅
pubSub : utils.Red.Subscribe(context.Background(), myRedis)可以看到go-redis 中使用消息的订阅和发布功能可以使得消息发送和接受的过程异常简单
全文完感谢阅读