Redis默认配置是不需要密码认证的,主要输入命令:redis-cli.exe -h 主机号 -p 端口号(本地直接redis-cli.exe)就可以连接进入Redis控制台。这样显然存在一定的安全隐患,所以配置好Redis后我们需要启用Redis的认证密码来增加Redis服务器的安全性。
客户端设置Redis密码
这里可以看到查询到的Redis默认密码是为空的,这时候我们可以客户端中通过命令:config set requirepass newPassword来设置Redis密码,newPassword是我们要设置的新密码(如:123456)。此时我们重新打开客户端连接Redis,虽然也可以登录成功但是没有任何操作权限。再次查询密码就会提示错误:(error) NOAUTH Authentication required,只有输入密码之后才能查询。
重启Redis密码丢失
通客户端命令行配置密码不用重新启动Redis立即生效,但是重启Redis服务之后该密码就会失效。这里我们可以看到我重新启动了Redis服务之后再次查询Redis密码还是为空的,这个应该是Redis默认有配置初始密码,当Redis重启后依旧使用了redis配置文件中的密码。
配置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密码认证之后我们登陆就需要输入密码了,密码可以在登录后通过auth来验证,出现OK则说明你已经可以使用Redis客户端了。也可以在登录时通过-a直接在后面输入密码,成功登录后就可以在控制台随意插入删除数据了。测试用echo输出helloworld字符,未认证前是无法打印的。
总结:
我这都是在本地登录所以直接都是.\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"