大厂必备面试题
面试12家公司,收获9个offer,2020年PHP 面试问题
PHP 面试遇到的问题,后期会不定期更新一下,大家也可以把认为经典的问题评论留言,感谢大家!
1. 实现删除一个数组里面的重复值?
使用键值反转
array_flip(); <?php $a1=array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow"); $result=array_flip($a1); print_r($result); ?> function unique3(array){ var n = [array[0]];//结果数组 //从第二项开始遍历 for(var i = 1; i<array.length; i++){ //如果当前数组的第i项在当前数组中第一次出现的位置不是i; //那么表示第i项是重复的,忽略掉。否则存入结果数组。 if(array.indexOf(array[i]) == i){ n.push(array[i]); } } return n;}
2. 什么是 redis?
开源 先进的 key-value 存储 远程字典服务器 内存级数据库 数据结构服务器 一个基于内存的网络存储系统
3.redis 数据类型有哪几种?
值(value)可以是:字符串 (String), 哈希 (hash), 列表 (list), 集合 (sets) 有序集合 (sorted sets)
4.redis 持久化是如何操作的?
为了保证效率数据都缓存在内存中,可以周期性写入磁盘或者把修改操作写入文件(持久化)。 RDB 持久化,将 redis 在内存中的的状态保存到硬盘中,相当于备份数据库状态。 AOF 持久化(Append-Only-File),AOF 持久化是通过保存 Redis 服务器锁执行的写状态来记录数据库的。相当于备份数据库接收到的命令,所有被写入 AOF 的命令都是以 redis 的协议格式来保存的。
社区福利安排PHP进阶架构资料,免费获取
5.redis 适应的一些场景
1、取最新 N 个数据的操作
2、排行榜应用,取 TOP N 操作
3、需要精准设定过期时间的应用
4、计数器应用
5、Uniq 操作,获取某段时间所有数据排重值
6、实时系统,反垃圾系统
7、Pub/Sub 构建实时消息系统
8、构建队列系统
9、缓存
6.redis 的三个特点?
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 - Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 - Redis支持数据的备份,即master-slave模式的数据备份。
7.ECS 与虚拟主机的区别介绍
一个是服务器 一个相当于是服务器里的文件夹 云主机是在集群服务器上划分出来的独立的内存.硬盘.带宽等资源搭建而成的 一个虚拟服务器.有独立的IP和带宽,可以根据需求安装各版本操作系统以及 配置各种网站运行环境,有远程桌面连接东西.是完全独立的. 而虚拟主机是在服务器硬盘上划分出来的一部分存储空间,它共享的是服务器 的IP和带宽.没有独立的资源和独立的操作系统.没有远程桌面功能,通常虚拟主机所支持的网站程序也是默认分配好的.没有办法由用户自己配置环境.功能相对单一.
8. 重启 redis
service redis-server restart
9. 有序集合是怎么排序的?
它给集合中的每一个元素设置分数,按照其分数进行排序,也不允许有重复值
10. 谈谈你对 memcache 的理解
免费并且开源,高性能的,分布式的内存对象缓存系统
数据形态以key->value结构
用于从数据库调用、API调用或页面呈现的结果中获得少量任意数据(字符串、对象)。
11. 谈谈你对 redis 的理解
- 开源 先进的key-value存储
- 远程字典服务器 内存级数据库 数据结构服务器
- 一个基于内存的网络存储系统
五种数据类型 字符串(String), 哈希(hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)
三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存 储。
Redis支持数据的备份,即master-slave模式的数据备份。
应用场景:
1、取最新 N 个数据的操作
2、排行榜应用,取 TOP N 操作
3、需要精准设定过期时间的应用
4、计数器应用
5、Uniq 操作,获取某段时间所有数据排重值
6、实时系统,反垃圾系统