package mainimport ("context""fmt""time""github.com/go-redis/redis/v8")//Go1.7加入了一个新的标准库context,它定义了Context类型,专门用来简化 对于处理单个请求的多个 goroutine 之间与请求域的数据、取消信号、截止时间等相关操作var ctx = context.Background()func main() {rdb := redis.NewClient(&redis.Options{Addr: "localhost:6379",Password: "", // no password setDB: 0, // use default DB})_, err := rdb.Ping(ctx).Result()if err != nil {fmt.Println("redis数据库连接失败")}//设置获取字符串// err = rdb.Set(ctx, "username", "zhangsan", 0).Err()// if err != nil {// panic(err)// }// userinfo, _ := rdb.Get(ctx, "username").Result()// fmt.Println(userinfo)//设置获取列表rdb.LPush(ctx, "hobby", "吃饭", "睡觉")// rdb.RPush(ctx, "hobby", "写代码", "打篮球")// hoddy, _ := rdb.LRange(ctx, "hobby", 0, -1).Result()// fmt.Println(hoddy)//设置过期rdb.Expire(ctx, "hobby", time.Second*20).Result()//设置集合// rdb.SAdd(ctx, "hobby", "吃饭", "睡觉")// rdb.SAdd(ctx, "hoddy", "吃饭")// hoddy, _ := rdb.SMembers(ctx, "hobby").Result()// fmt.Println(hoddy)// //设置哈希值// err2 := rdb.HMSet(ctx, "userinfo", map[string]interface{}{// "username": "张三",// "age": 20,// }).Err()// if err2 != nil {// fmt.Println(err2)// }// userinfo, err := rdb.HGetAll(ctx, "userinfo").Result()// fmt.Println(userinfo, err)// fmt.Println(userinfo["age"])go func() {time.Sleep(time.Second * 2)//发布rdb.Publish(ctx, "server0", "this is a message")}()pubsub := rdb.Subscribe(ctx, "server0")ch := pubsub.Channel()for msg := range ch {fmt.Println(msg.Channel, msg.Payload)}}//订阅
package mainimport ("context""fmt""strconv""time""github.com/go-redis/redis/v8")var ctx = context.Background()func main() {rdb := redis.NewClient(&redis.Options{Addr: "localhost:6379",Password: "", // no password setDB: 0, // use default DB})_, err := rdb.Ping(ctx).Result()if err != nil {fmt.Println("redis数据库连接失败")}for i := 0; i < 100; i++ {time.Sleep(time.Second * 2)rdb.Publish(ctx, "server0", "this is a message"+strconv.Itoa(i))}}//订阅
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论