redis全套案例实例(群聊)

import (
"../joinMaster/redis-master"
"fmt"
"math/rand"
"strconv"
"time"
)
func main() {
var redisClient *redis.Client=redis.NewClient(&redis.Options{Addr:"127.0.0.1:6379",Password:"123456",DB:2});
con:=redisClient.Conn(); //获取连接 必须手动关闭
re,e2:=con.Get("go_redis").Result();
if(e2==nil){
fmt.Println(re);
}
con.Close(); //必须关闭连接
//采用go_redis 自己创建连接时候
sss,e:=redisClient.Get("ro_redis11").Result();
if(e!=nil){
fmt.Println(e);
}
fmt.Println("====>",sss);
s:=redisClient.Set("go_redis","343343_redis",0);
//保存有效值
redisClient.SetNX("ro_redis11NNNNNN","2343_ro_redis",10*time.Second);
//s:=redisClient.Set("go_redis","343343_redis",0);
fmt.Println("==>",s.Val());
//订阅
go RRedisWorker(redisClient);
//发布数据
go func(redisClient *redis.Client){
for true {
r:=rand.New(rand.NewSource(time.Now().UnixNano()))
s:=r.Intn(10);
time.Sleep(time.Second*time.Duration(s));
var con *redis.Conn=redisClient.Conn();
con.Publish("notice", "hello,world."+strconv.FormatInt(time.Now().Unix(), 10));
re:=con.Close();
fmt.Println(re);
}
}(redisClient)
//等待强行关闭
v:=make(chan int,1)
}
func RRedisWorker(redisClient *redis.Client){
fmt.Println("开始监听notice.......")
ps := redisClient.Subscribe("notice");
_, er := ps.Receive();
fmt.Println(er);
ch := ps.Channel();
for m := range ch {
fmt.Println(m.Channel,"========>", m.Payload)
}
}
golang中,go_redis全套案例实例(群聊)


分享到:


相關文章: