是因为它太优秀了?
没遇到问 mq 里面的东西,以及 es 等。
其实不知道为什么就喜欢问这个,你问问 juc JVM 线程池 集合之类的底层实现我还比较理解……
突然感觉其实面试来面试去就那些东西了,项目经历很重要,然后学历、稳定性,过了简历关,面试通过后就是个在不在公司的预算之内的问题了。
1
zhgg0 2020-06-03 10:10:43 +08:00
你列举的这些貌似对 redis 深入最简单。
|
2
SpringCC 2020-06-03 10:12:50 +08:00
用的很多,源码简洁易懂,原理和设计很巧妙。
|
3
optional 2020-06-03 10:15:19 +08:00 via iPhone
因为 redis 最具有普世性,而且这是送分题,基本上都接触过。
|
4
leeg810312 2020-06-03 10:19:14 +08:00 via Android
redis 相对其他比较简单,MQ 实践还挺复杂,关联技术也多,比如 Kafka 做消息队列就有不少部署、配置的技术点可以问,还可以衍生问题至大数据流式计算
|
5
yeqizhang OP |
6
yeqizhang OP @leeg810312 嗯,那些应用的问题,可以问出来使用经验多不多。说实话我 mq 用的很少而且很简单,他要是问我都回答不出什么,很多项目 mq 都用不到吧,面试官也不懂什么所以就不问。kafka 相对而言用的还多点
|
7
ab11800222 2020-06-03 12:08:04 +08:00
可能因为这是最多人接触过的中间件吧,虽然我觉得 MQ 、注册中心需要留心的地方更多
|
8
niubee1 2020-06-03 12:09:29 +08:00
网上 redis 的文章多
|
9
inwar 2020-06-03 12:10:16 +08:00 via Android
源码少,原理入手简单
|
10
ArtIsPatrick 2020-06-03 12:16:17 +08:00 via iPhone
看岗位吧,问的多的大概率进去之后用的多。
|
11
HuHui 2020-06-03 12:29:41 +08:00 via Android
因为现在喜欢有事没事就上 redis
|
13
yeqizhang OP @ab11800222 嗯,zk 其实能问的更多。但其实分布式系统真的懂的人太少了
|
15
syasuker 2020-06-03 12:47:22 +08:00 via iPad
redis 最有效吧,但是缓存是个大的学问
|
16
SpringCC 2020-06-03 13:05:05 +08:00 1
@yeqizhang 数据结构不懂语言也可以了解。面试肯定要问原理,不然就背 api 了。redis 数据结构就那么几个,还有持久化,集群,过期策略,都可以考察,所以大家喜欢面试问这个吧。
|
17
micolore 2020-06-03 13:11:02 +08:00 via iPhone 1
主要还是 redis 的使用场景更广,相对来说就需要深入研究。
|
18
InkAndBanner 2020-06-03 14:41:44 +08:00
涉及 redis 一般都是签到题
|
19
wupher 2020-06-03 14:59:36 +08:00
因为用的最多。
从一开始的缓存,到后面的队列,分布式锁,使用相对广泛。 反之,如 ZooKeeper 、ETCD 、RabbitMQ 之类,用的就少得多了。 |
20
axbx 2020-06-03 15:16:20 +08:00 1
因为基本上每个项目都会用到 redis,ZooKeeper,消息队列则就不一定了
|
22
nicebird 2020-06-03 15:39:30 +08:00
redis 核心源码 几万行又好懂,进阶题吧。
|
23
wupher 2020-06-03 16:14:19 +08:00 2
@yeqizhang 嗯,看个人喜好。
不同价值观下,技术抉择不一样。比如,我有个前同事兼好友,他就是喜欢自己折腾。以队列和分布式锁为例,能用数据库的用数据库,能用 Redis 的就用 Redis 。好处是产品依赖少,坏处是什么都在库上,使用上可能存在总总不尽人意。 我喜好能用 1 行代码解决的,就不要用 2 行,能用中间件解决问题的,我就不自己折腾了。假如公司有 ZK,那我就用 ZK,没有的话,可以建议,嗯,要不我们试试 ETCD ? 但是你解决的问题是不变的,所谓万变不离其宗,那是那些分布式常见的场景。只是我们选择了这个,于是就牺牲了那个,如此而已。以我来说,上次分享就检讨过,代码是省了,中间件是多了。虽然这些中间件原来就有用,但是假如要做云迁移,就会碰到新的麻烦。 所以会就是会,不会也不用沮丧。常见的问题,你碰到过哪些,大致研究过,可以用 A 解决,但是会有 B 代价,说清楚即可。 祝面试好运。 嗯,以个人招聘经验而论。其实面试并不是,“哦,A 问题你会,那你能入职,然后进来就解决 A”。你在工作中总会碰到之前没遇到的问题,碰到之前没见到过的场景。你会怎么解决?常见的策略如何?是否知晓选择的代价?可能还有,价值观大家是否一致?一般大致如此吧。 |
24
wysnylc 2020-06-03 17:10:16 +08:00 1
因为要用 redis 和队列解决并发,redis 还能做缓存对性能提高明显
相对来讲其他的东西就可有可无或者没法直观体现在业务上 |
25
luckyyD 2020-06-04 10:44:05 +08:00 via Android 1
确实优秀。消息队列、分布式锁、页面上的浏览次数、我关注的人、可能认识的人(要用 MySQL 实现这个功能想想都头大)、可能还有别的需要保证业务原子性的东西都可以用它轻松解决。而且 java 需要的就是一个队列,因为高并发和多线程是天然矛盾的,但是这两样 java 都想要,所以 java 做不好的事情就交给能高性能实现队列的工具人去做了。
|
26
namebyrant 2020-06-06 15:32:43 +08:00
redis 在项目应用度应该是在 mysql 之下,不多问是不可能,持久化 /双写 /集群架构 /可用方案那些实际项目也用得多啊
|