Go语言:go-redis客户端之消息的订阅subscribe与发布publish
2021-07-22 14:23:20    347    0    0
admin

订阅subscribe

  1. package main
  2. import (
  3. "fmt"
  4. "github.com/go-redis/redis"
  5. )
  6. func main() {
  7. client := redis.NewClient(&redis.Options{
  8. Addr: "127.0.0.1:6379",
  9. Password: "",
  10. DB: 0,
  11. })
  12. pubsub := client.Subscribe("chat")
  13. defer pubsub.Close()
  14. for msg := range pubsub.Channel() {
  15. fmt.Printf("channel=%s message=%s\n", msg.Channel, msg.Payload)
  16. }
  17. }

订阅psubscribe

  1. package main
  2. import (
  3. "fmt"
  4. "github.com/go-redis/redis"
  5. )
  6. func main() {
  7. client := redis.NewClient(&redis.Options{
  8. Addr: "127.0.0.1:6379",
  9. Password: "",
  10. DB: 0,
  11. })
  12. pubsub := client.PSubscribe("*")
  13. defer pubsub.Close()
  14. for msg := range pubsub.Channel() {
  15. fmt.Printf("channel=%s message=%s\n", msg.Channel, msg.Payload)
  16. }
  17. }

发布publish

  1. package main
  2. import (
  3. "fmt"
  4. "github.com/go-redis/redis"
  5. )
  6. func main() {
  7. client := redis.NewClient(&redis.Options{
  8. Addr: "127.0.0.1:6379",
  9. Password: "",
  10. DB: 0,
  11. })
  12. n, err := client.Publish("chat", "hello").Result()
  13. if err != nil{
  14. fmt.Printf(err.Error())
  15. return
  16. }
  17. fmt.Printf("%d clients received the message\n", n)
  18. }

Prev: Windows10子系统(WSL)修改安装目录

Next: [参考]彻底解决Golang获取当前项目绝对路径问题

347
Table of content