>  기사  >  백엔드 개발  >  PHP 인터뷰

PHP 인터뷰

不言
不言원래의
2018-04-14 09:29:341934검색

이 글의 내용은 PHP 인터뷰 경험에 관한 것입니다. 이제 모든 사람과 공유합니다. 도움이 필요한 친구들이 참고할 수 있습니다.

  • CORS(Cross Origin Resource Sharing) 크로스 사이트 리소스 요청이 가능합니다. . 클라이언트는 리소스(예: xmlhttprequest)를 요청하기 위해 특정 방법을 사용해야 하며 서버는 도메인 간 리소스 요청도 지원해야 합니다

memcache와 redis

  • memcache의 유사점과 차이점 멀티 스레딩, 높은 처리량을 사용할 수 있으며 대규모 방문에 적합합니다.

  • memcache는 간단한 키/값 구조만 지원합니다.

  • memcache는 데이터를 유지할 수 없으며 백업할 수 없습니다. 데이터를 다시 시작한 후에만 사용할 수 있습니다. loss

  • memcache는 다중 스레드 작업을 지원하므로 데이터 일관성 문제를 고려해야 합니다. Cas(check and set) 낙관적 잠금이 사용됩니다.

  • redis는 단일 형식이므로 질서 있는 작업을 보장할 수 있습니다.

  • redis는 다양한 데이터 구조, 키/값, 목록, 세트, ​​zset, dict 등을 지원합니다.

  • redis 데이터는 영구적으로 저장될 수 있고, 데이터는 디스크에 저장될 수 있으며, 읽을 수 있습니다. 다시 시작할 때

  • redis는 데이터 백업, 즉 마스터-슬레이브 모드의 데이터 백업을 지원합니다.

웹 프로젝트를 위한 높은 동시성 솔루션

  • 정적 HTML, 일반적으로 사용되지만 거의 업데이트되지 않는 데이터를 정적화

  • 그림 애플리케이션 서버에 영향을 미치지 않도록 서버를 분리하는 동시에 사진 서버에 대해 별도의 구성 최적화, 캐시 설정 등을 수행할 수 있습니다.

  • 데이터베이스 클러스터, 라이브러리 테이블 해싱


    • 데이터베이스 클러스터는 읽기-쓰기 분리를 달성하고 데이터베이스를 향상시킬 수 있습니다. 응답 속도는 일반적으로 하나의 마스터와 여러 슬레이브 또는 x 마스터와 y 슬레이브입니다. 예를 들어, 적게 쓰고 많이 읽는 경우 한 서버는 쓰기 작업 전용으로 사용되고 다른 서버는 읽기 작업에 사용됩니다. 이렇게 하면 읽기-쓰기 잠금의 영향을 피할 수 있습니다. 그러나 쓰기 작업이 완료된 후에는 데이터를 동기화해야 합니다.

    • 데이터베이스 클러스터의 또 다른 장점은 하나의 데이터베이스 서버가 다운되더라도 다른 서버에 완전한 데이터가 여전히 남아 있다는 것입니다.

    • 분산 데이터베이스에는 시스템에 여러 노드가 있으며 각 노드는 서로 다른 작업 기능을 완료합니다. 특정 노드가 끊어지면 해당 기능을 완료할 수 없습니다.

    • 데이터베이스 클러스터와 분산 데이터베이스의 차이점. 하나의 노드에서 작업을 완료하는 데 1시간이 걸리고 이제 해당 작업이 10개이고 노드가 10개 있다고 가정해 보겠습니다. 분산 데이터베이스는 작업을 10개의 작업으로 나눌 수 있습니다. 각 노드는 하위 작업의 종속성에 관계없이 다른 작업을 완료합니다. 모든 작업은 한 시간 후에 완료됩니다. 데이터베이스 클러스터의 각 노드는 전체 작업을 완료할 수 있으며 각 노드당 평균 10개의 작업을 완료할 수 있으므로 모든 작업은 1시간 후에 완료됩니다.

    • sql 최적화

    • 테이블에 데이터가 너무 많으면 테이블을 분할하고 해시 매핑

    • 인덱스 최적화

  • 캐싱

  • 미러를 사용하여 액세스를 개선하는 것을 고려할 수 있습니다. 속도

  • 로드 밸런싱, 높은 동시성 및 대규모 액세스 문제 해결

  • CDN, 사용자가 가장 가까운 CDN 서버에 액세스하고 가장 빠른 응답을 얻을 수 있음

  • 데이터 압축

PHP

Magic method

  • __set/__get은 클래스에 존재하지 않는 속성을 처리합니다.

  • __call/_callStatic은 클래스에 존재하지 않는 메서드/정적 메서드를 호출할 때 트리거됩니다. __callStatic 자체는 정적 메소드로 선언해야 합니다

  • __toString 객체를 문자열 출력으로 변환

  • __invoke 객체를 함수로 실행합니다

require와 include의 차이점


다릅니다 오류 처리 그 외에는 모두 동일합니다. require는 치명적인 오류를 생성하고 스크립트 실행을 중지합니다. include는 경고를 생성하지만 스크립트는 계속 실행됩니다


위 내용은 PHP 인터뷰의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP 기본 기능다음 기사:PHP 기본 기능