Redis是一个高性能的数据库。Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份,为了更好的使用redis,我们需要详细的了解redis配置文件及相关参数作用。
redis 的配置文件
首先yum安装的配置文件在/etc/redis.cnf里面
1 | sudo vi /etc/redis.conf |
找到显示bind行添加
1 | bind 127.0.0.1 |
如果您计划从不同的主机访问Redis,建议将它与另一个IP地址连接,以增加它在外部各方的曝光度。你应该这样做:
1 | bind your_private_ip |
如果您不打算将Redis与其他主机绑定,则不需要包含额外的Redis防火墙规则。原因是,任何指向Redis的流量都将在默认模式下使用,除非防火墙指南公开允许。
另一方面,如果您不打算从不同的主机连接到Redis,那么通过对您的防火墙运行下面的命令来调整您的防火墙配置是很重要的:
1 | firewall-cmd --permanent --new-zonw=redis |
指定要保持打开的端口。默认情况下,Redis使用端口6397:
1 | firewall-cmd --permanent --zone=redis --add-port=6379/tcp |
包括任何私人但安全的IP地址,应该访问Redis
1 | sudo firewall-cmd --permanent --zone=redis -add source=client_server_private_IP |
重新加载系统防火墙设置以应用这些更改:
1 | sudo firewall-cmd --reload |
配置Redis密码
此过程支持其安全组件的功能,这些组件需要您的客户端在访问系统中的任何数据之前验证其身份。在这种情况下,在Redis中直接配置密钥密码如下:
1 | /etc/redis.conf |
1 2 | /etc/redis.conf # requirepass foobared |
通过去掉#,确保取消对指令的注释,并将读取的部分改为更强的密码
当您输入上面的命令时,相同的密码将会出现。所以,你需要想出一个新的密码,并对引号中的词做一些修改:
密码应该是强而长的,以确保您的系统是安全的。
命令输出应该是这样的:
1 2 | /etc/redis.conf requirepass password_copied_from_output |
一旦你设置了密码,你现在可以访问Redis:
1 | redis-cli |
要测试您为Redis创建的密码是否有效,请运行以下命令,在身份验证过程之前尝试设置一个键值:
1 | 127.0.0.1:6379> set sky8g hello |
如果Redis没有经过身份验证,它将返回以下错误:
1 2 | Output (error) NOAUTH Authentication required. |
下面的命令在你的Redis文件中验证你的密码:
1 | 127.0.0.1:6379> auth your_redis_password |
Redis应用程序将显示密码已通过文本“OK”进行身份验证。
完成之后,运行前面的命令并确保它成功。
要退出系统,请使用命令
1 2 | redis-cli. 127.0.0.1:6379> quit |
建立数据所有权和授权
在本节中,我们将介绍一些需要更改的数据所有权和文件授权,以确保Redis的安装安全。这是为了确保只有授权用户访问Redis。
你可以输入以下命令:
1 | ls -l /var/lib | grep redis |
输出应该如下所示:
1 | drwxr-xr-x 2 redis redis 4096 Aug 6 09:32 redis |
为了确保Redis用户可以访问数据目录,更改权限设置为授权文件770,如下所示:
1 | sudo chmod 770 /var/lib/redis |
另外,在默认模式下更改应用程序配置文件夹,该文件夹的文件授权为644。运行以下命令:
1 | ls -l /etc/redis.conf |
输出应该如下所示:
1 | rw-r--r-- 1 root root 30176 Jan 14 2014 /etc/redis.conf |
权限664可能是可读的,这可能会导致严重的安全问题。因此,继续并配置文件的权限。要做到这一点,运行以下命令:
1 | sudo chown redis:redis /etc/redis.conf |
更改所有权和授权,以确保只有Redi用户可以访问文件:
1 | sudo chmod 660 /etc/redis.conf |
使用以下命令验证权限:
1 | ls -l /etc/redis.conf |
输出应该是这样的:
1 | -rw------- 1 redis redis 29716 Sep 22 18:32 /etc/redis.conf |
重新启动Redis,以确认已配置:
1 | sudo systemctl restart redis |