golang 客户端工具redigo学习
来源:互联网 发布:future java 编辑:程序博客网 时间:2024/06/16 09:20
参考:https://godoc.org/github.com/garyburd/redigo/redis
package main
import (
"fmt"
"github.com/garyburd/redigo/redis"
"log"
"os"
"time"
)
var logger *log.Logger
func init() {
file, err := os.Create("test.log")
if err != nil {
log.Fatal(err)
}
logger = log.New(file, "", log.LstdFlags|log.Llongfile)
}
const (
redis_host string = "192.168.100.151:6379"
)
func main() {
// 初始化链接池
pool := &redis.Pool{
MaxIdle: 80,
MaxActive: 12000, // max number of connections
Dial: func() (redis.Conn, error) {
c, err := redis.Dial("tcp", redis_host)
if err != nil {
panic(err.Error())
}
return c, err
},
IdleTimeout: time.Second * 1,
}
// redis.DialTimeout("tcp", redis_host, 0, 1*time.Second, 1*time.Second)
conn := pool.Get()
defer conn.Close()
//命令执行
_, err := conn.Do("SET", "user:user0", 123)
if err != nil {
logger.Println(err)
}
user0, err := redis.Int(conn.Do("GET", "user:user0"))
fmt.Println(user0)
//管道操作
conn.Send("SET", "foo", "bar")
conn.Send("GET", "foo")
conn.Flush()
conn.Receive()
v, err := redis.String(conn.Receive())
if err != nil {
logger.Fatal(err)
}
fmt.Println(v)
// send,flush,receive实现发布订阅
conn.Send("SUBSCRIBE", "example")
conn.Flush()
// conn.Receive()
for {
// reply, err := conn.Receive()
// if err != nil {
// logger.Fatal(err)
// }
reply, _ := redis.Values(conn.Receive())
fmt.Println(reply)
}
//PubSubConn
// psc := redis.PubSubConn{conn}
// psc.Subscribe("example")
// // go conn.Do("publish", "example", "hellowrld")
// for {
// switch v := psc.Receive().(type) {
// case redis.Message:
// fmt.Printf("%s: message: %s\n", v.Channel, v.Data)
// case redis.Subscription:
// fmt.Printf("%s: %s %d\n", v.Channel, v.Kind, v.Count)
// case error:
// fmt.Println(v)
// }
// }
}
- golang 客户端工具redigo学习
- golang,redigo 使用中 Cannot assign requested address的解决办法
- Go实战--golang中使用redis(redigo和go-redis/redis)
- golang redigo 在高并发下的问题。连接池占满CPU
- golang tcp 客户端
- redigo 用户指南
- golang学习
- golang 学习
- golang学习
- GOlang学习
- 学习golang
- Golang web 开发实战之 session 缓存:如何使用 redigo 将一个结构体数据保存到 redis?
- golang工具的坑
- Golang 开发工具
- golang udp服务端客户端例子
- golang写的DDNS客户端
- Golang服务器,Unity客户端 通信
- golang socket 服务端与客户端
- stock
- 偏移视觉效果的无限轮播
- 有规律的数列求和
- drawableTop怎样动态设置图片大小
- C中的volatile用法
- golang 客户端工具redigo学习
- HTML积累
- shell变量详解
- VS2008无最近项目
- 解决maven内网私服与外网同步的问题
- 鲜为人知的一个解决兼容性问题的利器——小数
- 【java简单的注解使用方式】用注解代替设置属性方法
- 流媒体的一些基本概念
- AVPlayerLayer播放网络音视频