write tcp 127.0.0.1:53008->127.0.0.1:6379: use of closed network connection原因—Go连接Redis

在使用连接redis时遇到了一些问题。容许我从头讲起

第三方开源库

go get -v github.com/garyburd/redigo/redis

使用时导入SDK包

 操作使用Redis

func main() {
	//func Dial(network, address string, options ...DialOption)
	// 连接方式: tcp   地址:本机ip+端口号
	conn, err := redis.Dial("tcp", ":6379")
	//认证redis
	_, err = conn.Do("AUTH", "123456")
	if err != nil {
		conn.Close()
	}
	fmt.Println("success")
	s, err := redis.String(conn.Do("get", "key1"))
	fmt.Println(s)
	//类型断言接口
	r, err := redis.Int(conn.Do("Get", "key1"))
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println(r)
	//延时关闭
	conn.Close()
}

此时提示报错信息


说明原因:

其实一开始我也没有注意到自己的代码究竟是哪里错了,知道后面,我查看了一下关于Redis的认证问题,发现在个人自己刚刚下完Redis,并且使用go进行连接和使用时,是不需要这个安全认证的,因为自己还未进行设置安全认证(我之所以之前加这个安全认证,也是因为看的GO连接Redis的一篇博客,看着人家加了,然后自己也加了,但是却没有跑通) ,所以导致安全认证失败,无法正常使用Redis。


解决方式:

将Redis的安全认证代码注释掉即可。

func main() {
	//func Dial(network, address string, options ...DialOption)
	// 连接方式: tcp   地址:本机ip+端口号
	conn, err := redis.Dial("tcp", ":6379")
/*	//认证redis
	_, err = conn.Do("AUTH", "123456")
	if err != nil {
		conn.Close()
	}*/
	fmt.Println("success")
	s, err := redis.String(conn.Do("get", "key1"))
	fmt.Println(s)
	//类型断言接口
	r, err := redis.Int(conn.Do("Get", "key1"))
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println(r)
	//延时关闭
	conn.Close()
}

PS:

关于Redis的安全认证:

Redis数据库的默认打开方式为无密码打开,现在要将其设置为以密码形式打开。

第一种方式:Redis文件夹内容

1、修改配置文件 

在redis.windows.conf文件中设置密码的命令中添加requirepass 123456一行,将Redis数据库的密码设置为123456

2、运行redis-server.exe程序

3、双击运行redis-cli.exe程序

4、输入 config get requirepass 命令

回车后,显示空字符串

5、输入auth “123456”命令

显示error

6、用带参数(配置文件)的形式运行redis-server.exe程序

创建一个bat文件,文件内容如下:

@echo offtitle rediscd /d D:\Program Files\Redis-x64-3.2.100redis-server.exe redis.windows.conf

其中D:\Program Files\Redis-x64-3.2.100为redis的安装路径。

7、输入auth “123456”命令

显示OK

8、输入config get requirepass
显示密码

第二种方式:

打开redis.conf,找到requirepass所在的地方,修改为指定的密码,再去掉前面的#号注释符,然后重启redis即可。

注意:密码为明文的,所以我们要保证redis.conf文件的权限以保证更加安全。

设置成功后,现在我们操作redis就需要密码了。

不输入密码也可以进入,但是当对key进行操作的时候,就会提示“(error) ERR operation not 

permitted”,此时输入auth reson(reson为我设置的密码)就可以操作了,如下图所示:

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值