package main
import (
"context"
"github.com/go-redis/redis/v8"
"log"
)
var ctx = context.Background()
func ProducerMessageList(rdb *redis.Client, queueListKey string) {
for i := 0; i < 1000; i++ {
_, err := rdb.Publish(ctx, queueListKey, i).Result()
if err != nil {
log.Println(err)
}
}
}
func ConsumerMessageList(rdb *redis.Client, queueListKey string) {
for {
pubSub := rdb.Subscribe(ctx, queueListKey)
ch := pubSub.Channel()
for msg := range ch {
log.Printf("消费到数据 channel:%s;message:%s\n", msg.Channel, msg.Payload)
}
}
}
func main() {
rdb := redis.NewClient(&redis.Options{
Addr: "192.168.117.129:6379",
Password: "foobared", // no password set
DB: 0, // use default DB
})
// 测试连接是否成功
_ = rdb.Ping(context.Background()).Err()
go ProducerMessageList(rdb, "queue:message")
ConsumerMessageList(rdb, "queue:message")
}