zoukankan      html  css  js  c++  java
  • 大厂面试系列(六):Redis和缓存等

    Redis 和MongoDB及应用

    Redis

    • redis优化策略
    • redis除了做缓存还能做什么?
    • 说说redis持久化方式?分别优缺点是什么?redis更新策略是什么?
    • redis的数据结构存储?以及应用场景?如何实现集群和高可用?
    • 业务中redis如何保证可用性 怎么实现分布式锁(redis)
    • 分布式锁的实现方式,zk实现和Redis实现的比较
    • redis支持的数据类型到跳跃表,redis同步策略 ,如何自己实现lru
    • 什么是缓存击穿,redis的hotkey如何处理?如何保证数据库与缓存双写的一致性。
    • redis缓存过期策略,准备同步,哨兵机制和集群的区别
    • 遇到的问题就是“缓存穿透”和“缓存击穿”,“缓存雪崩”,双写不一致等。 如何解决上述遇到的问题?
    • redis有哪几种数据类型,如何持久化,怎么更新,使用场景,主从复制怎么做?影响redis的瓶颈?
    • NoSQL数据库,以及MongDB和Redis使用场景?
    • 缓存一致性问题 数据先写 redis?还是先写 MySQL? 写入失败怎么办? redis 或者 MySQL 挂掉怎么办?
    • redis的高可用,redis的集群方案,一致性哈希和哈希槽模式下缓存服务器宕机,数据如何迁移
    • 你知道redis为什么读写速度那么快么? redis数据装在内存中,那么数据可以持久化吗? redis数据持久化的方式有哪些呢? 这两种持久化方式的区别在哪里呢? 你知道redis的内存淘汰机制吗?redis的cluster集群原理能简单说一下吗?
    • 如何解决 Redis 的并发竞争 Key 问题
    • zset底层怎么实现的?
    • 关于Redis的主从复制?
    • Redis 怎么保证不丢数据,能不能保证严格意义的一定不会丢 Redis 集群,生产环境Redis 如何做数据迁移
    • 如何理解redis的高性能和高并发
    • Redis基本数据结构 跳表实现原理 过期处理,Redis单线程优势,影响吞吐因素,支持事务吗 Redis会遇到哪些问题 缓存一致性 穿透 雪崩,解决方案.
    • BloomFilter 知道吗?说下原理,怎么提高准确性
    • 单线程的redis如何利用多核cpu机器?
    • 有海量key和value都比较小的数据,在redis中如何存储才更省内存?
    • redis分布式锁如何保证原子性?
    • redis主备切换过程是怎样的?
    • redis的过期策略,定期删除何时终止
    • Redis如何解决key冲突?
    • 如果redis作为分布式锁的时候,主节点挂掉了,但是数据还没有同步到从节点,这种情况怎么办?
    • redis的key是如何寻址的啊?
    • 分布式缓存redis原理
    • redis分布式锁三种实现方式
    • redis和memcached 的内存管理的区别等等
    • redis的session共享的具体实现
    • 讲讲redis里面的哈希表?
    • redis 集群主从复制原理。
    • Guava缓存除了做缓存还能做什么?和Redis的优缺点。
    • redis分片取模算法。
    • redis,memcache底层客户端使用一致性Hash,看是否了解;redis的事件驱动多路复用底层实现
    • redis的事务机制;
    • Redis 有序集合实现方式有哪些; zset与set区别? list和set又有什么区别?
    • set 和setNx有什么区别
    • redis数据结构、跳跃表,redis qps能上多少,怎么知道的 ,sentinel和cluster区别和各自适用场景,redis cluster集群同步过程
    • 讲下布隆过滤器的实现机制
    • redis处理大量重复数据
    • 生产环境Redis 如何做数据迁移
    • Redis官方为什么不提供Windows版本?
    • redis 内存淘汰机制(MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?)
    • Redis主要消耗什么物理资源?
    • 分布式锁的方案,redis和zookeeper那个好,如果是集群部署,高并发情况下哪个性能更好?

    MongoDB

    • MongoDB和MySQL的区别,各自使用场景

    应用

    • 项目里用redis存哪些数据?为什么用redis?和jetty本地缓存有什么区别?

    • 发散性问题:假如有100万个玩家,需要对这100W个玩家的积分中前100名的积分,按照顺序显示在网站中,要求是实时更新的。积分可能由做的任务和获得的金钱决定。问如何对着100万个玩家前100名的积分进行实时更新?

      思路就是考虑出了前100名的后100W-100名玩家的积分,让变化的积分跟第100名比较,如果比第100名高,那就替换的原则。就是利用缓存机制,缓存---tomcat---DB,层级计算,能不用到DB层就别用,因为每进一层,实现起来都会更复杂和更慢。

    • 谈谈你对缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级的理解?

    • 解决缓存击穿的方式有哪几种?加锁的时候什么时候选择本地锁,什么时候选择分布式锁?

    • 数据库有1万条数据,怎么很快的加载到redis?

    • 问nosql如何设计?

    • 做个微信商城,其中有各种活动,限时优惠,和秒杀,问我并发的时候怎么做处理的。

      (用redis计数器做,当秒杀的商品库存减低时,直接响应请求)

    • 设计一个防止缓存穿透的解决方案,

    • 分布式缓存实现原理,秒杀业务怎样防止超卖;

    欢迎搜索关注本人与朋友共同开发的微信面经小程序【大厂面试助手】和公众号【微瞰技术】

    file
    file

  • 相关阅读:
    (Java) LeetCode 44. Wildcard Matching —— 通配符匹配
    (Java) LeetCode 30. Substring with Concatenation of All Words —— 与所有单词相关联的字串
    (Java) LeetCode 515. Find Largest Value in Each Tree Row —— 在每个树行中找最大值
    (Java) LeetCode 433. Minimum Genetic Mutation —— 最小基因变化
    (Java) LeetCode 413. Arithmetic Slices —— 等差数列划分
    (Java) LeetCode 289. Game of Life —— 生命游戏
    (Java) LeetCode 337. House Robber III —— 打家劫舍 III
    (Java) LeetCode 213. House Robber II —— 打家劫舍 II
    (Java) LeetCode 198. House Robber —— 打家劫舍
    (Java) LeetCode 152. Maximum Product Subarray —— 乘积最大子序列
  • 原文地址:https://www.cnblogs.com/zhendiao/p/13916239.html
Copyright © 2011-2022 走看看