常见PHP面试题(2)(PHP面试笔试题)

一、你会如何查找并清理 Redis 中由于业务逻辑不合理产生的垃圾数据

  1. 先做数据备份,然后写个脚本,scan所有key,统计前缀,根据前缀对应到业务中,再挨个删除。
  2. 下载阿里云的备份数据或者redis 的 .rdb 备份文件到本地进行分析
    工具推荐: redis-rdb-tools
    sripathikrishnan/redis-rdb-tools
    阿里云帮助文档 > 云数据库 Redis 版 > 最佳实践 > Redis 内存分析方法
  3. 排查业务代码,找出之前废弃业务的redis键手动删除处理
  4. 查看一个rediskey的空闲时间,不需要的手动处理
  5. 使用Redis提供的数据过期策略,传送门

二、假如有一套社区系统,每次访问帖子详情需要消耗大量的资源,如何设计缓存能有效提高热门帖子的访问速度

  1. 页面级别的缓存
  2. redis数据缓存

三、请解释如下 SQL 的含义,并阐述如果这个SQL查询很慢,你会怎么分析并解决这个问题

select count(*) as total, platform, event_name from callback_event GROUP BY platform, event_name ORDER BY platform, total DESC LIMIT 10;

四、在一个框架中比较重要的模块是路由,根据你的经验你会怎么实现 http://example.com/user/index/create 这种形式的路由解析

  • 获取 pathinfo
 $pathinfo = explode('/', trim($_SERVER['PATH_INFO'], "/"));
  • 获取模块
$_GET['m'] = (!empty($pathinfo[0]) ? $pathinfo[0] : 'index');
array_shift($pathinfo); //将数组开头的单元移出数组
  • 获取 control
$_GET['c'] = (!empty($pathinfo[0]) ? $pathinfo[0] : 'index');
array_shift($pathinfo); //将数组开头的单元移出数组
  • 获取 action
$_GET['a'] = (!empty($pathinfo[0]) ? $pathinfo[0] : 'index');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值