代码拉取完成,页面将自动刷新
package cluster
import (
"github.com/gomodule/redigo/redis"
"github.com/letsfire/redigo/mode"
"github.com/letsfire/redisc"
)
type clusterMode struct {
rc *redisc.Cluster
}
func (cm *clusterMode) GetConn() redis.Conn {
return cm.rc.Get()
}
func (cm *clusterMode) NewConn() (redis.Conn, error) {
return cm.rc.Dial()
}
func (cm *clusterMode) String() string {
return "cluster"
}
var _ mode.IMode = &clusterMode{}
func New(optFuncs ...OptFunc) *clusterMode {
opts := options{
nodes: []string{
"127.0.0.1:30001", "127.0.0.1:30002", "127.0.0.1:30003",
"127.0.0.1:30004", "127.0.0.1:30005", "127.0.0.1:30006",
},
dialOpts: mode.DefaultDialOpts(),
poolOpts: mode.DefaultPoolOpts(),
}
for _, optFunc := range optFuncs {
optFunc(&opts)
}
rc := &redisc.Cluster{
StartupNodes: opts.nodes,
DialOptions: opts.dialOpts,
CreatePool: func(address string, options ...redis.DialOption) (*redis.Pool, error) {
pool := &redis.Pool{
Dial: func() (redis.Conn, error) {
return redis.Dial("tcp", address, options...)
},
}
for _, poolOptFunc := range opts.poolOpts {
poolOptFunc(pool)
}
return pool, nil
},
}
return &clusterMode{rc: rc}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。