redis支持链接池的包有很多,我们使用redigo/redis,测试下来性能还不错, 本节课主目录如下:
docker启动redis
docker-compose start redis
我们使用compose启动,不懂操作的可以查看文章docker下安装redis
Github 源码编译方式
下载源码
git clone --branch 2.8 --depth 1 git@github.com:antirez/redis.git
cd redis
编译
make
cd src
运行服务器,daemonize表示在后台运行
./redis-server --daemonize yes
运行命令行
./redis-cli直接安装方式
- mac
brew install redis- ubuntu
apt-get install redis- redhat
yum install redis- 运行客户端
redis-cli
主函数中增加数据库初始化入口
package main
import (
"runtime"
"flag"
"fmt"
"com.api.com/router"
"com.api.com/system"
"github.com/spf13/pflag"
...
)
...
func main() {
...
//初始化redis
system.RedisDB.Init()
defer system.RedisDB.Close()
...
}...
因为一个 API 服务器可能需要同时访问多个数据库,为了对多个数据库进行初始化和连接管理,这里定义了一个叫 Database 的 struct:
type RedisDb struct {
Self *redis.Pool
Author *redis.Pool
//Docker *redis.Pool
}
定义连接池对象存储变量
var ConnectPool = make(map[string]*redis.Pool)
实现init方法和数据库对象存储
```
var RedisDB *RedisDb
func (db *RedisDb) Init() {
RedisDB = &RedisDb{
Self: GetSelfRedisDB("member"),