Go语言操作Redis
发布时间:2020-12-13 20:16:17 所属栏目:PHP教程 来源:网络整理
导读:Redis的Go语言驱动已很成熟了,用redigo弄了个例子。 package main //Redis测试//author:Xiong Chuan Liang//date:2015⑶⑸import (fmttimeloggithub.com/garyburd/redigo/redis)func main(){fmt.Println(Redis:)conn,err := redisConn(,,6);if err != nil {
Redis的Go语言驱动已很成熟了,用redigo弄了个例子。 package main
//Redis测试
//author:Xiong Chuan Liang
//date:2015⑶⑸
import (
"fmt"
"time"
"log"
"github.com/garyburd/redigo/redis"
)
func main(){
fmt.Println("Redis:")
conn,err := redisConn("","","6");
if err != nil {
log.Fatal("Error: ",err)
}
test(conn)
}
func test(conn *RedisConn) {
conn.Do("SET","xxx",1)
if xxx,err :=redis.Int(conn.Do("GET","xxx")); err == nil {
fmt.Println("xxx:",xxx)
}
conn.FlushClose()
}
////////////////////////////////////////////////////////////////
type RedisConn struct {
dbid string
redis.Conn
}
func (r *RedisConn)FlushClose() error {
if r.dbid != "" {
if _,err := r.Conn.Do("SELECT",r.dbid);err != nil {
return nil
}
}
if _,err := r.Conn.Do("FLUSHDB");err != nil {
return err
}
return r.Conn.Close()
}
func (r *RedisConn)Close() error {
return r.Conn.Close()
}
func redisConn(host,password,db string) (*RedisConn,error) {
if host == "" {
host = ":6379"
}
//conn,err := redis.Dial( "tcp",host)
conn,err := redis.DialTimeout("tcp",host,1*time.Second,1*time.Second)
if err != nil {
return nil,err
}
if password != "" {
if _,err := conn.Do("AUTH",password); err != nil {
conn.Close()
return nil,err
}
}
if db != "" {
if _,err := conn.Do("SELECT",db);err != nil {
conn.Close()
return nil,err
}
}
return &RedisConn{dbid:db,Conn: conn},nil
} 可以看到使用非常方便。 MAIL:xcl_168@aliyun.com BLOG:http://blogcsdn.net/xcl168 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |