我想通過C中的libmemcached將整個MYSQL結果存儲在memcached中。這是可能的還是必須將每個行元素分別存儲在memcached中?libmemcached存儲mysql結果
回答
如果結果集總是小於1mb,那麼可以保存整個結果集。否則(如果你的結果可能大於1mb),你必須找到另一個解決方案。如果將每行存儲在memcache中,那麼這可能是一個很好的解決方案。
值大小的1mb限制是編入memcache的硬限制。唯一的解決方法是更改源代碼中的限制並重新編譯內存緩存。
查看http://groups.google.com/group/memcached/browse_thread/thread/d32434ce77131e48的一些討論。 (注意:這一切都假設可以將結果序列化成一個字符串;如果你不能這樣做,那麼你也不能存儲單獨的行,因爲數組不是一個限制因素序列化能力。)
這裏有一個帖子討論如何Serialize Data Structures in C
我不確定使用什麼函數來存儲整個結果集,因爲它似乎庫中的集合函數僅將char *作爲輸入。 – 2012-02-18 00:27:42
@SlavaMarkeyev,是的。如果結果集可串行化爲字符串,則只能存儲結果集。您如何決定序列化它是特定於應用程序的。 – 2012-02-18 00:28:37
@SlavaMarkeyev,我在我的答案中添加了關於序列化的註釋。無論如何,如果你的單行可以被序列化,那麼你的整個結果集肯定有可能被序列化。 – 2012-02-18 00:29:37
當然,你可以做到這一點。你必須找到一種方法來將所有的答案打包在一起。無論如何,它不容易找到我爲什麼要這樣做。
- 1. Memcache - 存儲mysql結果
- 2. 結合MySQL存儲過程的結果
- 3. 存儲結果
- 4. 結果存儲
- 5. 存儲結果
- 6. 在redis中存儲mysql查詢結果
- 7. (MySQL的)存儲過程 - 通過結果
- 8. MySQL - 如何存儲執行結果
- 9. 在MySQL中存儲清單結果
- 10. MySQL存儲過程動態sql結果
- 11. 存儲和處理MySQL結果
- 12. 存儲調查結果 - Mysql還是NoSQL?
- 13. 如何使用mysql存儲過程存儲返回的結果
- 14. 從存儲結果
- 15. MySQL數據庫結構 - 存儲Facebook FQL結果
- 16. MySQL:如果存儲過程
- 17. 存儲過程如果MySQL
- 18. 文件緩存與MySQL存儲Twitter/Facebook /其他API結果
- 19. 存儲過程結果?
- 20. PHP:存儲mcrypt的結果
- 21. AutoMapping存儲過程結果
- 22. 存儲函數的結果
- 23. 存儲mongodb結果數組?
- 24. Django - 存儲查詢結果
- 25. 存儲中間結果
- 26. 存儲Minhash的結果
- 27. MySqli循環存儲結果
- 28. 結果集存儲器
- 29. 緩存PHP MySQL結果
- 30. Redis緩存MYSQL結果
我只是想要注意的是,我沒有使用序列化庫,而是創建了自己的抽象層,以便程序的其餘部分使用它而不是使用memcache/sql特定的數據結構。這並不是最簡單的方式,但它很適合我的項目。 – 2012-02-27 05:20:52