当前位置: 首页 > news >正文

淄博网站建设培训学校建设优化网站

淄博网站建设培训学校,建设优化网站,百度一下你就知道官网网址,成都网站制作〇、redis 配置 1、概况 本文基于 Ubuntu20.04 云服务器配置Redis,且在本地进行 Redis 测试。 2、目录概况 一、配置文件 位于 /config/app.yml 中,目的用于 Redis 初始化: redis:addr: "39.104.**.28:6379"password: "p…

〇、redis 配置

1、概况

本文基于 Ubuntu20.04 云服务器配置Redis,且在本地进行 Redis 测试。

2、目录概况

在这里插入图片描述

一、配置文件

位于 /config/app.yml 中,目的用于 Redis 初始化:

redis:addr: "39.104.**.28:6379"password: "password"DB: 0poolSize: 30minIdleConn: 30

二、main 文件

package mainimport ("ChatTest/router""ChatTest/utils""github.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 ("fmt""github.com/go-redis/redis/v8""github.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/service""github.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/utils""context""github.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 中使用消息的订阅和发布功能,可以使得消息发送和接受的过程异常简单!

全文完,感谢阅读!

http://www.yayakq.cn/news/475155/

相关文章:

  • 做网站需要工具org 结尾的网站注册要什么手续
  • 天津建设监理协会网站卡当网站建设
  • 网站建设公司软件开发asp自助建站系统
  • 要建设一个网站需要准备些什么美丽南方的网站建设
  • pc网站优化排名网站有备案 去掉备案
  • 大同市建设局网站wordpress lamp 建站
  • 南昌制作网站的公司哪家好本地建站软件有哪些
  • ps 做儿童摄影网站首页电脑网页打不开但是有网什么原因
  • 无锡电商网站设计网站链接怎么做
  • 佛山商城网站建设长治怎么做平台软件
  • 山东省乡镇网站建设个人网站做什么内容
  • 网站宣传册怎么做营销策划书范文1000字
  • 网站标签优化怎么做南宁国贸网站建设
  • 廊坊建设企业网站wordpress指定分类不显示
  • 设计教程网站wordpress网站重新安装插件
  • 建设的网站百度搜不到wordpress添加菜单分类目录是灰的
  • 六安商业网站建设费用网站首页制作浩森宇特
  • 越秀网站建设价格2个网站做的链接怎么用一个域名
  • 免费建立个人网站的视频会员管理系统小程序
  • 河北做网站的公司wordpress foot增加js
  • 互联网网站建设万网 x3 wordpress
  • 做网站准备内容白云鄂博矿区网站建设
  • 网站开发报价单明细抖音小程序免费制作平台
  • 请人代做谷歌外贸网站网站录入
  • 全国建设注册中心网站做贷款的网站有哪些
  • 在线网站制作梅州兴宁网站建设培训
  • 做的好的学校网站网页设计的三大基本技术
  • 淮南城乡建设局网站海南省海口市龙华区
  • 网站落地页如何做住建局投诉电话965559
  • 深圳做英文网站的公司crm微信管理系统