1.Redis为什么执行这么快?
单线程
纯内存操作
支持数据结构多
2.在实际工作中,使用Redis实现了哪些业务场景?
string 缓存用户信息
list 消息队列
哈希 个人信息
有序集合 排行榜
无序集合 交集 共同好友
3.redis锁
加锁:客户端使用 SETNX key value 命令尝试设置一个键,其中 key 是锁的名称,value 是一个唯一标识符(例如 UUID),用于标识加锁的客户端。如果键不存在,SETNX 命令会设置键的值并返回 1,表示加锁成功;如果键已存在,SETNX 命令不会改变键的值并返回 0,表示加锁失败。
释放锁:del key
4.memcached和redis的区别
Redis支持字符串,散列,列表,集合,有序集,位图,超级日志和空间索引;而Memcached支持字符串和整数。
Redis是单线程的;而,Memcached是多线程的。
5.Redis缓存问题:穿透、击穿、雪崩及解决方案
穿透:数据预热、过滤器
击穿:设置redis缓存数据不同的过期时间
雪崩:同击穿(多数据)
6.Mysql的主从复制的原理
主数据库会产生日志文件,从数据库根据生成的日志文件进行数据同步
7.PHP7的新特性
标量的声明、匿名类
8.__autoload()方法的工作原理是什么
文件名和类名需一致,按照路径查找并引入
9.mysql锁问题
按照颗粒度区分:表锁、行锁
按照操作类型: 读锁(共享锁)、写锁(排它锁)
按照操作习惯性能:乐观锁(自行查询操作)、悲观锁(加锁)
10.事务
A、B两个事务
脏读:A读取了B未提交的数据
幻读:A读取了B增加或删除的表数据
不可重复读:因为B中途修改了数据,A读取两次数据不一致
11.查看sql语句性能和索引使用情况
查看sql语句的效率(explain关键字)
12.apache和nginx的区别
性能选nginx
13.mysql索引
按照数据结构:B+树、hash索引
B+树和hash的区别
数据量较少的情况下hash效率更快、数据量较多且查询为范围查询B+树更快、精准查询hash更快
遵循最左匹配法
按照逻辑角度:主键、普通、组合、普通
14.Laravel 中 traits 的特征
类似于公共类的封装,抽象类
15.laravel契约与门面
契约:接口的集合
门面:提供类的静态使用
16. Laravel 中的服务容器
依赖注册的承载体
17.依赖注入的类型
构造函数注入
setter 注入
接口注入
18.Laravel中的ORM是什么
ORM 代表对象关系映射,操作数据库的简洁手段,sql的操作的操作切换成对象的属性和方法的操作
19.vue中虚拟dom是什么?为什么要用虚拟dom?
虚拟dom类似于缓存,复制的js对象。
减少对真实 DOM 的操作次数,提高页面性能。
20.link
与@import
的区别
link
是 HTML 方式, @import
是 CSS 方式
link
最大限度支持并行下载,@import
过多嵌套导致串行下载,出现FOUC
21.箭头函数的this问题
箭头函数中的 this
指向最近一层非箭头函数作用域中的 this
。如果箭头函数没有外部非箭头函数作用域,则其 this
会指向全局对象(浏览器环境中为 window
对象)