知识点
- redis 的安装与了解
- golang中对redis的操作
- golang中的redis 连接池
安装并启动redis server之后的界面
我们就可以使用了, 默认端口是6379
在client客户端里可以进行命令操作
一个基本的golang redis demo, 在go中队redis进行操作
/*
在go中操作redis的demo
*/
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("Set", "key1", 998) // 设置键
if err != nil {
fmt.Println(err)
return
}
r, err := redis.Int(c.Do("Get", "key1")) // 获取一个键
if err != nil {
fmt.Println(err)
}
fmt.Printf("r = %d", r)
}
golang redis 连接池demo
重点是pool的init配置
/*
redis 连接池的使用
*/
package main
import (
"fmt"
"github.com/garyburd/redigo/redis"
)
var pool *redis.Pool
func init() {
pool = &redis.Pool {
MaxIdle: 8,
MaxActive: 0,
IdleTimeout:100,
Dial: func() (conn redis.Conn, e error) {
return redis.Dial("tcp", "localhost:6379")
},
}
}
func main() {
conn := pool.Get()
_, err := conn.Do("set", "name", "jamey")
if err != nil {
fmt.Println("error redis set")
}
name, err := redis.String(conn.Do("get", "name"))
if err != nil {
fmt.Println("error redis get")
}
fmt.Println("name = " + name)
conn.Close()
pool.Close()
}