reidgo 使用密码配置连接池

本地服务链接远程redis服务器时,往往需要远程redis服务允许远程链接,修改redis配置如下

修改redis服务器的配置文件

  • 打开redis.server配置文件,修改如下配置
//关闭本地监听或者改为0.0.0.0
# bind 127.0.0.1 
//保护模式
protected-mode no
 //去掉 # 号变requirepass foobared ,注:foobared是密码;
#requirepass foobared 
  • 重启redis
  • 将6379端口暴露出去
iptables -I INPUT 1 -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT

配置reidgo连接池

下载redigo go get github.com/garyburd/redigo/redis
官方手册 https://godoc.org/github.com/garyburd/redigo/redis

func RedisPool() *redis.Pool {
	return &redis.Pool{
		MaxIdle: 3,//最大空闲数
		MaxActive:100,//最大活跃数
		IdleTimeout: 240 * time.Second,//最大的空闲连接等待时间,超过此时间后,空闲连接将被关闭
		Dial: func () (redis.Conn, error) {
			//此处对应redis ip及端口号
			conn, err := redis.Dial("tcp", "127.0.0.1:6379")
			if err != nil {
				return nil, err
			}
			//此处1234对应redis密码
			if _, err := conn.Do("AUTH", "123456"); err != nil {
				conn.Close()
				return nil, err
			}
			return conn,err
		},
	}
}

使用连接池

redisPool := RedisPool()
defer redisPool.Close()
conn := redisPool.Get()
str, err := redis.String(conn.Do("get", "name"))

//返回的是对应的字符切片
fmt.Println(str)
//gangan

redis 提供了相关的将interface转换为其他类型的数据的方法,参考如下

func Bool(reply interface{}, err error) (bool, error)
func Bytes(reply interface{}, err error) ([]byte, error)
func Float64(reply interface{}, err error) (float64, error)
func Int(reply interface{}, err error) (int, error)
func Int64(reply interface{}, err error) (int64, error)
func String(reply interface{}, err error) (string, error)
func Strings(reply interface{}, err error) ([]string, error)
func Uint64(reply interface{}, err error) (uint64, error)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值