Redis默认配置是不需要密码认证的,主要输入命令:redis-cli.exe -h 主机号 -p 端口号(本地直接redis-cli.exe)就可以连接进入Redis控制台。这样显然存在一定的安全隐患,所以配置好Redis后我们需要启用Redis的认证密码来增加Redis服务器的安全性。

redis密码设置(设置Redis登录密码详解)(1)

客户端设置Redis密码

这里可以看到查询到的Redis默认密码是为空的,这时候我们可以客户端中通过命令:config set requirepass newPassword来设置Redis密码,newPassword是我们要设置的新密码(如:123456)。此时我们重新打开客户端连接Redis,虽然也可以登录成功但是没有任何操作权限。再次查询密码就会提示错误:(error) NOAUTH Authentication required,只有输入密码之后才能查询。

redis密码设置(设置Redis登录密码详解)(2)

重启Redis密码丢失

通客户端命令行配置密码不用重新启动Redis立即生效,但是重启Redis服务之后该密码就会失效。这里我们可以看到我重新启动了Redis服务之后再次查询Redis密码还是为空的,这个应该是Redis默认有配置初始密码,当Redis重启后依旧使用了redis配置文件中的密码。

redis密码设置(设置Redis登录密码详解)(3)

配置Redis密码

Windows的Redis配置文件是redis.windows.conf,关闭Redis服务打开redis.windows.conf。找到“# requirepass foobared”这一行(默认注释了),在这行下面增加一行“requirepass password”来开启Redis密码认证。重新启动Redis服务,这里遇到一个错误:Invalid argument during startup: unknown conf file parameter (无效的文件参数),检查之后发现错误竟然是因为配置前面多了空格....!

redis密码设置(设置Redis登录密码详解)(4)

登录验证

开启Redis密码认证之后我们登陆就需要输入密码了,密码可以在登录后通过auth来验证,出现OK则说明你已经可以使用Redis客户端了。也可以在登录时通过-a直接在后面输入密码,成功登录后就可以在控制台随意插入删除数据了。测试用echo输出helloworld字符,未认证前是无法打印的。

redis密码设置(设置Redis登录密码详解)(5)

总结:

我这都是在本地登录所以直接都是.\redis-cli.exe(可以这样登录:.\redis-cli.exe -h 127.0.0.1 -p 6379),如果你登录的是服务端的需要指定ip和端口来登录:.\redis-cli.exe -h 服务器ip -p 6397。以上内容是小编给大家分享的【Redis实战003:设置Redis登录密码详解】,希望对大家有所帮助。如果大家有任何疑问请给我留言,小编会及时回复大家的。

为了方便学习,下面附上本文用到的源码:

.\redis-cli.exe
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
>config set requirepass 123456
OK
-----------------------重新打开--------------------
>.\redis-cli.exe
127.0.0.1:6379> config get requirepass
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "123456"
> .\redis-server.exe --service-stop
[12576] 14 Oct 08:51:35.753 # Redis service successfully stopped.
> .\redis-server.exe --service-start
[15776] 14 Oct 08:51:45.871 # Redis service successfully started.
> .\redis-cli.exe
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
//redis.windows.conf文件
# Warning: since Redis is pretty fast an outside user can try up to
# 150k passwords per second against a good box. This means that you should
# use a very strong password otherwise it will be very easy to break.
#
# requirepass foobared   //默认未开启密码认证
  requirepass 123456     //错误设置,会报无效的文件参数
requirepass 123456       //正确设置
------------------------------------------------------------------
> .\redis-server.exe --service-start
[10384] 14 Oct 09:07:49.592 # HandleServiceCommands: system error caught. 
error code=1053, message = StartService failed: unknown error
> .\redis-server.exe .\redis.windows.conf
Invalid argument during startup: unknown conf file parameter :

>.\redis-cli.exe
127.0.0.1:6379> echo helloworld
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> echo helloworld
"helloworld"
127.0.0.1:6379> quit
> .\redis-cli.exe -a 123456
127.0.0.1:6379> echo helloworld
"helloworld"