摘要: 单例模式 只能有一个pulic 方法,对象只能被实例一次; 工厂模式 只需要接口类定义方法体,不同的类实现不同对象,工厂模式按需调用; 策略模式 算法模型 实现单独个体功能,按需计算; 观察者模式 当一个对象的状态发生改变时,依赖他的对象会全部收到通知,并自动更新; 定义观察者接口(实现观察者接口) 阅读全文
posted @ 2020-12-22 13:15 面试日记 阅读(55) 评论(0) 推荐(0)
摘要: 特性 原子性 一致性 隔离性 持久性 不考虑事务数据会 脏读 不可重复读 幻读 set session transacction isolation level read uncommitted; 隔离级别: 读未提交: read-uncommitted 不可重复读:read-committed 可 阅读全文
posted @ 2020-12-22 11:37 面试日记 阅读(55) 评论(0) 推荐(0)
摘要: 缓存穿透 访问一个不存在的key,缓存不起作用,请求会直接穿透到DB,流量大时DB挂掉; 将缓存不存在的key,存储为空,过去时间30秒。避免反复请求数据 缓存雪崩 大批量可以缓存失效,大量请求会到db,造成db压力 解决方法:将缓存时间在基础上加上随机时间,防止同一时间集中失效;分布式缓存也能解决 阅读全文
posted @ 2020-12-22 11:07 面试日记 阅读(239) 评论(0) 推荐(0)
摘要: 在实际项目中是否用过消息队列? 这里简单介绍一下Redis消息队列吧,之前有一个服务号消息推送就是用的Redis来做的,因为业务比较单一所以就拿Redis来做; 第一步:创建推送任务; 1.区分任务是即时任务还是延时任务; 2.如果是延时任务可以使用zset(key,time,val),因为zset 阅读全文
posted @ 2020-12-19 19:23 面试日记 阅读(64) 评论(0) 推荐(0)
摘要: 1.创建业务订单 2.组合支付订单信息(包含支付序列id) 3.发送支付请求(微信、支付宝) 4.返回预支付id及相关信息 5.使用微信js调起支付窗口 6.完成支付,支付平台回调商户更改业务订单状态; 阅读全文
posted @ 2020-12-19 10:35 面试日记 阅读(212) 评论(0) 推荐(0)
摘要: vim 是vi 加强版 1.vim支持无限撤销,vi只能撤销上次 2.vim支持多个端,vi只能在unix 3.vim可以代码加高亮不同颜色 阅读全文
posted @ 2020-12-18 11:02 面试日记 阅读(106) 评论(0) 推荐(0)
摘要: 最近面试有问到,设计一个秒杀系统需要注意哪些? 1.前端页面(最好使用静态化,不用动态渲染) 2.控制层 登录验证-》IP限制-》重复刷新等待-》验证用户是否已经购买-》验证是否还有库存-》扣减缓存中库存-》数据库事务创建订单并扣除商品数量-》返回处理结果 如果遇到上亿用户请求怎么办? 减少数据库读 阅读全文
posted @ 2020-12-17 23:55 面试日记 阅读(151) 评论(0) 推荐(0)