Redis 또는 Memcached간에 전환하면 내 코드를 변경하지 않아도되는 일반적인 API가 있습니까?레일 및 캐싱, memcache와 redis를 쉽게 전환 할 수 있습니까?
답변
redis-store를 설치하고
config.cache_store = :memcached_store
까지 구성을 변경의 문제는 당신이 Memcached가 클라이언트에게 자신을 초기화하지 않습니다하지만 당신은 Memcached가에서 레디 스로 전환,
Rails.cache
공통 API에 의존하고있는 한
config.cache_store = :redis_store
more info about Rails.cache.
귀하의 목표를 망쳐 놓는 것이 싫지만 일반 레일 캐싱에 memcached를 통한 redis 사용을 권장하지 않습니다.
큰 레일 응용 프로그램에서 redis와 resque를 광범위하게 사용하며 캐싱, 원시 redis 및 resque를 하나로 통합하는 것이 좋을 것이라고 생각했습니다. 몇 가지 큰 문제가 발생했습니다.
- 먼저 느리게 진행되었습니다. 그것은 나의 특정한 사용법, redis-store 라이브러리 또는 redis 그 자체 일 수있었습니다. 난 아무것도 badmouth 가지 않을거야 당신의 마일리지가 다를 수 있지만 memcached "그냥 작동"때 redis 전환 많은 시간을 덤프 빨아 것이다
- Memcached는 서버를 추가하고 일관된 해시를 사용하기 매우 쉽기 때문에 좋습니다. 목표를 달성하십시오. Redis도이 점이 있지만 제 경험으로 보면 Redis를 응용 프로그램의 일부 영역과 다른 부분의 모 놀리 식 데이터 저장소로 동시에 취급하는 것이 어려웠습니다. 분산 된 일관되게 해싱 된 캐시 저장소로 취급합니다.
프로젝트가 성공적으로 완료되었습니다. 나는 redis를 좋아하고 memcached를 사용하여 모든 프로젝트에서 사용하지만, 나는 그것을 킥 - 엉덩이 데이터 구조 서버로하고 다른 하나는 캐싱에서 엉덩이를 걷어 차게한다.
http://seal-7.blogspot.com/2011/11/rails-benchmarking-reloaded.html –
memcached는 멀티 스레드이며 Redis는 단일 스레드이므로 memcached는 단순 키 값 저장소로 Redis보다 처리량이 많습니다. . 따라서 Redis는 곧 최고 성능을 발휘하는 하나의 CPU 코어를 100 % 사용하게 될 것입니다. 반면 memcached는 최대한 많은 CPU 코어를 사용하므로 최대 처리량이 훨씬 더 높습니다. Redis는 더 빨라질 수 있지만 Redis는 추가 데이터 유형이나 지속성 또는 기타 기능을 사용할 때만 실제로 유용합니다. – ColinM
이 질문은 실제로 다루지 않습니다. 또한 많은 사람들이 정확히 그것을 위해 성공적으로 사용하고있는 것처럼 일회성 경험이 Redis를 캐싱에 사용하지 말라고 충고한다고 생각하지 않습니다. – Yarin
Redis의 깔끔한 부분에는 앱에서 발생하는 목록의 내용을 푸시/팝하는 '목록 기반'의 캐싱이 포함됩니다.
memcached에서 큰 값을 역 직렬화하는 대신 편집하고 다시 직렬화하십시오.
이것은 기본 레일 캐시와 비교하여 사용자 정의 필터의 루비 코드에서 수행됩니다.
- 1. MySQL 내에서 Redis를 호출 할 수 있습니까?
- 2. 레일 : 캐싱 문제가 있습니까
- 3. 레일 캐싱 문제가 있습니까?
- 4. 레일 캐싱 및 권한 기반보기
- 5. 위젯을 캐싱 할 수 있습니까?
- 6. UIViewController를 캐싱 할 수 있습니까?
- 7. 단추없이보기를 전환 할 수 있습니까?
- 8. Redis를 Javascript로 직접 연결할 수 있습니까?
- 9. 레일 캐싱 + 아약스
- 10. Resque와 함께 Redis를 사용할 수 있습니까?
- 11. Python을위한 동시성 구현을 쉽게 할 수 있습니까?
- 12. Eclipse에서 SVN 리포지토리를 전환 할 수 있습니까?
- 13. wxWidgets로 IPC를 쉽게 할 수 있습니까?
- 14. GitHub에서 여러 분기를 더 쉽게 관리 할 수 있습니까?
- 15. Redis를 사용하는 프레임 워크
- 16. javax.persistence.Query 개체를 캐싱 할 수 있습니까?
- 17. WPF에서 스타일을 동적으로 전환 할 수 있습니까?
- 18. QProgressBar를 쉽게 사용자 정의 할 수 있습니까?
- 19. 이메일 주소록 초대를 쉽게 할 수 있습니까?
- 20. 이 작업을 쉽게 수행 할 수 있습니까?
- 21. TFS 병합을 더 쉽게 할 수 있습니까?
- 22. 파이썬에서는 xml을 쉽게 편집 할 수 있습니까?
- 23. CObList를 쉽게 분류 할 수 있습니까?
- 24. 텍스트 파일을 쉽게 파싱 할 수 있습니까?
- 25. NSLibraryDirectory에서 파일을 쉽게 제거 할 수 있습니까?
- 26. tcmportmapper를 iOS로 쉽게 이식 할 수 있습니까?
- 27. 레일 캐싱 2.3 도움말
- 28. 레일 method_missing 및 activerecord 클래스 캐싱
- 29. 장고 캐싱 - 선제 공격을 할 수 있습니까?
- 30. 레일 캐싱 로그 수준
결국 조각난 캐싱과 Sidekiq 작업 모두에서 Redis를 메모리 부족없이 어떻게 사용할 수 있습니까? 동일한 Redis 인스턴스를 사용하여 Sidekiq 작업을 항상 유지할 수 있지만 조각에 선입 선출 (FIFO)을 사용합니까? – Mohamad