面试遇到宽泛的问题,这么回答就稳了,谈谈你对Redis的理解
“谈谈你对Redis的理解”!
面试的时候遇到这类比较宽泛的问题,是不是很抓狂?
是不是不知道从何开始说起?
没关系,今天我用3分钟教你怎么回答。
大家好,我是Mic,一个工作了14年的Java程序员。
这个问题面试官考察的目的是什么?希望得到什么样的回答?
考察目标
对于某某技术的理解这一类问题,它是一种比较宽泛的问题
在面试过程中,考察这类问题有两个很重要的目的:
-
在面试的过程中,面试官希望求职者能多说一些东西,从而更好的对你的整体情况和能力有一个清晰的判断,因此这类问题,可以找到一些了解你的突破口。
-
这种问题其实没有标准答案,更多的是基于你对它的理解的一个总结这反而能够更好的考察你的技术积累和逻辑表达能力。
所以,求职者在回答的过程中,需要尽可能逻辑清晰,简单明了的表述出来。
否则很难得到认可。
问题解析
关于Redis是什么,想必大部分人都能脱口而出。
它是一个分布式缓存中间件?可这样回答有问题吗?当然有
准确来说,Redis是一个基于内存实现的Key-Value数据结构的Nosql数据库。
注意,这里有三个关键点。
- 内存存储
- key-value结构
- Nosql
所谓内存存储,是指所有数据是存储在内存里面,数据的IO性能比较高。
当然,Redis也提供了持久化策略来避免内存数据丢失的问题key-value结构表示数据的存储方式,除了redis以外,还有像LevelDB、Scalaris等。
而Nosql,它指的是一种非关系型数据库,相比于传统的关系型数据库而言。
更多的考虑到扩展性、性能、大数据量的存储等,弥补了关系型数据库的短板像列式存储ClickHouse、Cassandra; 文档存储MongoDB图形存储Neo4J等都是属于Nosql范畴。
高手:
Redis是一个基于Key-Value存储结构的Nosql开源内存数据库。
它提供了5种常用的数据类型,String、Map、Set、ZSet、List。
针对不同的结构,可以解决不同场景的问题。
因此它可以覆盖应用开发中大部分的业务场景,比如top10问题、好友关注列表、热点话题等。
其次,由于Redis是基于内存存储,并且在数据结构上做了大量的优化所以IO性能比较好,在实际开发中,会把它作为应用与数据库之间的一个分布式缓存组件。
并且它又是一个非关系型数据的存储,不存在表之间的关联查询问题,所以它可以很好的提升应用程序的数据IO效率。
最后,作为企业级开发来说,它又提供了主从复制+哨兵、以及集群方式实现高可用在Redis集群里面,通过hash槽的方式实现了数据分片,进一步提升了性能。
如果你喜欢我的作品,记得点赞收藏加关注!!!
需要Java面试资料、简历模板扫下方!
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
Mic带你学架构
!
如果本篇文章对您有帮助,还请帮忙点个关注和赞,您的坚持是我不断创作的动力。欢迎关注「跟着Mic学架构」公众号公众号获取更多技术干货!