PHP -REDIS/MEMCACHEDB/MONGODB 또는 기타 영구 저장소를 저장하는 기타 영구 저장소

StackOverflow https://stackoverflow.com/questions/2035808

  •  19-09-2019
  •  | 
  •  

문제

카운터로 페이지 뷰, 다운로드, 투표 수 등이 될 수 있습니다. 기본적으로 '중요한'데이터가 아닙니다.

해당 정보를 저장하는 '가장 좋은'방법은 무엇입니까? MySQL은 좋은 옵션이 아닙니다. 너희들은 무엇을 사용합니까?

도움이 되었습니까?

해결책

나는 Redis와 함께 갈 것이라고 생각합니다.

  • Antirediz (그의 별명)는 실제로 적극적으로 발전하고 있습니다 레 디스. (GitHub 대시 보드를 볼 때마다 새 코드를 헌신했습니다). 그는 이제 Redis를 개발하고 있습니다 풀 타임 VMware에게 감사합니다
  • Redis는 결국 지속되므로 성능은 Kickass입니다 (첫 번째 메모리 만 빠르게 사용합니다).
  • Redis는 원자력이 있습니다 증가 필요한 작동.
  • Redis에는 많은 PHP 라이브러리가 있습니다. a로 쓰여진 것도 있습니다 C 확장 그래서 그것은 정말 좋은 성능을 가지고 있습니다. Redis 웹 사이트 또한 이러한 확장 기능에 대한 개요가 있습니다. 일부는 순수한 PHP 코드입니다 (Litle을 실행하지만 느리지 만 구성하기가 더 쉽습니다).

다른 팁

업 서트가있는 Mongodb는 이것에 좋습니다.

다음과 같은 것을 저장하는 경우

{ "url" : "www.example.com", "pageviews" : 0 }

Atomic Operation $ Inc를 사용하여 페이지 뷰를 원자 적으로 증분 할 수 있습니다.

db.downloads.update({'url' : 'www.example.com'}, {'$inc' : {pageviews : 1}})

업 서트를 사용하는 경우 문서를 업데이트하기 전에 문서가 있는지 확인할 필요가 없습니다. 예를 들어, 당신이 말하는 경우 :

db.downloads.update({'url' : 'www.example.com'}, {'$inc' : {pageviews : 1}}, {"upsert" : true})

URL www.example.com이있는 문서는 존재하지 않으면 (PageViews가 1으로 설정된 경우) 존재하는 경우 PageViews가 증가합니다. 이것은 당신이 컬렉션을 미리 채울에 대해 걱정할 필요가 없다는 것을 의미합니다.

1990 년대의 유명한 뷰 카운터는 간단한 파일을 사용하여 그 숫자를 저장했습니다. 필요한 것은 단지 하나의 숫자를 저장하는 것만이라면 무엇이든 충분합니다.

나는 APC 또는 Memcached가 좋은 선택이라고 말할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top