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"),