前言
说起来开始进行面试是11月倒数第二周,上午9点,我还在去公司的公交上,突然收到蚂蚁的面试电话,其实算不上真正的面试。面试官只是和我聊了下他们在做的事情(主要是做双十一这里大促的稳定性保障,偏中间件吧),说的很详细,然后和我沟通了下是否有兴趣,我表示有兴趣,后面就收到正式面试的通知,最后没选择去蚂蚁表示抱歉。
当时我自己也准备出去看看机会,顺便看看自己的实力。当时我其实挺纠结的,一方面现在部门也正需要我,还是可以有一番作为的,另一方面觉得近一年来进步缓慢,没有以前飞速进步的成就感了,而且业务和技术偏于稳定,加上自己也属于那种比较懒散的人,骨子里还是希望能够突破现状,持续在技术上有所精进。
进入正题,先后进行了蚂蚁、拼多多和字节跳动的面试。
Redis简介
- Redis与Memcached区别
- Redis优点
- Redis缺点
Redis数据类型
- String
- Hash
- List
- Set
- Sorted set
Redis事务
- MULTI&EXEC(原子执行,并非互斥)
- WATCH&UNWATCH(原子执行+乐观锁)
Redis分布式锁
- 排他锁 SETNX
- 带有超时特性的锁
Redis持久化机制
- RDB(Redis Database,全量模式)
- AOF(Append Only File,增量模式)
- 触发方式
- 相互比较
- RDB最佳策略
- AOF最佳策略
- Redis消息队列
Redis高级数据结构
- BitMap(String的一些其他命令)
- 过期策略
- 内存淘汰策略
- 主从复制(数据是同步的,类似于MySQL Replication)
- 哨兵 sentinel(数据是同步的)
- 集群(数据是分片的,sharing)
- Hash映射(并非一致性哈希,而是哈希槽)
- 数据分片
- 节点间通信协议——Gossip
- 主从选举——Raft
- 功能限制
- 数据迁移/在线扩容
- Codis
- twemproxy
配置文件+应用场景+Lua脚本+与DB保持一致
Redis源码
- 线程模型——单线程
- RedisObject
这份文档从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步和切片集群等,帮你搞懂底层原理。相信这对于所有层次的Redis使用者都是一份非常完美的教程了。
《一线大厂Java面试真题解析+Java核心总结学习笔记+最新全套讲解视频+实战项目源码》开源
Java优秀开源项目:
-
ali1024.coding.net/public/P7/Java/git
- github.com/spring-projects
总结
对于面试还是要好好准备的,尤其是有些问题还是很容易挖坑的,例如你为什么离开现在的公司(你当然不应该抱怨现在的公司有哪些不好的地方,更多的应该表明自己想要寻找更好的发展机会,自己的一些现实因素,比如对于我而言是现在应聘的公司离自己的家更近,又或者是自己工作到达了迷茫期,想跳出迷茫期等等)
Java面试精选题、架构实战文档
整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断!