Redis相关面试题

Redis是单线程还是多线程

单线程:满足Redis的串行原子,只不过IO多线程之后,把输入/输出放到更多的线程中去并行,好处:

  • 执行时间缩短,更快;
  • 更好的压榨系统及硬件资源;

Redis存在线程安全的问题吗?为什么?

Redis可以保障内部串行化执行,但是外界使用的时候要保障线程安全的问题;

遇到过缓存穿透吗?详细描述一下?

缓存穿透:Redis中没有这个key

遇到过缓存击穿么?详细描述一下

缓存击穿:热点key过期,从而造成大量请求访问数据库,数据库有,大量的并发,Redis没有缓存

如何避免缓存雪崩?

雪崩是大量的击穿:大量的key同时过期;

缓存是如何回收的?

  • 后台轮询:分段分批的删除那些过期的key;
  • 请求的时候判断的时候已经过期了;
    尽量把内存无用空间回收回来;

缓存是如何淘汰的?

内存空间不足的情况下:

  • 淘汰机制里有不允许淘汰;
  • lru/lfu/random/TTL;
  • 全空间;
  • 设置过期的key的集合中;

如何进行缓存预热?

  • 提前把数据塞入Redis;
  • 开发逻辑上也要规避差集;

数据库与缓存不一致如何解决?

  • Redis是缓存,更倾向于稍微的有时差;
  • 减少DB的操作;

简述一下主从不一致的问题

  • Redis默认是弱一致性的,异步的同步;
  • 锁不能用主从(单实例/分片集群/redlock)==> redission
  • 在配置中提供了必须与多少个client连接能够同步,可以配置同步因子趋向于强一致性;
  • wait

Redis持久化原理

  • RDB,AOF:主从同步也算持久化,
  • 当前线程阻塞服务;
  • 异步后台进程完成持久化;
    fork + cow

14、Redis有哪些持久化方式

RDB、AOF,

17、Redis的事务三条指令是什么?第三条指令到达之后执行失败了,如何处理?

18、为什么使用setnx

能够完成原子性的操作;
如果要做分布式锁,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值