zoukankan      html  css  js  c++  java
  • 2019年8月29号成长题目

    1、讲下redis

    答:非关系型数据库;本质上是一个key-value类型的内存数据库

    支持String、Hash、List、Set、zset(sorted set:有序集合)这五种数据类型,redis持久化;RDB和AOF

     RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发

      AOF(append only file)持久化:以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中命令达到恢复数据的目的。AOF的主要作用是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式。

    redis架构模式:

    单机版、主从复制、哨兵、集群

    redis相关的还有缓存雪崩和缓存穿透

     缓存穿透:是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透

    解决方法:

    一、布隆过滤

    二、缓存空对象. 将 null 变成一个值

    缓存雪崩:如果缓存集中在一段时间内失效,发生大量的缓存穿透,所有的查询都落在数据库上,造成了缓存雪崩。

    解决方法:

    一、数据预热,设置不同的过期时间,让缓存失效的时间点尽量均匀

    二、做二级缓存,或者双缓存策略

    三、加锁排队

     

     

     

    2、 讲下mysql,除了增删改查,mysql讲一下

    答:

    数据库优化

    首先要根据需求写出结构良好的SQL,然后根据SQL在表中建立有效的索引。但是如果索引太多,不但会影响写入的效率,对查询也有一定的影响

    根据数据库三范式来进行表结构的设计。设计表结构时,就需要考虑如何设计才能更有效的查询。

    mysql索引数据结构是B+树;

     

    索引优化方式

    避免过度索引

    避免重复和冗余索引

    删除不需要使用的索引

    复合索需要引遵循最左原则

    合理使用短索引

    避免索引失效

     

     

     

    sql语句优化

    在表中建立索引,优先考虑where、group by使用到的字段

    尽量避免使用select *,返回无用的字段会降低查询效率;优化方式:使用具体的字段代替*,只返回使用到的字段。

    尽量避免使用in 和not in,会导致数据库引擎放弃索引进行全表扫描;优化方式:如果是连续数值,可以用between代替;如果是子查询,可以用exists代替;

    尽量避免在where条件中等号的左侧进行表达式、函数操作,会导致数据库引擎放弃索引进行全表扫描。

    尽量避免进行null值的判断,会导致数据库引擎放弃索引进行全表扫描,需求调节允许的话,可以给字段添加默认值0,对0值进行判断

     

     

     

     

     

     

    3、讲下索引数据结构

    答:mysql索引的数据结构是树,常用的存储引擎innodb采用的是B+Tree

     

    4、你登录了,但操作的时候有时候重定向,怎么确定是哪个用户登录的,登录的数据是从哪里取的?

    session中

     

     

     

    5、Session 怎么实现信息共享?

     

     

     

     

     

     

     

     

     

     

     

    6、讲下cookie和session

    答:cookie:

    在客户端保存数据,不安全,别人可以分析保存在本地的cookie进行cookie欺骗。

    只能保存字符串,且是少量数据

    session:

    在服务端保存数据,安全

    可以保存对象数据,数据无限制(但,当访问过多,会比较占服务器的性能)

    一般情况下,session生成的sessionid都是保存在cookie中

     

     

    7、你的搜索模块,你搜索的时候,执行流程是怎样的?就是从前端到后端再到前端的实现流程?

     

    8、联合索引

    答:如果你经常要用到多个字段的多条件查询,可以考虑建立联合索引,一般是除第一个字段外的其它字段不经常用于条件筛选情况,比如说a,b 两个字段,如果你经常用a条件或者a+b条件去查询,而很少单独用b条件查询,那么可以建立a,b的联合索引。如果a和b都要分别经常独立的被用作查询条件,那还是建立多个单列索引

     

    9、你们实例有多少个?

    该点属于部署问题

    10、如果你写登录这模块的话,你的思路是怎样的?

    11、说下你知道的数据结构

    答:数组,栈,链表,队列,树,图,堆,散列表等

    12、红黑树特点

    13、平时有看专业相关书籍吗?说几个书名。

    14、简历上的项目相关的问题,问写你的模块等等

  • 相关阅读:
    python学习---字符编码
    python学习--变量
    python学习--pycharm编辑器及优化设置
    python学习--第一个python程序helloworld
    python安装
    python学习---python2与python3的区别
    win7下weblogic安装与部署项目调试记录
    ubuntu获得root用户权限,使用xshell连接!
    linux命令
    nginx + tomcat 集群记录
  • 原文地址:https://www.cnblogs.com/whymoney1000/p/11430873.html
Copyright © 2011-2022 走看看