簡體   English   中英

與MYSQL的新innodb memcached插件混淆?

[英]Confusion with new innodb memcached plugin for MYSQL?

我已經將memcached以傳統方式與memcache php擴展一起運行,我的應用程序設置為在預期時緩存查詢。

我現在正在運行MySQL 5.6,並希望測試新的innodb_memcached插件,以便快速訪問我數據庫中某些表的NoSQL樣式鍵值。

但是我對安裝很困惑:

  • 既然我已經安裝了memcached,我應該卸載它然后安裝innodb插件版本嗎? (我的情況是通過yum安裝的)
  • 如果是這樣,我的應用程序將正常運行並仍以常規方式緩存查詢嗎? 或者所有這些都會失效?
  • 我應該將它與標准版本一起安裝並在單獨的端口上運行嗎? 如果是這樣我將如何解決這個問題?

基本上我只想對這個安裝提出一些建議。 我希望它是一個簡單的卸載和替換,其他一切都像以前一樣運行。

提前致謝

一如既往,答案是“它取決於”。

您可以使用memcached插件作為現有標准memcached服務器的完全替代品。 您只需要通過在innodb_memcache.containers表中插入一行來告訴插件您要使用哪個表來存儲緩存數據。 在這種情況下,您可能會為緩存創建一個全新的表。 在這種情況下,您的應用程序和現有數據庫保持不變。 好處是你現在擁有一個持久的memcached,其空間與數據庫一樣多(而不是受memcached服務器上RAM的限制)

但是,您還可以采用另一種方法,即可以通過Memcached協議訪問實際的MySQL數據。 在此方案中,您將從應用程序中完全刪除SQL交互,並僅使用memcached客戶端添加/刪除/更新數據。 顯然,這可能適用於您的特定用例,也可能不適用,但如果您可以將它拉下來,那么它可以通過一次性緩存和永久存儲簡化您的應用程序A LOT。

要使用第二種方法,您需要再次配置innodb_memcache.containers表以正確映射到目標表。 您甚至可以通過相同的memcached接口公開多個表,只需在此表中添加更多行,並在鍵前添加@@identifier.

例如: @@users.1234將使用users容器(映射到表XYZ)並使用1234作為緩存鍵)

作為上一個答案的補充,請查看標准文檔以獲取逐步配置: http//dev.mysql.com/doc/refman/5.6/en/innodb-memcached-setup.html

基本上你可以選擇配置它的端口(innodb memcached插件)它作為MySQL服務器的一部分運行(但memcached端口不同於標准的MySQL端口)。

是的,可以選擇作為標准memcached的替換,或者作為memcached本身的持久層(在這種情況下,需要進行額外的編程以保持主memcached)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM