redis 工作原理—大数据面试题汇总redis部分
答:redis 是一个 key-value 存储系统.和 Memcached 类似,它支持存储的 value 类型相
对更多,包括 string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和 hashs
(哈希类型)
这些数据类型都支持 push/pop、add/remove 及取交集并集和差集及更丰富的操作,而且
这些操作都是原子性的.
在此基础上,redis 支持各种不同方式的排序.与 memcached 一样,为了保证效率,数据
都是缓存在内存中.
区别的是 redis 会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并
且在此基础上实现了 master-slave(主从)同步.
Redis 提供了两种持续化机制,RDB 和 AOF。
RDB 持久化原理:通过 bgsave 命令触发,然后父进程执行 fork 操作创建子进程,子进程
创建 RDB 文件,根据父进程内存生成临时快照文件,完成后对原有文件进行原子替换(定
时一次性将所有数据进行快照生成一份副本存储在硬盘中)
优点:是一个紧凑压缩的二进制文件,Redis 加载 RDB 恢复数据远远快于 AOF 的方式。
缺点:由于每次生成 RDB 开销较大,非实时持久化,
AOF 持久化原理:开启后,Redis 每执行一个修改数据的命令,都会把这个命令添加到 AOF
文件中。
优点:实时持久化。
缺点:所以 AOF 文件体积逐渐变大,需要定期执行重写操作来降低文件体积,加载慢

