先喊一嗓子吧:没有用上docker的小伙伴赶紧上车,现在前端招聘都不要专科生了
用不用docker和专科生有啥关系?
招聘不要专科生咱就多学点知识吧,找不到工作就自己创业,哈哈哈哈哈
幻想多年以后,有个记者采访我当年怎么走上创业道路的,我可以说:因为找不到工作
关于docker
使用docker也有好长时间了,都是轻度使用,比如不想安装mysql了就用docker起个mysql容器,确实是挺方便, 但是不建议新手用户直接上手,打个比喻:我没有经历过大饥荒时代,没有吃过窝窝头,就不能深刻体会到现在能吃饱穿暖是多么的不容易。同理,你没有被安装mysql,mongodb等数据库折磨过,你就不能体会到docker有多牛逼
关于项目
今天突然感觉自己的项目没有使用redis有点慢,那就用上吧,
但是我又不想在本机安装redis,所以要用docker run一个(懒点挺好,懒是科技发展的原动力!)
关于redis的代码
全局ini文件
[redis]
ip = 127.0.0.1
port = 6379
redisEnable = true
redis文件
package modules
import (
"context"
"encoding/json"
"time"
"github.com/go-redis/redis/v8"
"gopkg.in/ini.v1"
)
var ctx = context.Background()
var rdbClient *redis.Client
var redisEnable bool
func init() {
config, _ := ini.Load("./conf/app.ini")
ip := config.Section("redis").Key("ip").String()
port := config.Section("redis").Key("port").String()
redisEnable, _ = config.Section("redis").Key("redisEnable").Bool()
if redisEnable {
rdbClient = redis.NewClient(&redis.Options{
Addr: ip + ":" + port,
Password: "",
DB: 0,
})
_, err := rdbClient.Ping(ctx).Result()
if err != nil {
println("redis数据库连接失败")
} else {
println("redis数据库连接成功...")
}
}
}
type redisDb struct{}
func (c redisDb) Set(key string, value interface{}, expiration int) {
if redisEnable {
v, err := json.Marshal(value)
if err == nil {
rdbClient.Set(ctx, key, string(v), time.Second*time.Duration(expiration))
}
}
}
func (c redisDb) Get(key string, obj interface{}) bool {
if redisEnable {
valueStr, err1 := rdbClient.Get(ctx, key).Result()
if err1 == nil && valueStr != "" {
err2 := json.Unmarshal([]byte(valueStr), obj)
return err2 == nil
}
return false
}
return false
}
func (c redisDb) Delete(key string) bool {
if redisEnable {
_, err := rdbClient.Del(ctx, key).Result()
return err == nil
}
return false
}
var RedisDb = &redisDb{}
我踩的坑
刚开始我链接redis的ip地址一直写的是docker容器的ip
这是错误的,容器已经和宿主机端口映射,要连本机的6379端口