Redis的高级应用——数据安全


      Redis的数据保存在内存中,速度十分快。这也就意味着,一个恶意破解redis数据库密码的用户,可以在一秒钟进行更多的尝试。如果用户密码级别较低或更换频率过长,就会造成致命的危害。


1、设置用户

       Redis默认是没有用户的,我们可以在执行各种操作命令时,都不需要用户验证,但这是十分不安全的,多人使用Redis的话,也是特别不好管理的。下面介绍如何设置Redis用户:


1)进入安装目录,编辑文件redis.conf。




2)输入“/”,搜索requirepass foobared




3)重启Redis

客户端连接,需要输入用户身份:


两种方式:

——使用“auth”命令


——在客户端连接时指定用户



      注意:如果原来未设置用户,立刻修改配置文件,重启Redis后必须输入用户名,并且输入用户名之后之前的数据就找不到了。因此,在设定用户前,一定要做好备份!



2、持久化相关

      Redis中的key数据存储在内存中,关机会释放。同样,他也支持持久化同步到硬盘。这样使得Redis的数据安全性大大提高。

      

      两种方式:

      1)snapshotting(快照)

      Redis的默认方式,该方式下内存数据存入二进制文件,但无法查看,一般文件类型为dump.rdb。

     具体配置在redis.conf文件中,语法含义注释也说的挺清楚了,就不多说了。





       注意:这种快照方式配置简单、灵活,但如果在宕机之前还没有到备份快照的时间,那么宕机之前到上一次备份之间的所有数据将会丢失。下面一种方式就可以解决这种情况。


      2)Append-only file

      这种方式操作的是存放文件,简单的说,Redis每收到一个命令请求,都会写到文件中。当Redis正常或非正常重启时会执行文件中的操作来重建整个库,有点sql脚本的意思。


      实现方式:

      同样是在redis.conf中将 appendonly no 改为 appendonly yes,然后配置具体方式,这里采用 everysec每秒钟写入磁盘一次。



      进入客户端,随便输入一条命令,然后退出,执行“ll”命令,查看:

      

      appendonly.aof文件就是我们配置产生的文件,使用“cat”命令查看。


原文地址:https://www.cnblogs.com/saixing/p/6730230.html