Redis 进阶

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

工作一直只是简单的应用redis, 目前面试的时候常常在redis 方面被问的哑口无言,特作此篇记录redis 进阶,与诸君共勉;


提示:以下是本篇文章正文内容,下面案例可供参考

一、redis 面试常见问题

问题一 : Redis 是单线程还是多线程? 单线程为何速度这么块?
回答 :

  1. 单线程,在redis 5.0 版本前连接是单线程,5.0 版本后连接是多线程;此处的连接指代 处理和客户端的连接;
    但在redis 执行命令的时候,比如 get/set 这些是单线程。
  2. 操作速度快是因为 操作的是内存,而非磁盘;另外也是基于redis 高效的数据结构,hash 算法;

问题二 : Redis key 过期了 为什么内存还没释放?
回答:
3. redis 采取的过期策略是惰性删除,和定时删除策略;
惰性删除:是指在key 过期了,不会马上删除,需要在下一次取到当前数据的时候执行删除;
定时删除: 是指在(一定的时间内? 多久的时间)执行一次删除,注意,并不是删除所有的过期key,是删除大部分过期key;

问题三 : Redis 有哪些架构模式?优缺点如何?
回答:
4. 主从架构
在这里插入图片描述
一般都是一主 2 从,主节点负责承担读写请求,同时配置同步策略,主节点的数据往从节点同步,当主节点挂了的时候,需要手动运维将从节点数据切换成主节点;

  1. 哨兵架构
    在这里插入图片描述
    客户端在访问redis 的时候先访问哨兵,哨兵告知客户端主节点的信息,让后 客户端访问redis;
    哨兵集群监听redis 主从,在redis 主从发生问题的时候,哨兵从从节点(slave)选举出一个作为新的主节点;选举算法,无非就是那个slave 的节点数据最新,当一个主从半数投票给这个节点时,当前节点可作为主节点;

  2. 集群架构
    在这里插入图片描述
    问题四 : Redis 持久化策略一般如何设置?集群为何至少需要3个master 节点?
    回答:
    一般都是 master 不做持久化,由slave 节点做持久化,这样即使在 master 出问题的时候,也能由选举算法选出新的节点;一般持久化策略是AOF,一秒同步一次;这样即使丢了缓存数据,也在一秒内;对业务来说是可以忍受的; mater 的效率更高;
    redis 集群模式下的选举,一个slave 节点要想作为主节点,必须半数以上的 master 节点投票 才能升级成主节点;

二、redisson 分布式锁

1. redisson 分布式锁 的应用

代码如下(示例):

//阻塞式等待。默认加的锁都是30s
//1)、锁的自动续期,如果业务超长,运行期间自动锁上新的30s。不用担心业务时间长,锁自动过期被删掉
//2)、加锁的业务只要运行完成,就不会给当前锁续期,即使不手动解锁,锁默认会在30s内自动过期,不会产生死锁问题
RLock lock = redissonClient.getLock(seckillId);
//解锁
lock.unlock();

2.redisson 分布式锁 的原理

代码如下(示例):


该处使用的url网络请求的数据。

3. 缓存数据库双写一致性问题说明

4. 缓存数据库双写一致性问题解决方案


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值