我有一個Debian服務器,有大約16GB的RAM,我使用的是nginx和幾個沉重的mysql數據庫以及一些自定義的php應用程序。我想在Mysql和PHP之間實現一個內存緩存,但是數據庫太大而無法將所有內容存儲在RAM中。就我研究而言,我認爲LRU緩存可能會更好。這是否排除Redis? Couchbase也是一個考慮因素。Memcached,Redis或Couchbase
回答
假設有一個運行nginx + php + mysql實例的獨特服務器,其餘一些可用的RAM,使用該RAM緩存數據的最簡單方法就是增加mysql實例的緩衝區緩存。數據庫已經使用類似LRU的機制來處理它們的緩衝區。
現在,如果您需要將部分處理從數據庫中移走,那麼預緩存可能是一個選項。在討論memcached/redis之前,如果僅考慮一臺服務器(實際上比redis/memcached更有效),則與php等集成的共享內存緩存(如APC)將會更加高效。
memcached和redis都可以被認爲是執行遠程緩存(即共享各個節點之間的緩存)。我不排除redis:它可以很容易地配置爲此目的。兩者都將允許定義一個內存限制,並使用類似LRU的行爲處理緩存。然而,我不會在這裏使用couchbase,這是一個彈性的(即應該在幾個節點上使用)NoSQL鍵/值存儲(即不是緩存)。你可能會將一些數據從你的mysql實例移動到一個couchbase集羣,但僅僅用於緩存就是過度工程IMO。
我們使用memcached的最初緩存data.In memcahed分區數據不同鬥下的不同應用程序是一個真正的issue.Also我們有一個要求,以刷新一個桶alone.Monitoring數據被另一個requirement.We移到CouchBase數據並使用memcahed風格的bucket.i猜測它使用couchbase memcache風格存儲區進行緩存而不是使用memcahe更加靈活和高效。
這是緩存/內存緩存用戶遷移到Couchbase的常用用例(使用memcache存儲區,有時使用Couchbase存儲區)。我邀請您查看http://www.couchbase.com/memcached – 2013-01-17 09:27:52
正如Matt Ingenthron指出的那樣,Hari指出Couchbase支持作爲Memcached的直接替代品。 Couchbase以非彈性方式利用memcached,因爲參與memcache集羣的每個節點都是謹慎的,沒有持久性,即只是一個緩存,但couchbase也提供了確保持久性的「Couchbase」存儲區類型。 Membase也是代碼的一部分,因此Couchbase不僅可以從磁盤提供數據,還可以從RAM提供數據,並在複製到其他節點時將其持久存在,並在應用更改時保存到磁盤。如果您只是希望緩存層與持久層分離,我強烈推薦Couchbase 3.x用於一個腳本中的緩存和持久性,或者多個腳印。
您是否曾考慮過使用持久性內存中的NoSQL解決方案之一將數據庫完全移到RAM中?它可能需要比原始MySQL數據庫更少的存儲空間,因爲許多NoSQL解決方案通常佔用的空間比SQL數據庫少。此外,如果服務器端邏輯對您來說非常重要,那麼嘗試使用Tarantool,因爲它具有Lua腳本,並且應該佔用很小的內存空間。在我的情況下,Tarantool中的相同數據比MySQL中少了兩倍。這是因爲它們每行和每個字段的開銷很小,並且使用messagepack進行數據存儲。
- 1. Couchbase Memcached過濾器
- 2. Couchbase Bucket vs Memcached Bucket for SessionProvider
- 3. Couchbase作爲memcached + repcached替換?
- 4. 是由couchbase使用的memcached?
- 5. Redis with Twemproxy vs memcached
- 6. 如何使用redis或memcached配置tomcat6或7共享會話?
- 7. PHP memcached或Nginx memcached
- 8. 使用memcached存儲桶掌握Couchbase
- 9. Couchbase在多大程度上替代Memcached
- 10. Memcached :: getStats不能與Couchbase配合使用
- 11. 使用redis/memcached提供此功能的Ruby gem for working memcached-tag和/或gem
- 12. 將臨時數據存儲在couchbase或redis中
- 13. 如何在slim 3框架下使用memcached或redis 3
- 14. 將複雜對象存儲在redis或memcached中(ruby)
- 15. 使用memcached或redis的Rails cache_store不會產生性能提升
- 16. memcached,APCu或redis作爲Symfony和Doctrine的緩存
- 17. 建議使用Redis或Memcached作爲FILES的緩存嗎?
- 18. 你如何選擇Memcached,Redis和Varnish?
- 19. memcache,memcached和redis之間的區別
- 20. Memcached和Redis的安裝和配置
- 21. 等效於Memcached中的Redis哈希?
- 22. memcached或lucene.net與nhibernate
- 23. 可以使用Redis或Memcached來「鎖定」像S3這樣的blobstore資源嗎?
- 24. Redis/Memcached/MongoDB(或任何NoSQL系統)是否支持MySQL的DUPLICATE KEY UPDATE?
- 25. 將nop commerce的緩存管理器擴展爲使用Redis或Memcached
- 26. Redis或Ehcache?
- 27. 誰更快? AppFabric Cache或Memcached?
- 28. Drupal的Memcache或Memcached安裝?
- 29. ElasticSearch或Couchbase或其他東西
- 30. 查詢:redis或mongodb?
我已經使用了APC,但是我們在web應用中使用的php cli腳本無法訪問相同的數據。這就是memcached成爲下一個邏輯步驟的第一步。我正在研究couchbase,因爲我認爲它是一個非易失性(如果需要的話)或多或少地用於memcached的替代品。 – Poe 2012-02-10 12:04:16
Couchbase應該被考慮,因爲它具有簡單的舊memcached操作模式(稱爲桶),但使管理更容易,管理統計等。完全公開:我爲Couchbase工作。 – 2012-03-09 01:54:15