카테고리 없음

[php] PHP에서 중간 / 대형 데이터 세트를 캐시하는 가장 좋은 도구 / 전략은 무엇입니까?

행복을전해요 2021. 3. 1. 16:30

Unless you have a good reason to send that data over the wire to a cache, don't.

If at all possible, use a local, in process caching solution, such as APC(u) or YAC (YAC is extremely clever software, and may not be stable).

When APC(u), or wincache actually, copy arrays and scalars in and out of shared memory, they do so bitwise, byte by byte, they do not serialize or otherwise have to change the format of the data, this, coupled with the fact there is 0 network overhead make local caching solutions like APC(u) much faster than anything like memcached or redis.

APC (u)는 세그먼트 또는 항목의 크기에 대한 제한이 없으므로 운영 체제에서 매핑 할 수있는 모든 메모리를 사용하도록 구성 할 수 있어야합니다.

물론, 당신이 유선을 통해 보내고 싶은 타당한 이유가 있다면, 이것은 꽤 쓸모없는 정보입니다;)

-------------------

웹 애플리케이션은 빅 데이터 세트를 반환하는 복잡한 쿼리를 많이 실행하므로 데이터 캐싱을 확실히 고려해야합니다.

시스템에 대한 셸 액세스 권한이있는 경우 페이지를 많이 가속화하는 Varnish 라는 매우 칭찬되고 인기있는 웹 응용 프로그램 가속기를 사용하는 것이 좋습니다 .

-------------------

memcached가 데이터베이스와 다른 서버에 있으면 더 좋을 것입니다. 따라서 두 곳에서로드 균형을 맞출 것입니다. 따라서 캐시되지 않은 결과는 데이터베이스 서버에서 직접 제공되고 캐시 된 결과는 다른 서버에서 제공됩니다.

여기서 제가 드릴 수있는 유일한 조언은 캐시에 중독되지 않는 것입니다. Memcached 서버가 한동안 충돌하면 모든로드가 데이터베이스 서버에 가해져 충돌이 발생하는 지점에 도달했기 때문입니다.

-------------------

다음과 같이 사용할 수있는 많은 옵션이 있습니다.

1) 질의가 많은 경우 MASTER / SLAVE DB ARCHITECTURE 사용 이 큰 도움이되며, SLAVE DB 에서 선택 질의를 수행 할 수있어 MASTER DB의 과부하를 줄일 수 있습니다 .

2) SPHINX사용 하면 데이터 검색 속도를 높일 수 있습니다. Wikipedia 기사 WIKI-Sphinx 에서 이에 대해 읽을 수 있습니다 .

3) Master / Slave 복제도 지원 하는 REDIS 서버를 사용할 수 있습니다 . REDIS 기사

또한 테이블 구조를 정규화하고 인덱싱하고 조인을 수행하는 방법과 같은 다른 요인에 따라 달라집니다.

참고 : : JOINS의 불필요한 사용은 일반적으로 피합니다. 여기 IBM- 불필요한 외부 조인 방지 에서 이에 대해 읽을 수 있습니다.

도움이 되었기를 바랍니다

-------------------

응용 프로그램을 크게 변경하지 않고도 다음과 같은 선택을 할 수 있습니다.

  • 전체 프런트 엔드를 캐시 할 수 있습니다. 5 분마다 실행되는 작업 (응용 프로그램의 데이터 변경에 따라 다름)을 만들고 html 디렉터리에 html 파일을 만듭니다. 그리고 클라이언트가 서버에서 URL을 요청하면 html 파일을 제공합니다. 이것은 매우 편리 할 수 ​​있습니다.

  • nginx 캐시를 사용 하는 것도 좋은 선택이 될 것입니다.

  • 문제없이 정말 많은 양의 데이터를 캐시 할 수있는 네트워크에 추가 할 수있는 하드웨어가 있습니다. Nginx는 소프트웨어 솔루션이고 netscaler는 하드웨어 솔루션입니다. citrix 는 이것에 대한 훌륭한 솔루션을 가지고있는 것 같습니다 .



출처
https://stackoverflow.com/questions/22089820