java面试背诵随笔(Redis 背诵第一天)

1、内存泄漏

   程序   申请   不在使用的对象占用内存不被回收

    解决:使用强引用不能解决,但是使用弱引用可能解决。

2、强引用

        new  反射 都属于         不会被垃圾回收         内存不足报错也不回收。

        解决:        显式将引用赋值为null

3、弱引用

        用WeakReference类来表示的对象          无论内存是否充足,都会被垃圾回收。

        多用在缓存中。

 

4、Redis持久化

        RDB:以快照的方式在规定的时间内写入磁盘。

        优点:整个Redis数据库只包含一个dump.rdb文件,方便持久化。

                    容灾性好,方便备份

                     性能最大化

                      相对数据集大的时候,比AOF的启动效率高

        缺点:数据安全性低。RDB是间隔一段时间持久化,在间隔时间内可能会发生故障。

        AOF:以日志的方式写入磁盘,日志记录写和删除的操作,不记录查操作。

        优点:数据安全,提供了3种同步策略,即每秒同步、每修改同步和不同步。

                    通过append模式写文件,可以用redis-check-aof工具解决数据一致问题

                     AOF的rewrite模式,定期对AOF文件重写,达到压缩的目的。

        缺点:AOF比RDB文件大。恢复速度慢

                    数据集大的时候比rdb启动慢

                     运行效率没有RDB高。

5、Redis的过期键删除策略

        1、惰性过期:当访问一个key时,才判断key是否过期。过期则清除,对cpu友好,对内存不友好

        2、定期过期:定时扫描数据库里面的key,并清除已过期的key。

        3、redis同时使用两种方案。

6、Redis线程模型,单线程为什么快

        Redis是基于Reactor(响应式)模式开发的网络事件处理器,这个处理器叫做文件事件处理器,这个处理器是单线程的,所以Redis是单线程的模型。

        单线程快的原因:

        首先来理解一下单线程和多线程的区别,什么时候用单线程和多线程主要。

7、缓存雪崩

        造成原因:同一时间大量缓存数据过期,造成大量数据去访问数据库,导致数据库崩掉。

        解决方案:给缓存失效时间设置随机值,避免大量数据同一时间失效

                           给缓存数据加一个标识,如果缓存标识失效,则更新数据缓存

                            加锁和缓存预热

8、缓存穿透

        造成原因:数据在缓存和数据库中都没有记录,造成大量数据请求都落在数据库上,导致数据库崩掉。

        解决方案:在接口层加上基础校验

                         设置key-value为key-null

                         采用布隆过滤器

9、缓存击穿

        造成原因:缓存中没有数据,导致大量数据访问数据库,造成数据库崩掉。

        解决方案:设置热点数据永不过期。

                           加锁。

10、Redis高可用方案

        1、主从模式

        2、哨兵模式:集群监控:        监控主从节点        

                                消息通知:        节点情况通知管理员

                                故障转移:        主节点转移从节点        

                                配置中心:        配置变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lonzgzhouzhou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值