首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
tourFox
门头沟学院 Java
发布于河北
关注
已关注
取消关注
@晓宜:
阿里后端一面面经
自我介绍,做过的项目你项目中用到redis,可以介绍一下为什么使用它吗?基于内存操作,内存读写速度快。支持多种数据类型,包括String、Hash、List、Set、ZSet等。支持持久化。Redis支持RDB和AOF两种持久化机制,持久化功能可以有效地避免数据丢失问题。支持事务。Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。支持主从复制。主节点会自动将数据同步到从节点,可以进行读写分离。Redis命令的处理是单线程的。Redis6.0引入了多线程,需要注意的是,多线程用于处理网络数据的读写和协议解析,Redis命令执行还是单线程的。redis为什么性能好基于内存:Redis是使用内存存储,没有磁盘IO上的开销。数据存在内存中,读写速度快。IO多路复用模型:Redis 采用 IO 多路复用技术。I/O :网络 I/O;多路:多个 TCP 连接;复用:共用一个线程或进程。生产环境中的使用,通常是多个客户端连接 Redis,然后各自发送命令至 Redis 服务器,最后服务端处理这些请求返回结果。应对大量的请求,Redis 中使用 I/O 多路复用程序同时监听多个套接字,并将这些事件推送到一个队列里,然后逐个被执行。最终将结果返回给客户端。单线程redis是单线程的,避免了上下文切换高效的数据结构:Redis 每种数据类型底层做了优化,有高效的数据结构和合理的编码redis如何处理分布式任务1. 主从模式(读写分离)redis单节点虽然有通过RDB和AOF持久化机制能将数据持久化到硬盘上,但数据是存储在一台服务器上的,如果服务器出现硬盘故障等问题,会导致数据不可用,而且读写无法分离,读写都在同一台服务器上,请求量大时会出现I/O瓶颈。为了避免单点故障 和 读写不分离,Redis 提供了复制(replication)功能实现master数据库中的数据更新后,会自动将更新的数据同步到其他slave数据库上。2. 哨兵模式哨兵模式核心还是主从复制,只不过在相对于主从模式在主节点宕机导致不可写的情况下,多了一个竞选机制:从所有的从节点竞选出新的主节点。竞选机制的实现,是依赖于在系统中启动一个sentinel进程。但是哨兵本身也可能遇到单点故障的问题,所以在一个一主多从的Redis系统中,可以使用多个哨兵进行监控,哨兵不仅会监控主数据库和从数据库,哨兵之间也会相互监控。3. Redis集群方案 (cluster模式)Cluster采用无中心结构,它的特点如下:所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽节点的fail是通过集群中超过半数的节点检测失效时才生效客户端与redis节点直连,不需要中间代理层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可Cluster模式的具体工作机制:在Redis的每个节点上,都有一个插槽(slot),取值范围为0-16383当我们存取key的时候,Redis会根据CRC16的算法得出一个结果,然后把结果对16384求余数,这样每个key都会对应一个编号在0-16383之间的哈希槽,通过这个值,去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作为了保证高可用,Cluster模式也引入主从复制模式,一个主节点对应一个或者多个从节点,当主节点宕机的时候,就会启用从节点当其它主节点ping一个主节点A时,如果半数以上的主节点与A通信超时,那么认为主节点A宕机了。如果主节点A和它的从节点都宕机了,那么该集群就无法再提供服务了Cluster模式集群节点最小配置6个节点(3主3从,因为需要半数以上),其中主节点提供读写操作,从节点作为备用节点,不提供请求,只作为故障转移使用。redis如何实现一个队列和栈栈用LPUSH创建名为“stack”的key并放入元素,使用LRANGE查看放入的元素,使用LPOP取出放入的元素;可以发现取出的顺序与放入的顺序相反(先进后出)LPUSH stack q w e r t y u i o p LRANGE stack 0 -1 LPOP stack 队列LPUSH queue q w e r t y u i o p LRANGE queue 0 -1 RPOP queue redis有哪几种类型,可以介绍一下吗?Redis支持5种核心的数据类型,分别是字符串、哈希、列表、集合、有序集合;Redis还提供了Bitmap、HyperLogLog、Geo类型,但这些类型都是基于上述核心数据类型实现的;Redis在5.0新增加了Streams数据类型,它是一个功能强大的、支持多播的、可持久化的消息队列。看你项目中用到了elasticsearch,介绍一下es如何实现数据同步?同步双写这是一种比较简单的方式,就是在将数据写入到MySQL的时候,同时将数据写入到ES,实现数据的双写。异步双写(MQ方式)针对第一种同步双写的性能和数据丢失问题,可以考虑引入MQ,从而形成异步双写的方案。由于MQ的性能基本比mysql高出一个数量级,所以性能可以得到显著的提高。异步双写(Worker方式)上面方案中都存在硬编码问题,也就是有任何对mysq进行增删改查的地方植入ES代码,代码的侵入性太强。如果对实时性要求不高的情况下,可以考虑用定时器,比如logstash处理,具体步骤如下:数据库的相关表中增加一个字段为timestamp的字段,任何crud操作都会导致该字段的时间发生变化;原来程序中的CURD操作不做任何变化;增加一个定时器程序,让该程序按一定的时间周期扫描指定的表,把该时间段内发生变化的数据提取出来;逐条写入到ES中。注:Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中Binlog 同步方式:上面方案要么有代码侵入,要么有硬编码,要么有时延,第4中方案,可以使用go-mysql-elasticsearch插件实现相关功能,他是利用mysql的binlog来进行同步具体步骤如下:1) 读取mysql的binlog日志,获取指定表的日志信息;2) 将读取的信息转为MQ;3) 编写一个MQ消费程序;4) 不断消费MQ,每消费完一条消息,将消息写入到ES中。说一下选择排序和冒泡排序冒泡排序从第一个数开始,依次往后进行相邻两个数之间的比较,如果前面的数比后面的数大就交换这两个数的位置,如果前面的数较小或两者一样大,就不作处理。选择排序选择排序法就是从需要排序的数据元素中 选出最小或最大的一个元素,把他和第一个位置的元素进行互换。来写一段sql吧:有一张表,有id,name,type三个类型,选择每种类型中id最大的数据假设这张表名为data_tableSELECT type, MAX(id) AS max_id FROM data_table GROUP BY type;一面准备的不充分,昨天被其他部门捞了,今晚七点复活赛,要认真准备了
点赞 15
评论 3
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
03-26 15:56
科大讯飞_教育BG_后端开发(准入职员工)
那场笔试,开始自我怀疑
秋招笔试里,最难的当属美团。算法题刁钻晦涩,计算机网络、操作系统考点极深,还有大量场景设计与逻辑推理。作为后端学生,做完只觉基础漏洞百出,也让我更清楚差距,之后针对性补了不少薄弱知识点。也可能美团那会我是第一次做的第一家笔试。#你做过最难的笔试是哪家公司#
点赞
评论
收藏
分享
03-27 09:52
广西大学 算法工程师
百度 AI Agent开发 一面
1.多轮对话中,如果不同轮次的记忆发生冲突,你如何处理?这个问题本质上不是“删哪条、留哪条”,而是做记忆的版本管理。实际处理时一般会同时看三个维度:时间、来源、置信度。时间上通常新信息优先,但前提是它来自更可信的输入;来源上,用户当前轮明确表达、工具查询结果、系统写入,优先级通常高于模型从历史里自己总结出来的内容;置信度上,如果只是一次低置信抽取,不会直接覆盖长期稳定画像。工程上我会把记忆拆成两层,一层是 event log,完整保留用户每次表达过什么;另一层是 materialized profile,也就是给模型使用的当前画像。冲突发生时,不是直接物理覆盖,而是先记事件,再按规则刷新画像。...
百度一面1027人在聊
点赞
评论
收藏
分享
03-06 23:22
中南大学 Java
不要假装努力
公司的电棍不会陪你演戏电费从你工资里扣
打工人的精神状态
点赞
评论
收藏
分享
03-12 14:52
已编辑
长沙学院 Java
26届学院本春招求助
秋招官网投了100家没有一个面试,现在春招BOSS沟通了270家,投了27份简历,只有3个面试,还是实习,下面是简历和BOSS上的招呼语,求各位佬指点一下
不AK不改名啊:
先看有没有人收简历,如果收了简历但没面试就是简历问题
这简历密密麻麻字太多了,要突出重点,精简
今天你投了哪些公司?
点赞
评论
收藏
分享
03-26 20:45
广州大学 前端工程师
双非前端某小厂上古八股狂飙28题
一分钟能问两个题,八股狂轰滥炸,加粗是没答上来的自我介绍,优势介绍实习项目、底层框架JS 和 TS 区别JS 基本数据类型有哪些如何判断一个值是什么类型箭头函数的特点new 运算符干了什么闭包作用域作用域链(这个不知道,但是作为替代被要求说了原型链)事件循环机制(说了微任务宏任务)微任务宏任务区别用过的 React hook(state ref effect)React 不同组件怎么通信(状态提级声明并透传/外部状态管理器)组件中 data 为什么是一个函数(这是啥玩意啊事后我搜也搜不到啊)用没用过 Vue(说简历是 Vue 写的,那算了不问了)介绍节流和防抖的区别使用节流和防抖要注意什么(没...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
Vibe Coding开发前的 7 个关键步骤
1.1W
2
...
我放弃互联网大厂了。。
3487
3
...
AIcoding上线了!你确定不来刷刷?
3413
4
...
如何把面试主动权握在手里?Ai岗面试焚诀!
3339
5
...
4.1 美团后端暑期实习面经
3003
6
...
必看实用VibeCoding项目
2773
7
...
美团后端暑期实习一面
2449
8
...
我招了!当年就是被招行这么招进去的
2310
9
...
笔试做完两周没动静,我查了进度才知道不是挂了
2307
10
...
京东零售平台产品与研发中心一面
2252
创作者周榜
更多
正在热议
更多
#
你觉得大几开始实习最合适?
#
14812次浏览
162人参与
#
uu们,春招你还来吗?
#
52293次浏览
294人参与
#
厦门银行科技岗值不值得投
#
13708次浏览
311人参与
#
面试被问到不会的问题,你怎么应对?
#
12330次浏览
140人参与
#
面试中,你被问过哪些奇葩问题?
#
92126次浏览
882人参与
#
Claude Code泄露源码
#
6437次浏览
98人参与
#
招商银行数字金融训练营
#
104180次浏览
879人参与
#
恒生电子笔试
#
17267次浏览
135人参与
#
2023年不发年终奖的公司盘点
#
30250次浏览
174人参与
#
你都用vibe coding做过什么?
#
8759次浏览
336人参与
#
AI Coding实战技巧
#
7460次浏览
154人参与
#
26届春招投递记录
#
1451次浏览
24人参与
#
你现在一天AI几次?
#
6361次浏览
77人参与
#
七猫笔试
#
6329次浏览
46人参与
#
做完笔试后你收到面试了吗?
#
13747次浏览
151人参与
#
四大天坑是哪四家?
#
111115次浏览
241人参与
#
你见过哪些招聘隐形歧视?
#
10386次浏览
90人参与
#
机械人你知道哪些单休企业
#
101761次浏览
476人参与
#
Vibe Coding 会干掉初级岗位吗?
#
12005次浏览
155人参与
#
大厂实习和小厂实习最大的区别是什么?
#
23896次浏览
176人参与
#
如果人生可以debug你会改哪一行?
#
5454次浏览
93人参与
#
网易游戏雷火笔试
#
3646次浏览
64人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务