- Redis有什么优点?
1. 速度快:数据存储在内存中,类似于HashMap,操作和查找的时间复杂度都是O(1);
2. 支持数据类型丰富:有字符串string,字典hash,列表list,集合set,有序集合zset
3. 支持持久化
- Redis有什么缺点?
1. 存储受内存大小限制;
2. 持久化时占用cpu较高
- 为什么redis单线程的效率这么高?
1. 操作的内存,本身速度快;
2. 使用单线程,避免了上下文切换。
- Redis有几种持久化方式?
有全量RDB持久化和增量AOF持久化。
1. 全量RDB持久化,在指定时间,fork一个子进程,将数据写入到临时文件,完成后替换之前的文件,用二进制压缩存储。
1.1 可以灵活设置备份频率和周期,适合冷备份,恢复快,性能最大化。
1.2 在完成持久化之前宕机,会丢失数据;fork子进程占用资源。
2. 增量AOF持久化,将每一个非读操作,记录到文件中,使用操作恢复。
2.1 使用追加模式,不会影响以前的数据;丢失数据量少;文件过大会重写压缩;生成的文件格式清晰,易于理解;
2.2 生成的文件要大,恢复速度慢于RDB;运行效率低于RDB;操作回放更加脆弱。