如何有效管理Redis?
收藏
在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是数据库学习者,那么本文《如何有效管理Redis?》就很适合你!本篇内容主要包括##content_title##,希望对大家的知识积累有所帮助,助力实战开发!
一、安全
谈到安全,我们会联想到些什么?
比如,可信任的环境会给我们带来安全感,陌生的环境则会让你感到未知的恐惧和孤独。
再比如,国产化替代信创项目(安可替代),这里我简称为国创项目,就是要达到信任、安全可靠以及自主可控的的目的。
上面谈了这么多(瞎扯了很多,我黔驴尽穷了),只是为了提升我们的安全意识。
Redis以简洁为美,创始人曾这么描述过。但同样在安全层面也没做过多的工作。
这里补充一点,上次没有讲到如何优雅的关闭Redis服务。虽然可以杀掉进程来控制,但推荐使用如下方式关闭:
$ /opt/redis-6.0.8/src/redis-cli shutdown
1、可信环境
Redis的安全设计是基于“Redis运行在可信任的环境”这个前提下做出来的。在生产环境(正式发布环境)运行时,不允许外部直接连接到Redis服务器上,此时应该通过应用程序进行中转,运行在可信任的环境中是保证Redis安全至关重要的方法。
1.1、bind参数
在Redis的默认配置文件redis.conf中,只会接受本地的网络请求。但通过在配置文件中修改bind
参数更改这一设置,默认的bind设置为:
bind:127.0.0.1
bind
参数同样可以绑定多个IP地址,IP地址以间隔空格分隔,如下示例:
# Examples:# bind 192.168.1.100 10.0.0.1# bind 127.0.0.1 ::1
1.2、protected-mode参数
在Redis3.2的版本中,引入了一个特殊模式:保护模式,来更好地确保Redis运行在可信环境之中。值得注意的是,保护模式在默认情况下是开启的。
参数设置:
#开启保护模式protected-mode yes#禁止保护模式protected-mode no
作用:
-
开启保护模式:接收到来自不在bind绑定的网络客户端发送命令时,如果客户端没有设置密码,Redis会返回错误拒绝(DENIED)执行该命令。
-
禁止保护模式:可以在配置中使用
protected-mode no
禁止。 -
安全:对于生产环境需要确保开启了护盾(防火墙),达到确保可信客户端连接服务器的目的。
在测试的时候,比如我在Windows下连接我的linux上的Redis服务。为了方便测试,此时临时关闭防护墙firewalld,或者采用firewall-cmd
命令加入6379默认端口以及Redis服务,关于防火墙的知识可以参考我之前的文章《firewalld与iptables防火墙工具》:
#临时关闭防火墙systemctl stop firewalld.service
注意:Redis3.2之前的版本默认会绑定所有网络接口,任何网络上的计算机(包含公网)都可连接至Redis服务器上。使用旧版的需要注意,最好修改这个参数,或者升级到新版。
2、数据库密码
Redis中提供了数据库密码功能。最开始我傻傻的以为直接就能连上,岂不是没有密码,真不安全。直到后来在工作的实践中,才发现原来这货可以是设置密码的,只是我以前并不知道而已。值得注意的是:并且在6.0版本中支持多用户权限控制功能。