module
0.0.0-20240328104128-aac5e323fe3e
Repository: https://github.com/ravenhuo/go-pkg.git
Documentation: pkg.go.dev
# README
go-pkg
golang的共用pak 库,用于支持各种基础功能,包括但不限于以下功能
Installation
The only requirement is the Go Programming Language
go get -u github.com/RavenHuo/go-pkg
Usage
Conf
用于读取配置文件,获取配置
//初始化配置
InitConf()
// 获取命名 server.name 的配置
Get("server.name")
// 获取类型为string 命名为name的配置
GetString("name")
// 获取类型为int 命名为name的配置
GetInt("name")
// 获取命名为name的配置,并序列化为registerConfig对象
GetObject("register", ®isterConfig)
Encode
通过策略模式,实现不同格式的序列化以及反序列化,包括以下格式:
-
ini
-
json
-
toml
-
xml
-
yaml
// Encoder represents a format encoder
type Encoder interface {
Encode(interface{}) ([]byte, error)
Decode([]byte, interface{}) error
Name() string
}
Redis
- go-redis
封装 github.com/go-redis/redis/v8,加入Lock及UnLock方法
- distribution_lock
分布式锁,参照redis-sission框架,实现了golang的分布式锁
-
使用redis的setnx 实现分布式加锁
-
使用watch dog 协程监控及redis的eval,实现了分布式锁的续期
-
使用redis的eval 实现分布式锁的解锁
Log
基于 logrus的日志封装,将context透传到日志打印中,方便打印trace_id
Mongo
基于mgo的 mongo 连接池封装
Etcd
使用选项模式,基于etcdV3的 etcd 链接封装
实现了Get,PUt,Delete,Watch 等功能
# Packages
No description provided by the author
*
* @Author raven
* @Description
* @Date 2022/9/14
**/.
No description provided by the author
Package encoder handles source encoding formats.
No description provided by the author
*
* @Author raven
* @Description
* @Date 2022/8/29
**/.
*
* @Author raven
* @Description
* @Date 2022/12/7
**/.
*
* @Author raven
* @Description
* @Date 2021/9/15
**/.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
*
* @Author raven
* @Description
* @Date 2023/4/17
**/.
*
* @Author raven
* @Description
* @Date 2022/7/25
**/.
No description provided by the author