redis是一款流行的内存数据库,默认是无密码登录,若出于安全考虑,需要为其加上控制权限,则可以通过以下2种方法来设置。
1. 采用绑定IP的方式来进行控制(比较安全的方法)
在redis.conf(windows版的redis的配置文件是redis.windows.conf)文件中找到如下配置:
# If you want you can bind a single interface, if the bind option is not # specified all the interfaces will listen for incoming connections. # # bind 127.0.0.1
把# bind 127.0.0.1前面的 注释#号去掉,然后把127.0.0.1改成你允许访问你的redis服务器的ip地址,表示只允许该ip进行访问
这种情况下,我们在启动redis服务器的时候不能再用:redis-server,改为:redis-server path/redis.conf 即在启动的时候指定需要加载的配置文件,其中path/是你上面修改的redis配置文件所在目录,这个方法有一点不太好,我难免有多台机器访问一个redis服务。
2. 设置密码
在redis.conf(windows版的redis的配置文件是redis.windows.conf)文件中找到requirepass,修改如下:
requirepass yourpassword
yourpassword就是redis验证密码,设置密码后可以登录,但是无法执行命令。命令如下:
redis-cli -h yourIp -p yourPort//启动redis客户端,并连接服务器 keys * //输出服务器中的所有key
报错如下:
(error) ERR operation not permitted
这时候你可以用授权命令进行授权,命令如下:
auth yourpassword
另外,在连接服务器的时候就可以指定登录密码,避免单独输入上面授权命令,命令如下:
redis-cli -h yourip-p yourport -a youpassword
除了在配置文件redis.conf中配置验证密码以外,也可以在已经启动的redis服务器通过命令行设置密码,但这种方式是临时的,当服务器重启了密码必须重设。命令行设置密码方式如下:
config set requirepass yourpassword
有时候我们不知道当前redis服务器是否有设置验证密码,或者忘记了密码是什么,我们可以通过命令行输入命令查看密码,命令如下:
config get requirepass