github.com/isyscore/isc-gobase@v1.5.3-0.20231218061332-cbc7451899e9/extend/redis/README.md (about) 1 ## redis 2 对go-redis进行封装,用于简化配置使用 3 4 ### 快速使用 5 6 #### 单机 7 ```yaml 8 base: 9 redis: 10 enable: true 11 standalone: 12 addr: localhost:16379 13 ``` 14 15 #### 哨兵 16 ```yaml 17 base: 18 redis: 19 enable: true 20 sentinel: 21 master: mymaster 22 addrs: 23 - localhost:26379 24 - localhost:26380 25 - localhost:26381 26 ``` 27 28 #### 集群 29 ```yaml 30 base: 31 redis: 32 enable: true 33 cluster: 34 addrs: # 多个节点地址 35 - localhost:6381 36 - localhost:6382 37 - localhost:6383 38 - localhost:6384 39 - localhost:6385 40 - localhost:6386 41 max-redirects: 3 42 ``` 43 44 #### 代码 45 只提供一个封装方法,其他的均是go-redis的api 46 47 ```go 48 import ( 49 "testing" 50 "github.com/isyscore/isc-gobase/extend/redis" 51 ) 52 53 func TestRedis(t *testing.T) { 54 rdb, _ := redis.NewClient() 55 56 // ... 57 } 58 ``` 59 60 ### redis所有配置 61 ```yaml 62 base: 63 redis: 64 # 是否启用redis,默认关闭 65 enable: bool 66 password: string 67 username: string 68 # 单节点模式 69 standalone: 70 addr: string # 数据库节点 71 database: int 72 network: string # 网络类型,tcp或者unix,默认tcp 73 read-only: bool # 开启从节点的只读功能 74 # (主从高可用)哨兵模式 75 sentinel: 76 master: string # 哨兵的集群名字 77 addrs: # 哨兵节点地址 78 - string 79 - string 80 database: int # 数据库节点 81 sentinel-user: string # 哨兵用户 82 sentinel-password: string # 哨兵密码 83 slave-only: bool # 将所有命令路由到从属只读节点。 84 # 集群模式 85 cluster: 86 addrs: # 多个节点地址 87 - string 88 - string 89 max-redirects: int # 最大重定向次数,默认3次 90 read-only: bool # 开启从节点的只读功能 91 route-by-latency: bool # 允许将只读命令路由到最近的主节点或从节点,它会自动启用 ReadOnly 92 route-randomly: bool # 允许将只读命令路由到随机的主节点或从节点,它会自动启用 ReadOnly 93 94 # 命令执行失败配置 95 max-retries: int # 命令执行失败时候,最大重试次数,默认3次,-1(不是0)则不重试 96 min-retry-backoff: int #(单位毫秒) 命令执行失败时候,每次重试的最小回退时间,默认8毫秒,-1则禁止回退 97 max-retry-backoff: int # (单位毫秒)命令执行失败时候,每次重试的最大回退时间,默认512毫秒,-1则禁止回退 98 99 # 超时配置 100 dial-timeout: int # (单位毫秒)超时:创建新链接的拨号超时时间,默认15秒 101 read-timeout: int # (单位毫秒)超时:读超时,默认3秒,使用-1,使用-1则表示无超时,0的话是表示默认3秒 102 write-timeout: int # (单位毫秒)超时:写超时,默认是读超时3秒,使用-1,使用-1则表示无超时,0的话是表示默认3秒 103 104 # 连接池相关配置 105 pool-fifo: bool # 连接池类型:fifo:true;lifo:false;和lifo相比,fifo开销更高 106 pool-size: int # 最大连接池大小:默认每个cpu核是10个连接,cpu核数可以根据函数runtime.GOMAXPROCS来配置,默认是runtime.NumCpu 107 min-idle-conns: int # 最小空闲连接数 108 max-conn-age: int #(单位毫秒) 连接存活时长,默认不关闭 109 pool-timeout: int #(单位毫秒)获取链接池中的链接都在忙,则等待对应的时间,默认读超时+1秒 110 idle-timeout: int #(单位毫秒)空闲链接时间,超时则关闭,注意:该时间要小于服务端的超时时间,否则会出现拿到的链接失效问题,默认5分钟,-1表示禁用超时检查 111 idle-check-frequency: int #(单位毫秒)空闲链接核查频率,默认1分钟。-1禁止空闲链接核查,即使配置了IdleTime也不行 112 ``` 113 114 说明:<br/> 115 支持redis在不同模式下进行运行,配置也可以同时配置不过这里有优先级:<br/> 116 > 哨兵模式 > 集群模式 > 单机模式 117