redis的持久化
redis的高性能是因为数据都在内存中,如果数据库重启,则所有数据都会丢失,那么如何进行数据持久化呢?
RDB持久化
默认支持,在指定的时间内,把内存的数据写入磁盘
AOF持久化
以日志的形式记录每一个操作,启动的时候,重新执行所有log
无持久化
不进行持久化,则认为redis的作用为缓存,无需持久化数据
RDB与AOF同时使用
RDB持久化
优势
redis数据库仅包含一个文件,对于文件备份是非常方便的,如果系统出现灾难时,较容易恢复
灾难恢复时,备份文件较为容易单独转移到其他存储介质
数据量很大的时候,启动速度快
劣势
不能够保证数据无丢失,数据丢失时间 = 当前时间-最近备份时间
子进程完成持久化工作,如果数据集很大的时候,可能会造成短时间内redis所在服务器停止对外服务
配置
RDB默认配置文件中就有,可以查看redis.conf文件中关于save的设置
save 900 1 :900秒内至少有1个数据变化,则进行持久化
save 300 10 :300秒内至少有10个数据发生变化,则进行持久化
save 60 10000 : 60秒内至少有1w个数据发生变化,则进行持久化
dbfilename: 是命名当前持久文件的名字
dir:是定义当前持久化文件的存放路径
AOF持久化
优势
更高的数据安全性
1.每秒同步,最高丢失1s数据
2.每操作数同步,每次发生数据的变化都会立即记录到磁盘中,性能最低
append追加文件备份
备份过程中出现问题,不会破坏之前的日志备份
1.如果写入了一半数据,然后出现系奔溃的问题,在redis下一次启动之前,2.可以通过redis_check_aof工具解决数据一致性问题
如果日志备份过大
1.redis会自动启动日志重写机制,append过程中,会把备份数据写入到老的2.备份文件中,并且会用一个新文件,记录此期间的修改数据语句
AOF包含一个格式清晰的数据修改操作语句的日志文件
劣势
相同数量的数据集文件,比RDB的要打
AOF效率低于RDB
需要人员配置,非默认配置
配置
在redis.conf文件中,配置一下内容
appendonly yes:启动appendonly,开启AOF备份
appendfilename “appendonly.aof” :AOF备份的文件名
appendfsync always :每个修改操作同步备份一次
appendfsync everysec:1s同步备份一次
appendfsync no :不同步
redisClient的安装和使用
以上原理型的redis基本知识介绍完毕,但是实际开发过程中我们都是在代码中进行redis的基本操作,很少去实际的服务器进行客户端的操作,对于redis的客户端,我们也需要一个navicat一样优秀的客户端工具
redisClient
下载后直接解压,无需安装
直接双击exe程序启动即可。
也可以直接在客户端工具当中新增
其实一般主要测试连接成功,新增一个测试下基本上就ok,其他复杂的业务操作不会像传统数据库一样在客户端进行操作