package
0.1.1
Repository: https://github.com/gole-dev/gole.git
Documentation: pkg.go.dev

# README

单元测试可以使用 https://github.com/alicebob/miniredis, 可以开启一个本地的模拟redis

案例

Redis 优化方向

参数优化

maxIdle设置高点,可以保证突发流量情况下,能够有足够的连接去获取redis,不用在高流量情况下建立连接

go-redis参数优化

  min_idle_conn: 30               
  dial_timeout: "1s"
  read_timeout: "500ms"
  write_timeout: "500ms"
  pool_size: 500
  pool_timeout: "60s"

redisgo参数优化

maxIdle = 30
maxActive = 500
dialTimeout = "1s"
readTimeout = "500ms"
writeTimeout = "500ms"
idleTimeout = "60s"

使用优化

  • 增加redis从库
  • 对批量数据,根据redis从库数量,并发goroutine拉取数据
  • 对批量数据大量使用pipeline指令
  • 精简key字段
  • redis的value存储编解码改为msgpack

Pipeline

# Functions

Init init a default redis instance.
InitTestRedis 实例化一个可以用于单元测试的redis.
LoadConf load redis config.
NewCheckRepeat create a check repeat.
NewIDAlloc create a id alloc instance.
NewRedisManager create a redis manager.

# Constants

DefaultRedisName default redis name.
ErrRedisNotFound not exist in redis.
PrefixCheckRepeat check repeat key.
RepeatDefaultTimeout define default timeout.

# Variables

RedisClient redis 客户端.

# Structs

Config redis config.
IDAlloc id生成器 key 为业务key, 由业务前缀+功能前缀+具体场景id组成 比如生成用户id, 可以传入user_id, 完整示例: gole:idalloc:user_id.
RedisManager define a redis managernolint.

# Interfaces

CheckRepeat define interface.