小红书面经

一面

八股文:
  • redis为什么快
  • jvm的垃圾回收
  • mq的原理
  • 线程池的参数
  • 。。。
算法:
  • 归并排序


二面

项目:
问:100万qps的项目怎么设计,读访问的话?
答:redis做db的缓存
问:直接上redis吗?redis能支撑100万qps吗?
答:redis读的理论值有100万,但是实际应该达不到,所以可以在redis之前做一层数据过滤,做本地缓存
问:那你这3级缓存怎么更新,怎么保证数据一致?
答:使用监听db的变化来修改对应的缓存,监听db可以使用canal来通过mq修改
问:那你redis能修改,本地缓存怎么修改?
答:本地缓存一样能修改
问:你的本地缓存修改是单机修改吗?本地缓存不是所有的机器都有一份吗?
答:那我可以在各个机器上开一个守护线程去检查redis的所有key,和本地的机器的缓存做比较,再修改
问:那你这个缓存的数据量上去的话,你这个检查不是很慢吗,不能实时更新缓存呀
答:那我可以再在redis中记下数据 的变更,守护线程可以去检查这个变更的key就行了,不会随着数据量的变化而影响
问:那你这个守护线程多长时间跑一次呢,不管多长时间不是都有延迟吗?
答:可以1秒一次,本身就算推送通知也是有延迟的,所有都有一个时间差的接受范围,应该可以
此时面试官沉默.......
我问:那您这边是怎么做的呢?
面试官回答:可以用mq的广播。
我心想:我就是个傻子,可能也是因为自己没这么用过,所以一时没反应过来

算法:
实现2个线程交替执行,分别打印奇数和偶数,打到100


终究还是挂了,说量级太小
#java求职##面经##小红书##社招#
全部评论
社招吗
点赞 回复 分享
发布于 2022-03-21 17:35
量级太小是啥意思呀
点赞 回复 分享
发布于 2021-12-30 23:13

相关推荐

点赞 评论 收藏
分享
评论
4
46
分享

创作者周榜

更多
牛客网
牛客企业服务