Redis从入门到精通:初级篇 (2)

redis-cli shutdown,这是种安全关闭redis的方式,但这种写法只适用于没有配置密码的场景,比较不安全,配置密码下一部分会讲

kill -9 pid,这种方式就是强制关闭,可能会造成数据未保存

重启后,我们可以使用ps -ef | grep redisnetstat -ant | grep 6379命令来验证Redis已经启动。

 

Redis登录授权

上面我们安装了Redis,但这种方式是非常不安全的,因为没有密码,这样任何连接上Redis服务器的用户都可以对Redis执行操作,所以这一部分我们来讲一下给Redis设置密码。

打开redis.conf,找到"requirepass"部分,打开原本关闭的注释,替换一下自己想要的密码即可:

Redis从入门到精通:初级篇

重启Redis,授权登录有两种做法:

连接的时候直接指定密码,redis-cli -h 127.0.0.1 -p 6379 -a 123456

连接后授权,redis-cli -h 127.0.0.1 -p 6379auth 123456

在配置了密码的情况下,没有进行授权,那么对Redis发送的命令,将返回"(error) NOAUTH Authentication required."。

 

Redis配置文件redis.conf

上面两小节,设置使用守护线程启动、设置密码,都需要修改redis.conf,说明redis.conf是Redis核心的配置文件,本小节我们来看一下redis.conf中一些常用配置:

配置   作用   默认  
bind  

当配置了bind之后:

只有bind指定的ip可以直接访问Redis,这样可以避免将Redis服务暴露于危险的网络环境中,防止一些不安全的人随随便便通过远程访问Redis

如果bind选项为空或0.0.0.0的话,那会接受所有来自于可用网络接口的连接

  127.0.0.1  
protected-mode  

protected-mode是Redis3.2之后的新特性,用于加强Redis的安全管理,当满足以下两种情况时,protected-mode起作用:

bind未设置,即接收所有来自网络的连接

密码未设置

当满足以上两种情况且protected-mode=yes的时候,访问Redis将报错,即密码未设置的情况下,无密码访问Redis只能通过安装Redis的本机进行访问

  yes  
port   Redis访问端口,由于Redis是单线程模型,因此单机开多个Redis进程的时候会修改端口,不然一般使用大家比较熟悉的6379端口就可以了   6379  
tcp-backlog   半连接队列的大小,对半连接队列不熟的可以看我以前的文章TCP:三次握手、四次握手、backlog及其他   511  
timeout   指定在一个client空闲多少秒之后就关闭它,0表示不管   0  
tcp-keepalive  

设置tcp协议的keepalive,从Redis的注释来看,这个参数有两个作用:

发现死的连接

从中间网络设备的角度看连接是否存活

  300  
daemonize   这个前面说过了,指定Redis是否以守护进程的方式启动   no  
supervised   这个参数表示可以通过upstart和systemd管理Redis守护进程,这个具体和操作系统相关,资料也不是很多,就暂时不管了   no  
pidfile   当Redis以守护进程的方式运行的时候,Redis默认会把pid写到pidfile指定的文件中   /var/run/redis_6379.pid  
loglevel  

指定Redis的日志级别,Redis本身的日志级别有notice、verbose、notice、warning四种,按照文档的说法,这四种日志级别的区别是:

debug,非常多信息,适合开发/测试

verbose,很多很少有用的信息(直译,读着拗口,从上下文理解应该是有用信息不多的意思),但并不像debug级别这么混乱

notice,适度的verbose级别的输出,很可能是生产环境中想要的

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpyyzx.html