写在前面
最近,很多小伙伴出去面试都被问到了Spring问题,关于Spring,细节点很多,面试官也非常喜欢问一些很细节的技术点。所以,在 Spring 专题中,我们尽量把Spring的每个技术细节说清楚,将透彻。
概述
自定义组件要想使用Spring容器底层的一些组件(比如:ApplicationContext、BeanFactory等),此时,只需要让自定义组件实现XxxAware接口即可。此时,Spring在创建对象的时候,会调用XxxAware接口定义的方法,注入相关的组件。
专题10:Redis
-
1、什么是 Redis?
-
2、Redis 与其他 key-value 存储有什么不同?
-
3、Redis 的数据类型?
-
4、使用 Redis 有哪些好处?
-
5、Redis 相比 Memcached 有哪些优势?
-
6、Memcache 与 Redis 的区别都有哪些?
-
7、Redis 是单进程单线程的?
-
8、一个字符串类型的值能存储最大容量是多少?
-
9、Redis持久化机制
-
10、缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题
-
11、热点数据和冷数据是什么
-
12、单线程的redis为什么这么快
-
13、redis的数据类型,以及每种数据类型的使用场景
-
14、redis的过期策略以及内存淘汰机制
-
15、Redis 常见性能问题和解决方案?
-
16、为什么Redis的操作是原子性的,怎么保证原子性的?
-
17、Redis事务
-
18、Redis 的持久化机制是什么?各自的优缺点?
-
19、Redis 常见性能问题和解决方案:
-
20、redis 过期键的删除策略?
-
21、Redis 的回收策略(淘汰策略)?
-
22、为什么 edis 需要把所有数据放到内存中?
-
23、Redis 的同步机制了解么?
-
24、Pipeline 有什么好处,为什么要用 pipeline?
-
25、是否使用过 Redis 集群,集群的原理是什么?
-
26、Redis 集群方案什么情况下会导致整个集群不可用?
-
27、Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?
-
28、Jedis 与 Redisson 对比有什么优缺点?
-
29、Redis 如何设置密码及验证密码?
-
30、说说 Redis 哈希槽的概念?
-
31、Redis 集群的主从复制模型是怎样的?
-
32、Redis 集群会有写操作丢失吗?为什么?
-
33、Redis 集群之间是如何复制的?
-
34、Redis 集群最大节点个数是多少?
-
35、Redis 集群如何选择数据库?
-
36、怎么测试 Redis 的连通性?
-
37、怎么理解 Redis 事务?
-
38、Redis 事务相关的命令有哪几个?
-
39、Redis key 的过期时间和永久有效分别怎么设置?
-
40、Redis 如何做内存优化?
-
41、Redis 回收进程如何工作的?
-
42、都有哪些办法可以降低 Redis 的内存使用情况呢?
-
43、Redis 的内存用完了会发生什么?
-
44、一个 Redis 实例最多能存放多少的 keys?List、Set、Sorted Set 他们最多能存放多少元素
-
45、MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据?
-
46、Redis 最适合的场景?
-
47、假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?
-
48、如果有大量的 key 需要设置同一时间过期,一般需要注意什么?
-
49、使用过 Redis 做异步队列么,你是怎么用的?
-
50、使用过 Redis 分布式锁么,它是怎么回事?
专题11:Memcached
-
1、Memcached 是什么,有什么作用?
-
2、memcached 服务在企业集群架构中有哪些应用场景?
-
2、Memcached 服务分布式集群如何实现?
-
3、Memcached 服务特点及工作原理是什么?
-
4、简述 Memcached 内存管理机制原理?
-
5、memcached 是怎么工作的?
-
6、memcached 最大的优势是什么?
-
7、memcached 和 MySQL 的 query
-
8、memcached 和服务器的 local cache(比如 PHP 的 APC、mmap 文件等)相比,有什么优缺点?
-
9、memcached 的 cache 机制是怎样的?
-
10、memcached 如何实现冗余机制?
-
11、memcached 如何处理容错的?
-
12、如何将 memcached 中 item 批量导入导出?
-
13、如果缓存数据在导出导入之间过期了,您又怎么处理这些数据呢?
-
14、memcached 是如何做身份验证的?
-
15、memcached 的多线程是什么?如何使用它们?
-
16、memcached 能接受的 key 的最大长度是多少?
-
17、memcached 对 item 的过期时间有什么限制?
-
18、memcached 最大能存储多大的单个 item?
-
19、memcached 能够更有效地使用内存吗?
-
20、什么是二进制协议,我该关注吗?
-
21、memcached 的内存分配器是如何工作的?为什么不适用malloc/free!?为何要使用 slabs?
-
22、memcached 是原子的吗?
-
23、如何实现集群中的 session 共享存储?
-
24、memcached 与 redis 的区别?
专题12:MongoDB
-
1、mongodb是什么?
-
2、mongodb有哪些特点?
-
3、你说的NoSQL数据库是什么意思?NoSQL与RDBMS直接有什么区别?为什么要使用和不使用NoSQL数据库?说一说NoSQL数据库的几个优点?
-
4、NoSQL数据库有哪些类型?
-
5、MySQL与MongoDB之间最基本的差别是什么?
-
6、你怎么比较MongoDB、CouchDB及CouchBase?
-
7、MongoDB成为最好NoSQL数据库的原因是什么?
-
8、journal回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?
-
9、分析器在MongoDB中的作用是什么?
-
10、名字空间(namespace)是什么?
-
11、 如果用户移除对象的属性,该属性是否从存储层中删除?
-
12、能否使用日志特征进行安全备份?
-
13、允许空值null吗?
-
14、更新操作立刻fsync到磁盘?
-
15、如何执行事务/加锁?
-
16、为什么我的数据文件如此庞大?
-
17、启用备份故障恢复需要多久?
-
18、什么是master或primary?
-
19、什么是secondary或slave?
-
20、我必须调用getLastError来确保写操作生效了么?
-
21、我应该启动一个集群分片(sharded)还是一个非集群分片的 MongoDB 环境?
-
22、分片(sharding)和复制(replication)是怎样工作的?
-
23、数据在什么时候才会扩展到多个分片(shard)里?
-
24、当我试图更新一个正在被迁移的块(chunk)上的文档时会发生什么?
-
25、如果在一个分片(shard)停止或者很慢的时候,我发起一个查询会怎样?
-
26、我可以把moveChunk目录里的旧文件删除吗?
-
27、我怎么查看 Mongo 正在使用的链接?
-
28、如果块移动操作(moveChunk)失败了,我需要手动清除部分转移的文档吗?
-
29、如果我在使用复制技术(replication),可以一部分使用日志(journaling)而其他部分则不使用吗?
-
30、当更新一个正在被迁移的块(Chunk)上的文档时会发生什么?
-
31、MongoDB在A:{B,C}上建立索引,查询A:{B,C}和A:{C,B}都会使用索引吗?
-
32、如果一个分片(Shard)停止或很慢的时候,发起一个查询会怎样?
-
33、MongoDB支持存储过程吗?如果支持的话,怎么用?
-
34、如何理解MongoDB中的GridFS机制,MongoDB为何使用GridFS来存储文件?
-
35、什么是NoSQL数据库?NoSQL和RDBMS有什么区别?在哪些情况下使用和不使用NoSQL数据库?
-
36、MongoDB支持存储过程吗?如果支持的话,怎么用?
-
37、如何理解MongoDB中的GridFS机制,MongoDB为何使用GridFS来存储文件?
-
38、为什么MongoDB的数据文件很大?
-
39、当更新一个正在被迁移的块(Chunk)上的文档时会发生什么?
-
40、MongoDB在A:{B,C}上建立索引,查询A:{B,C}和A:{C,B}都会使用索引吗?
<