三年工作经验社招,30分钟全在问项目
一、redis代理
Q:你们问什么要做一层redis代理?
A:因为两个方面,一是成本考虑:如果一个微服务申请一套主从资源花费很大。二是安全问题:加了监控、权限校验、代理缓存热点数据等逻辑在里面。
Q:部署代理不是更浪费资源吗?安全问题redis本身也可以解决啊?
A:跟一个微服务申请一套主从比,用代理更能充分利用redis的内存空间,成本是降低的。安全问题我问他是不是说redis的ssl,我说我们没开,就没问了。
Q:你说的代理端缓存有什么用?一致性怎么保证?为什么不在客户端做缓存?
A:代理内部做热点缓存是能节省代理到集群的一次网络耗时、并且减少redis集群压力的。一致性是有一定的延时问题的,这个跟redis 6.0的客户端缓存是一样的,适用于主要是读的场景,如果业务方能接受一定程度的不一致,是可以开启的。站在业务角度,客户端是要做内存缓存的,两者并不冲突,可以有多级缓存。
Q:还是没理解,如果有热点Key,我可以拆成两个Key,分片到不同的节点上就行了啊?
A:确实可以,但这是站在业务的角度上看的,如果站在中间件的角度上,并没有办法控制业务方怎么做。
Q:Redis Cluster怎么实现的知道吗?可以扩容不就降低压力了?(反正还是没给人说明白
A:我说基于Gossip协议做的集群间通信,集群扩容不方便,还要迁移槽位,而代理是无状态的&#