上一篇下一篇1.MySQL什么时候不可以用索引?什么时候可以?①只有 Where、Group By、Join 这些后面的字段如果没有加索引,才能够利用索引覆盖。②索引并不是越多越好,因为变动过程中需要维护,这部分时间也需要进行考虑。③对于小型表而言,直接扫描整个表可能更为高效,此时不需要索引。2.Redis数据库的底层原理了解吗?①底层使用C语言实现②核心思想是将数据存储在内存中,以提供快速的读写访问③采用单线程模型来处理客户端请求,通过异步I/O和事件驱动机制来实现高并发性能3.Redis字符串的 SDS,对比原有 C 语言字符串有什么好处①SDS可以根据需要自动扩展内存空间,而C语言原生字符串需要手动管理内存,容易导致内存溢出或者内存泄漏②SDS内部存储了字符串的长度信息,获取字符串长度的操作是O(1)的时间复杂度。而C语言是O(n)③SDS在进行字符串操作时,会检查缓冲区是否有足够的空间,避免了缓冲区溢出的问题,而C语言原生字符串需要程序员手动进行边界检查,容易出错④SDS可以存储任意二进制数据,而C语言原生字符串是以'\0'结尾的字符数组,不能存储包含'\0'的二进制数据⑤支持字符串的追加、截取、拷贝等操作,并且这些操作的时间复杂度都是O(1)4.Redis的缓存策略简要说明一下。①淘汰策略:当内存不足时,Redis会根据设置的淘汰策略来删除部分键值对,以释放内存空间。常见的淘汰策略包括LRU(最近最少使用)、LFU(最不经常使用)和随机等②过期策略:Redis支持为键值对设置过期时间,在过期时间到达后,键值对会被自动删除。常见的过期策略包括定时删除和惰性删除5.Redis的持久化策略简要说明下①RDB,将当前Redis服务器中的所有数据以快照的形式保存到硬盘上。Redis会周期性地将内存中的数据保存到磁盘上,生成一个压缩过的二进制文件(默认名为dump.rdb)。②AOF,以日志的形式记录Redis服务器所处理的每个写操作命令。Redis会将每个写命令追加到一个文件(默认名为appendonly.aof)的末尾。6.有哪些常用的设计模式?创建型模式:单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式。结构型模式:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。7.什么时候用单例模式?①当一个类只需要一个实例,并且客户端需要一个全局访问点来访问该实例时。②当希望限制类的实例化次数为一个的情况。③当需要控制某些资源的分配,或者需要跨越多个部分共享状态时。④在需要频繁创建和销毁实例的场景中,单例模式可以提高系统的性能和节省资源。8.简述下Docker①Docker解决了应用程序打包、交付和运行的问题②Docker是一种容器化平台,可以将应用程序及其所有依赖项打包成一个独立的容器,从而实现应用程序在任何环境中都能以相同的方式运行。③特性:环境一致性、快速部署、资源利用率、隔离性9.http1.1和 http2.0的区别http1.1   每个请求都需要单独建立和维护一个TCP连接、每个请求和响应的头部信息都需要重复发送、使用的是文本格式http2.0   引入了多路复用机制,允许在同一个TCP连接上同时发送多个请求和响应、对头部信息进行压缩,减少了数据传输量,提高了网络性能、支持服务器推送机制、允许客户端和服务器动态调整数据流的传输速率、采用了二进制格式来编码和传输数据总的来说,HTTP/2.0相比HTTP/1.1在性能、效率和安全性方面有了显著的提升10.MySQL的引擎,InnoDB和MyIsam的区别?InnoDB:支持事务、使用行级锁, 可以提高并发性能、支持崩溃恢复和数据恢复、支持外键约束、支持全文索引, 可以进行全文搜索、表空间可以动态调整,支持自动扩展和缩小MyIsam:不支持事务、使用表级锁、不支持崩溃恢复、不支持外键约束、仅在MySQL 5.6之后开始支持全文索引、表空间固定,无法动态调整总之——InnoDB适合于对事务支持要求较高、并发性要求较高、需要保证数据一致性的应用场景;而MyISAM适合于读操作较多、写操作较少、对事务支持要求不高的应用场景。11.介绍下布隆过滤器的原理①初始化:首先,布隆过滤器会初始化一个位数组,所有位都被设置为0。②添加元素:当要将一个元素加入到布隆过滤器中时,将该元素通过多个哈希函数计算出多个哈希值,然后将位数组中对应的位置设置为1。③查询元素:当要查询一个元素是否存在于布隆过滤器中时,将该元素通过相同的哈希函数计算出多个哈希值,然后检查对应的位数组位置是否都为1。如果所有位置都为1,则该元素可能存在于布隆过滤器中;如果存在任何一个位置为0,则该元素一定不存在于布隆过滤器中。
点赞 13
评论 1
全部评论

相关推荐

感觉这一周太梦幻了,就像一个梦,很不真实~~~感觉这个暑期,我的运气占了99成,实力只有百分之一4.15上午 腾讯csig 腾讯云部门,面完秒进入复试状态4.16下午 美团优选供应链部门,4.18上午发二面4.17晚上 阿里国际一面,纯拷打,面完我都玉玉了4.18下午 阿里国际二面,是我们leader面的我,很轻松~~4.18晚上 约了hr面4.19上午 hr面,下午两点口头oc4.19晚上 意向书说起来我的暑期好像一次都没挂过~~~~~难道我是天生面试圣体?----------------------------------------------------------------------六个月前,我还是0项目0刷题,当时想的是先把论文发出来再去找实习。结果一次组会,老师打破了我的幻想(不让投B会,只让投刊或者A)我拿头投啊!!!然后就开始物色着找实习,顺便做完了mit的6.s081,但是基本上还是没刷过题目-----------------------------------------------------------------------11月  一次偶然的机会,面进了某个耳机厂的手环部门,大概是做嵌入式的,用的是CPP。12月 莫名其妙拿到了国创的面试机会,0基础四天速成java基础!居然也给我面过了hhhhh,可能是面试没写题吧入职国创后的几个月,一直没活,天天搁那看剧,都快忘了还有暑期实习这回事了~~~~命运的齿轮在2.26开始转动,因为这一天美团开了,我开始慌了,因为那时的我什么都不会。lc,八股,sql全部是0进度。然后就开始了女娲补天,上班刷题,下班继续做之前的开源,顺便学一学八股。3月到现在,lc也刷到快200了,一天最多提交了47次~~~~~~~~~~八股根据别人的面经总结和博客,写了快十万字的笔记~~~~~~~~~~简历上的实习经历和开源,也努力去深挖了,写了几万字的记录~~~~~~所以面试的时候,基本上都能cover了,面试官问到的基础基本都会,不基础的我就把他往我会的地方引。结果好像还不错,基本上每个面试官评价都挺好的emmmmmmmm
投递阿里巴巴等公司10个岗位
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务