您的位置:首页 > 数据库 > Redis

redis(包括连接池)

2019-02-11 12:14 274 查看

conn:

package main

import (
"fmt"

"github.com/garyburd/redigo/redis"
)

func main() {
c, err := redis.Dial("tcp", "localhost:6379")
if err != nil {
fmt.Println("conn redis failed,", err)
return
}

defer c.Close()
}

hset:

package main

import (
"fmt"

"github.com/garyburd/redigo/redis"
)

func main() {
c, err := redis.Dial("tcp", "localhost:6379")
if err != nil {
fmt.Println("conn redis failed,", err)
return
}

defer c.Close()
_, err = c.Do("HSet", "books", "abc", 100)
if err != nil {
fmt.Println(err)
return
}

r, err := redis.Int(c.Do("HGet", "books", "abc"))
if err != nil {
fmt.Println("get abc failed,", err)
return
}

fmt.Println(r)
}

list:

package main

import (
"fmt"

"github.com/garyburd/redigo/redis"
)

func main() {
c, err := redis.Dial("tcp", "localhost:6379")
if err != nil {
fmt.Println("conn redis failed,", err)
return
}

defer c.Close()
_, err = c.Do("lpush", "book_list", "abc", "ceg", 300)
if err != nil {
fmt.Println(err)
return
}

r, err := redis.String(c.Do("lpop", "book_list"))
if err != nil {
fmt.Println("get abc failed,", err)
return
}

fmt.Println(r)
}

set:

package main

import (
"fmt"

"github.com/garyburd/redigo/redis"
)

func main() {
var p *int
var a int
p = &a
*p = 0

c, err := redis.Dial("tcp", "localhost:6379")
if err != nil {
fmt.Println("conn redis failed,", err)
return
}

defer c.Close()
_, err = c.Do("Set", "abc", 100)
if err != nil {
fmt.Println(err)
return
}

r, err := redis.Int(c.Do("Get", "abc"))
if err != nil {
fmt.Println("get abc failed,", err)
return
}

fmt.Println(r)
}

批量 set:

package main

import (
"fmt"

"github.com/garyburd/redigo/redis"
)

func main() {
c, err := redis.Dial("tcp", "localhost:6379")
if err != nil {
fmt.Println("conn redis failed,", err)
return
}

defer c.Close()
_, err = c.Do("MSet", "abc", 100, "efg", 300)
if err != nil {
fmt.Println(err)
return
}

r, err := redis.Ints(c.Do("MGet", "abc", "efg"))
if err != nil {
fmt.Println("get abc failed,", err)
return
}

for _, v := range r {
fmt.Println(v)
}
}

过期时间:

package main

import (
"fmt"
"github.com/garyburd/redigo/redis"
)

func main() {
c, err := redis.Dial("tcp", "localhost:6379")
if err != nil {
fmt.Println("conn redis failed,", err)
return
}

defer c.Close()
_, err = c.Do("expire", "abc", 10)
if err != nil {
fmt.Println(err)
return
}
}

连接池:

package main

import (
"fmt"

"github.com/garyburd/redigo/redis"
)

var pool *redis.Pool

func init() {
pool = &redis.Pool{
MaxIdle:     16,
MaxActive:   0,
IdleTimeout: 300,
Dial: func() (redis.Conn, error) {
return redis.Dial("tcp", "localhost:6379")
},
}
}

func main() {

c := pool.Get()
defer c.Close()

_, err := c.Do("Set", "abc", 100)
if err != nil {
fmt.Println(err)
return
}

r, err := redis.Int(c.Do("Get", "abc"))
if err != nil {
fmt.Println("get abc failed,", err)
return
}

fmt.Println(r)
pool.Close()
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis 连接池