redis面试

redis面试2405

心得

  • 总以为部署个项目,操作一遍就能越来越好,就可以天下无敌了。
  • 那知道付出了那么多,花费了那么多时间才明白,一切都是狗屎,付出的青春和热血,除了碌碌无为,一无所获。
  • 学习的第一步是从理论上理解原理,理解了之后才是用操作来辅助理解的。操作是没有意义的,因为没有办法考核。
  • 真正有意义的是对理论的理解,这个也是考核的重点,是面试的难点。
  • 只有先理论上通过面试,才可以入职。
  • 入职后就会有个适应期,这个试用期才会用到你的操作技能。
  • 一个好的文章是结合实践和应用长时间的打磨产生的,不是挤出个周六日的时间2天就能写好的。

优秀博客

Redis·106道必会面试题

  • Redis·106 道面试题
  • 面试题 3 . 简述Redis的数据类型?
  • 面试题 6 . Redis是单进程单线程的?
  • 面试题 8 . 阐述Redis 的持久化机制?各自的优缺点?
  • 面试题 9 . Redis过期键的删除策略?
  • 面试题 15 . Redis的key的命名规范 ?
  • 面试题 29 . 简述Redis最适合的场景?
  • 面试题 30 . 简述 Redis 提供 6 种数据淘汰策略?
  • 面试题 38 . 阐述缓存穿透?怎么解决?
  • 面试题 39 . 保证Redis 缓存和数据库数据的一致性?
  • 面试题 41 . 如果有大量的key需要设置同一时间过期,如何处理?
  • 面试题 46 . 简述什么是热key吗?热key问题怎么解决?
  • 面试题 50 . 简述缓存雪崩?如何避免?

用redis做什么工作

这个考察的目的是redis的应用场景,都有哪些在项目中的应用。 缓 锁 制 算

1 作为数据缓存,避免大量的基本数据直接中数据库中获取。
2 复杂计算得出的数据,暂存在redis缓存中,提高应用的性能,节省资源。
3 redis数据结构的运作,比如zset做一个当天接口调用的排行,在比如用redis做一个接口调用计数器,达到阈值的时候,既是启动限流和降级并预警。
4 做主库,对当天的热点数据或频繁读写的数据,通过异步机制放到数据库中存储,保留一段时间。
5 其他还有做分布式锁,做发布订阅机制,以及数据结构求交集和并集的一些运算等等。

分布式锁的应用

zk和redis都使用过,但更推荐使用zk,因为他是高一致性,更可靠。接下来说说原理。

- zk实现
实现的原理就是zk的临时顺序节点,watch机制来实现的,有多个微服务或线程的情况下,只有一个去zk上创建锁,其他服务无法创建成功。
- redis实现
 它是利用lua脚本和消费订阅机制来实现的,redis锁的特点是高可用性,所以一旦redis中的数据出现了不一致,可能会出现多个客户端同时加到锁的情况。如果用redis加锁需要设置锁的标识,设置锁的超时时间,以及在fanally中去解锁,避免死锁的出现。

redis常用的使用场景有那些

一个会话缓存,实现统一认证,
常用的数据缓存,
利用它list的数据结构做一个简单的消息队列,
set数据结构因为可以去重,可以做一个uv的统计,或者存储用户的id。也可以做集合的一些操作,比如求共同认识的人。
利用redis的有序set的数据结构可以做一个排行榜或计数器
利用redis实现一个发布订阅的功能。
利用redis的hash存储一些结构花的数据,比如用户的昵称 年龄等等一个用户信息的对象数据。
利用redis实现分布式锁

redis实现计数器

利用redis的自增命令设置一个key保存计数器的值
使用redis的分布式锁,保证分布式情况下,只有一个线程修改这个计数器
利用redis的持久化,把这个值放到磁盘上,保证意外情况不会受到影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值