JAVA面试题第四阶段总结

JAVA面试题第四阶段总结

1、数据库数据如何备份(数据备份策略)

答:

  1. 冷备份:定期将数据库中的文件进行转储,定期进行数据备份
  2. 热备份:搭建数据库主从结构,挡住库数据发生改变时,从库根据主库的二进制日志文件进行备份。
  3. 双机热备:数据库互为主从,数据库打理服务器对主库进行心跳检测,实现数据的高可用,为了防止主库宕机后发生雪崩现象。

2、数据库压力大时,怎么实现高可用?

答:

  1. 用数据库代理服务器搭建数据库的读写分离进行分流,读取从库数据,写数据在主库,可用的数据库代理服务器有Amoeba和Mycat,由于大量的用户的数据库操作都需要通过数据库来完成,造成数据库负载过高,因为数据库操作中查询的操作占很大的比重。
  2. 数据库实现双机热备。

3、数据库优化策略

答:

  1. 优化sql语句 where 左连接 右连接 内连接 尽可能根据主键查询,尽可能少用关联查询
  2. 创建索引
  3. 添加缓存 redis
  4. 定期进行数据转储
  5. 分库分表

4、什么是Mycat

答:是一个数据库中间件,实现读写分离,分库分表和数据库故障迁移。

5、什么是Redis,运行在哪里

答:开源的内存中的数据结构存储系统,可以用作数据库,缓存和消息中间件
基于c语言开发,运行时在内存中,运行速度快。

6、Redis中的数据持久化策略

答:如果使用时允许丢失部分数据则使用RDB模式,效率高,也是redis默认的策略。如果不允许丢失数据则采用AOF模式,它的安全性高,但是效率低。

7、Redis中的内存维护策略

问题:如果数据都存储到redis中,如果内存占满了,redis如何维护?
答:

  1. 动态扩容redis节点
  2. 为数据设定超时时间
  3. 动态的将不同的数据删除(LRU算法)

8、Redis为什么要分片?

答: 实现动态内存扩容

9、Hash一致性

  1. 均衡性 --尽可能均匀分片节点中的数据
  2. 单调性 --实现数据的动态迁移
  3. 分散性 --由于分布式原因,导致不能获取全部节点信息,使得一个key有多个位置
  4. 负载 --是分散性另一种表现形式,表现为一个位置有多个key

10、知道哨兵机制吗,怎么实现的,实现了什么功能?

答 功能:实现redis高可用,机制:心跳检测
工作原理:1.当哨兵启动时,会监控当前的主机信息,同时获取连接当前主机的从机信息。
2.当哨兵利用心跳检测机制,检验主机是否正常,如果连续3次发生主机没有响应信息,则开始进行选举
3.当哨兵选举完成之后,其他的节点都会当做新主机的从机

你可能感兴趣的:(Java学习,java)