官方 `daemon_memcached` 插件讓 InnoDB 表可透過 Memcached 協議 (Key-Value) 直接存取,省去獨立 Memcached 叢集與雙寫一致性維護,並借助 MySQL 複制實現 KV 資料同步。
# 編譯安裝需啟用 WITH_INNODB_MEMCACHED cmake . -DWITH_INNODB_MEMCACHED=ON make && make install # 載入插件 INSTALL PLUGIN daemon_memcached SONAME "libmemcached.so"; # 導入配置表 SOURCE /usr/local/mysql/share/innodb_memcached_config.sql;
cache_policies:`innodb_only`、`cache_only`、`caching` (預設)。config_options:`separator` (預設 `|`)、`table_map_delimiter` (預設 `.`)。containers:映射 KV 到 InnoDB 表欄位。
INSERT INTO containers (name, db_schema, db_table, key_columns, value_columns, flags, cas_column, expire_time_column, unique_idx_name_on_key)
VALUES ('default', 'test', 'users', 'username', 'password|email', 'flags', 'cas_column', 'expire_time_column', 'username');
# 讀取單鍵 echo "get foo" | nc localhost 11211 # 返回: VALUE foo 0 47 fffff...|foo@domain.com # 批量讀取 echo "get foo bar" | nc localhost 11211
結論: 適合「讀多寫少、Key-Value 存取模式明確、不想維護獨立快取叢集」的場景。