1.自我介绍
babala
2.redis怎么保证高可用?
ans:我们目前项目使用的是分片+集群模式,就是在代码中用CRC16算法计算key在哪个slot(桶),然后根据哈希槽从配置文件找到redis 实例,然后拿到一个连接(如果连接池中不存在就放进连接池)。集群是多主多从,可以保证高可用。
2.你们分片后有些不是集群,这些节点怎么保证高可用呢?
ans:正在把所有数据迁移到集群。
Q:那怎么扩容呢?
ans:这里没太懂,回来查了下我们项目用的hashtag。感觉面试官想问一致性哈希?
3:哪些数据适合放到redis中?
ans:我们这个项目处于性能考虑,所有数据全都在redis中,除了一些日志文件和埋点数据,先写入到kafka再写入到数据仓库。
4:kafka了解吗?
ans:使用比较多。
5:做道题吧,合并两棵树。
写了个广度搜索的,部分case没通过。应该用dfs。
6:了解acid吗?
ans:大概说了下定义和项目用到的。mysql和redis的事务。
7:redis如何实现事务?
ans:multi,exec,watch,discard命令搞定。
8:垃圾回收算法说说?
ans:新生代复制算法,其他忘了。
9:一个请求到redis,说下redis做了那些事。
ans:io多路复用接收请求,然后执行命令,然后干啥了。
10:你有什么要问我的吗,有消息回通知你的?
ans:面试之前了解过了,没啥其他问题了。(已经感受到了凉凉,好好复习下吧,很多东西工作久了就忘了),准备下一场面试吧。
全部评论
(3) 回帖