Coder Social home page Coder Social logo

zvanyang / php-interview-myway Goto Github PK

View Code? Open in Web Editor NEW
389.0 389.0 88.0 2.34 MB

记录PHP面试包括计算机网路,操作系统,PHP,redis,数据库MySQL(从2019年12月开始)面试了好未来,跟谁学,头条,极客保险,百度文库,百度知道等等公司。持续更新中

License: MIT License

mysql php php-interview-myway rabbitmq redis

php-interview-myway's Introduction

Hi there 👋

  • 🔭 I’m currently working on kuaishou Tech
  • 🌱 I’m currently learning golang/database internal
  • 📫 How to reach me: 86938904

php-interview-myway's People

Contributors

wormw avatar zvanyang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

php-interview-myway's Issues

关于 redis 缓存不一致的看法

文章说到 :先删除缓存,再更新数据库 但是这个细节如果在两个并发操作的时候就会有脏数据
一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了。

可以参考系这篇 更新缓存讨论

php秒杀系统

这个秒杀系统不严谨吧,如果两个并发请求,同时取得get(goods.num),全等于1,然后再同时减-1,这个系统拦不住哇,你还是需要检查decr的返回值的

如何保证一段时间内,只允许固定数量的人访问

这个涉及到一个令牌桶限流算法。
https://baike.baidu.com/item/%E4%BB%A4%E7%89%8C%E6%A1%B6%E7%AE%97%E6%B3%95/6597000?fr=aladdin

大致的意思的。定义一个桶比如redis 的list ,通过脚本之类的按照固定的速率往桶中放令牌,访问时候从桶中pop,有结果则允许访问,没有则限流。redis实现很简单。
好处也很明显,可以让流量更均匀的分散在各个时间点。如果一次性把所有令牌放上去,可能导致整个请求中只有前一部分的时间是合法流量。后续大部分的情况都是限流。
这个算法可以用在均匀释放资格的场景。

MySQL大表建索引

文中提到的方案不大对吧。如果先建临时表,然后rename,给原表加索引,再进行数据修复,依然会影响线上服务,而且原表加索引的时间依然很长,会出现主从延迟。
一般业务上,都是通过创建新表,然后将旧表数据同步至新表,再rename进行的。DBA有相关的MySQL工具,但是在该表存在单行短时间频繁写入的情况下,依然会有因为无法取得锁而导致的死锁现象发生。所以切换的行为还是手动在低峰时间操作更安全一些。

PHP 大文件行号

<?php

// index.php 的大小为 1.7 G 行数为 1 亿+  用时 6s-
$getfp = fopen('./index.php', 'r');

$lines = 0;

while (fgets($getfp)) {
    $lines++;
}
fclose($getfp); //关闭文件

var_dump($lines)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.