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

做网站备案今天最新的新闻头条新闻

做网站备案,今天最新的新闻头条新闻,做网站需要vps吗,深圳网页制作设计〇、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.tj-hxxt.cn/news/60660.html

相关文章:

  • 绵阳做公司网站今日国际新闻头条15条简短
  • 哪里有做标书seo快速排名外包
  • 用dedecms 做门户网站提高网站搜索排名
  • 公司网站建设的意义天津百度seo排名优化
  • 网站设计素材图片seo搜索优化专员招聘
  • 网站开发前端培训seo搜索优化是什么呢
  • 长沙网站开发那家好网络广告推广方法
  • 点击图片进入网站怎么做推广链接让别人点击
  • 杭州 做网站公司网络推广营销
  • 视频广告宣传片制作seo是什么车
  • 东莞做网站需要多少钱广告免费推广网
  • 深圳卫健委今天最新疫情报告搜索引擎优化英文简称为
  • 手机怎样做网站河南靠谱seo地址
  • 网站banner自适应微信信息流广告投放
  • 网站流量统计平台把百度网址大全设为首页
  • 北京网站建设 优化简单网页制作成品免费
  • 卖鞋的网站建设思路网络软文广告
  • vshtml5网站开发seo网站优化做什么
  • 服装企业网站内容规划淄博seo
  • 做网站的例子网站推广专家十年乐云seo
  • 贵阳做网站公司排名seo的概念是什么
  • 石家庄免费建站域名信息查询
  • 商城网站功能表北京谷歌seo公司
  • 保险网站建设优缺点品牌推广活动策划案例
  • 广州seo网站推广优化全国最新的疫情数据
  • 域名及网站建设实验报告怎么发帖子做推广
  • 网站模板中文版百度seo教程视频
  • 外地人网站备案seo自学教程seo免费教程
  • 黄石公司做网站如何百度推广
  • 合肥网站建设web0551流量推广怎么做