Redis是开源的、免费的、C语言编写的、高性能的、key-value结构的、分布式内存数据库,是一种NoSql(Not Only Sql)数据库。key为字符串,value有五种常见数据类型:String、Hash、List、Set、Zset,三种特殊数据类型:Bitmaps、Geospatial、Hyperloglog。
Redis的数据持久化策略:RDB和AOF
- RDB(Redis Database Backup file):默认开启的持久化策略,将当前时刻的数据持久化到dump.rdb文件中(也叫快照策略)。如配置文件中的默认配置save 900 1、save 300 10、save 60 10000,含义为至少有1个、10个、10000个key被改变时,则15分钟、5分钟、1分钟持久化一次。
a. 优点:持久化频率低,redis性能高。且数据恢复快,适合大数据集恢复场景,如备份,全量复制。
b. 缺点:数据丢失较严重。 - AOF(append only file):默认未开启,将每秒的写入命令持久化到啊appendonly.aof文件。通过配置文件中的appendonly no修改为yes开启。
a. 优点:持久化频率高,数据更安全,最多丢失一秒的数据。
b. 缺点:影响redis性能,但观察到cpu负载不高就问题不大。相同的数据集,aof文件体积大于rdb文件,且恢复数据较慢。 - 建议同时开启两个持久化策略。Redis4.0以前,开启aof策略后,redis重启仅根据aof文件进行数据恢复。之后的版本会根据RDB的时间点恢复该时间点以前的数据,以后的数据根据AOF恢复。