누구나 SQLAlchemy와 Memcached를 결합 했으므로 Memcached에 캐시 된 SQLAlchemy에서 결과를 반환합니까? 지금은 어떻게 구현해야할지 모르겠지만 완전히 잃어버린 도움을 찾고 있습니다.SQLAlchemy에서 Memcached를 사용하는 방법은 무엇입니까?
감사합니다. Boda Cydo.
누구나 SQLAlchemy와 Memcached를 결합 했으므로 Memcached에 캐시 된 SQLAlchemy에서 결과를 반환합니까? 지금은 어떻게 구현해야할지 모르겠지만 완전히 잃어버린 도움을 찾고 있습니다.SQLAlchemy에서 Memcached를 사용하는 방법은 무엇입니까?
감사합니다. Boda Cydo.
Memcache 및 관계형 데이터베이스는 두 가지 별도의 기능을 제공하며, 동일한 방식으로 작동하지 않습니다. Memcache는 간단한 조회 버킷으로, 많은 요청 사이에서 공유되는 부분 웹 페이지와 같은 모양을 덤프하는 데 유용하며 생성에 오래 걸릴 수 있습니다 (데이터베이스 스키마를 충분히 최적화/비정규화할 수 없을 때 생기게 하다).
전체 백엔드 데이터 저장소와 같이 memcache를 사용하는 것은 좋지 않습니다. memcache 또는 데이터베이스에 연결된 SQL 인터페이스를 제공하는 것은 유용하지 않습니다. 두 가지 모두에서 최악의 상황이 발생할 수 있습니다. memcache의 단순성/속도 또는 관계형 데이터베이스의 ACID- 준수.
데이터베이스 서버에 이미 캐시가 있습니다. 캐시를 더 많이 사용하려면 어리석은 하드웨어를 사용하지 않고 가능한 한 캐시의 크기를 높게 설정하십시오. 프론트 엔드를 더 빠르게 만드려면 memcache를 사용하십시오. 그러나 데이터 일관성에 대한 타협이 필요하기 때문에 데이터베이스에서 원하는 성능을 실제로 얻을 수없는 경우에만 사용해야합니다. 정말로 필요할 때까지 memcache에 의지하지 마십시오.
캐싱을 SQLAlchemy 응용 프로그램에 통합하는 방법을 보려면 SQLAlchemy 소스의 beaker caching example을 참조하십시오. 비커는 Memcached를 캐시 저장소로 사용할 수 있습니다.
데드 링크. 어쨌든, 비커가 dogpile.cache로 교체 된 것 같습니다 : http://techspot.zzzeek.org/2012/04/19/using-beaker-for-caching-why-you-ll-want-to-switch- to-dogpile.cache / –
더 이상 동의 할 수 없습니다. 네트워크를 통해 행을로드하고 내부 구조로 변환하여 페이지를 렌더링합니다. 더 빠른 데이터베이스로는 개선 할 수없는 모든 고비용 프로세스. 모든 종류의 원격 시스템을 사용하여 데이터를로드하는 대부분의 중요하지 않은 웹 응용 프로그램은 기본적으로 Memcached와 같은 캐시 사용을 가정해야합니다. 결과 집합 캐싱 만이 캐싱의 한 측면 일뿐입니다. – zzzeek
결과 집합 캐싱조차도 매우 적합합니다. 필자는 필연적으로 느린 쿼리 (예 : 큰 테이블 전체에서 일부 값의 표준 편차 집계)가 필요할 수 있으며 하루에 몇 번만 필요합니다. 이 쿼리에 대해서만 데이터베이스를 대규모 하드웨어로 확장하거나 캐시에 무료로 추가 할 수 있습니다. – zzzeek
@zzzeek 당신이 자리하고 있습니다. "좋은 생각이 아니야 ..."로 시작하는 문장은 "유한하고 제한적인 경험에서 보면 좋은 생각이 아닙니다 ..."라고 쓰여질 것입니다. –