2020-04-02

面试

redis

1.常用的数据类型
字符串,哈希,列表,集合,有序集合
2.做缓存,数据如何同步
当数据一致性要求不高时,可以设置过期时间,过期后重新查询数据库数据
基于binlog使用MySQL-udf-redis进行数据同步,mysql主从模式下slave端分析binlog实现同步,但是工作量大
通过mysql自动同步刷新redis,监听crud,调用对应的udf函数,运程写回redis
最常用的,操作数据库时,清楚缓存,用户查询时,重新写入redis

3.分布式锁如何加锁
可以使用setnx命令设置锁,当key不存在时,set。
设置过期时间
业务处理结束,删除锁,保证原子性

5.如何进行热数据处理

mysql

1.存储引擎的区别
Innodb优势在于支持事务处理,奔溃修复能力和并发控制,支持外键,行锁,索引使用的是b+tree,缺点是读写效率较差,占用数据的空间大
Myisam占用空间小,处理速度快,表级锁,不支持事务
Memory默认哈希索引,速度快,生命周期短

2.索引
3.innodb存储引擎sql语句执行过程
发送查询数据
查询缓存,有缓存直接返回缓存结果,没有则下一步
进行sql解析,再由优化器生成相应的执行计划
根据执行计划,调用存储引擎的api进行查询
结果返回客户端

4.数据脏读怎么处理

RabbitMq

1.是什么
2.有什么特点
3.类似的消息队列还有哪些

微服务架构

微服务架构可以理解为一种思想,架构就是为了解耦,实际的开发方式就是分布式系统开发。

满足三大指标
高可用 6个9,允许一年30多秒的时间宕机
高性能 响应速度快
高并发 系统的承载能力
解决四大问题
这么多服务,客户端如何访问
api网关
这么多服务,服务之间如何通信
同步通信 对外http,对内rpc
异步通信 mq消息队列
这么多服务,服务如何治理
注册中心
日志收集
这么多服务,服务挂了怎么办
负载均衡

如何应对,解决高并发的?
垂直扩展
升级配置
水平扩展
多买服务器。负载均衡 策略,轮询,哈希,一致,权重

项目pv量

你可能感兴趣的:(笔记)