1、RDB和AOF
RDB实际操作过程是fork一个子进程,先将数据集写 入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。<br />AOF以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以 打开文件看到详细的操作记录。
2、键的过期策略
惰性过期:只有当访问一个key时,才会判断该key是否已过期,过期则清除。该策略可以最大化
地节省CPU资源,却对内存非常不友好。极端情况可能出现大量的过期key没有再次被访问,从而
不会被清除,占用大量内存。
定期过期:每隔一定的时间,会扫描一定数量的数据库的expires字典中一定数量的key,并清除其
中已过期的key。该策略是一个折中方案。通过调整定时扫描的时间间隔和每次扫描的限定耗时,
可以在不同情况下使得CPU和内存资源达到最优的平衡效果。
3、redis数据结构
- 字符串:(String)可以⽤来做最简单的数据缓存,可以缓存某个简单的字符串,也可以缓存某个json格式的字符串,Redis分布式锁的实现就利⽤了这种数据结构,还包括可以实现计数器、Session共享、分布式ID
2. 哈希表:可以⽤来存储⼀些key-value对,更适合⽤来存储对象
3. 列表:Redis的列表通过命令的组合,既可以当做栈,也可以当做队列来使⽤,可以⽤来缓存类似微信
公众号、微博等消息流数据
4. 集合:和列表类似,也可以存储多个元素,但是不能重复,集合可以进⾏交集、并集、差集操作,从⽽
可以实现类似,我和某⼈共同关注的⼈、朋友圈点赞等功能
5. 有序集合:集合是⽆序的,有序集合可以设置顺序,可以⽤来实现排⾏榜功能4、布隆过滤器