本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
MySQL memcached 支援
Amazon RDS 支援透過 memcached
界面,藉此使用 MySQL 5.6 所推出的 InnoDB 資料表。藉由 memcached
API,應用程式即可以類似 NoSQL 索引鍵/值資料儲存的方式,使用 InnoDB 資料表。
memcached
界面是簡單的索引鍵型快取。應用程式使用 memcached
來插入、操控及擷取快取的索引鍵-值資料對。MySQL 5.6 引進一個實作協助程式服務的外掛程式,該服務透過 memcached
通訊協定公開 InnoDB 資料表中的資料。如需有關 MySQL memcached
外掛程式的詳細資訊,請參閱 InnoDB 與 Memcached 的整合
如要啟用 RDS for MySQL 資料庫執行個體的 memcached 支援
-
決定要用於控制
memcached
界面存取的安全群組。如果已經在使用此 SQL 界面的應用程式和將會存取memcached
界面的應用程式是同一批,您可以使用此 SQL 界面使用的現有 VPC 安全群組。如果是不同的應用程式將存取memcached
界面,請定義新的 VPC 或資料庫安全群組。如需管理安全群組的詳細資訊,請參閱 使用安全群組控制存取 -
請建立自訂資料庫選項群組,選取 MySQL 做為引擎類型和版本。如需建立選項群組的相關資訊,請參閱建立選項群組。
-
將
MEMCACHED
選項新增至選項群組。指定memcached
界面將使用的連接埠,以及指定安全群組來控制對界面的存取。如需新增選項的詳細資訊,請參閱將選項新增至選項群組。 -
如有需要,修改選項設定以便設定
memcached
參數。如需如何修改選項設定的詳細資訊,請參閱修改選項設定。 -
將選項群組套用至執行個體。一旦套用選項群組,Amazon RDS 即會啟用該執行個體的
memcached
支援。當您在啟動新執行個體時指定自訂選項群組,即啟用了新執行個體的
memcached
支援。如需有關啟動 MySQL 執行個體的詳細資訊,請參閱建立 Amazon RDS 資料庫執行個體。當您在修改現有執行個體時指定自訂選項群組,即啟用了現有執行個體的
memcached
支援。如需修改 資料庫執行個體的詳細資訊,請參閱修改 Amazon RDS 資料庫執行個體。
-
指定可以透過
memcached
界面存取 MySQL 資料表中的哪幾欄。memcached
外掛程式會在名為containers
的專用資料庫中建立名為innodb_memcache
的目錄資料表。您在containers
資料表中插入一個資料列,以映射透過memcached
存取的 InnoDB 資料表。指定 InnoDB 資料表中的一欄用於存放memcached
索引鍵值,並指定一或多欄用於存放與此索引鍵相關聯的資料值。也要指定名稱,讓memcached
應用程式可用來指向這幾欄。如需在containers
資料表中插入資料列的詳細資訊,請參閱 InnoDB Memcached 外掛程式內部。如需映射 InnoDB 資料表以及透過 memcached
存取它的範例,請參閱撰寫 InnoDB Memcached 外掛程式的應用程式。 -
如果存取
memcached
界面的應用程式所在的電腦或 EC2 執行個體,和使用 SQL 界面的應用程式所在的不同,請為這些電腦新增連線資訊,以連線至與 MySQL 執行個體關聯的 VPC 安全群組。如需管理安全群組的詳細資訊,請參閱 使用安全群組控制存取。
修改執行個體並指定您的 MySQL 版本的預設選項群組,即可關閉執行個體的 memcached
支援。如需修改 資料庫執行個體的詳細資訊,請參閱修改 Amazon RDS 資料庫執行個體。
MySQL memcached 安全考量
memcached
通訊協定不支援使用者驗證。如需 MySQL memcached
安全性考量的詳細資訊,請參閱 MySQL 文件中的 InnoDB Memcached 外掛程式的安全性考量
您可採取以下動作幫助增加 memcached
界面的安全:
在將
MEMCACHED
選項新增至選項群組時,指定非預設 (11211) 的連接埠。確保您將
memcached
界面與 VPC 安全群組 (會限制對已知信任用戶端地址或 EC2 執行個體的存取) 相關聯。如需管理安全群組的詳細資訊,請參閱 使用安全群組控制存取。
MySQL memcached 連線資訊
應用程式必須同時指定 Amazon RDS 執行個體的 DNS 名稱與 memcached
連接埠號碼,才能存取 memcached
界面。例如,如果執行個體的 DNS 名稱是 my-cache-instance.cg034hpkmmjt.region.rds.amazonaws.com
,且 memcached 界面使用 11212 連接埠,則在 PHP 中指定的連線資訊就是:
<?php $cache = new Memcache; $cache->connect('my-cache-instance.cg034hpkmmjt.region.rds.amazonaws.com',11212); ?>
尋找 MySQL 資料庫執行個體的 DNS 名稱及 Memcached 連接埠
登入 AWS Management Console 並開啟 Amazon RDS 主控台,網址為 https://console.aws.amazon.com/rds/
。 在的右上角 AWS Management Console,選取包含資料庫執行個體的區域。
在導覽窗格中,選擇 Databases (資料庫)。
選擇 MySQL 資料庫執行個體名稱以顯示其詳細資訊。
請注意 Connect (連線) 區段中 Endpoint (端點) 欄位的值。DNS 名稱與端點名稱相同。此外,請注意 Connect (連線) 區段中的連接埠不是用於存取
memcached
界面。在 Details (詳細資訊) 區段中,注意 Option Group (選項群組) 欄位中列出的名稱。
在導覽窗格中,選擇 Option groups (選項群組)。
選擇 MySQL 資料庫執行個體使用的選項群組名稱,以顯示選項群組的詳細資訊。在 Options (選項) 區段中,請注意 MEMCACHED 選項的 Port (連接埠) 設定值。
MySQL memcached 選項設定
Amazon RDS 會公開 MySQL memcached
參數,並將其做為 Amazon RDS MEMCACHED
選項中的選項設定。
MySQL memcached 參數
DAEMON_MEMCACHED_R_BATCH_SIZE
– 整數,指定要執行多少個memcached
讀取操作 (get) 之後才 COMMIT (遞交) 開始新交易。允許的值為 1 到 4294967295;預設值是 1。此選項要在執行個體重新啟動後才會生效。DAEMON_MEMCACHED_W_BATCH_SIZE
– 整數,指定要執行多少個memcached
寫入操作 (例如 add、set 或 incr) 之後才 COMMIT (遞交) 開始新交易。允許的值為 1 到 4294967295;預設值是 1。此選項要在執行個體重新啟動後才會生效。INNODB_API_BK_COMMIT_INTERVAL
– 整數,指定自動遞交使用 InnoDBmemcached
界面的閒置連線的遞交頻率。允許的值為 1 到 1073741824;預設值是 5。此選項會立即生效,不需要重新啟動執行個體。INNODB_API_DISABLE_ROWLOCK
– 布林值,用於停用 (1 (true)) 或啟用 (0 (false)) 使用 InnoDBmemcached
界面時的資料列鎖定。預設值為 0 (false)。此選項要在執行個體重新啟動後才會生效。INNODB_API_ENABLE_MDL
– 布林值,設為 0 (false) 可鎖定 InnoDBmemcached
外掛程式所使用的資料表,使您無法透過 SQL 界面刪除資料表或以 DDL 更改資料表。預設值為 0 (false)。此選項要在執行個體重新啟動後才會生效。INNODB_API_TRX_LEVEL
– 整數,指定memcached
界面處理的查詢的交易隔離層級。允許的值為 0 到 3。預設為 0。此選項要在執行個體重新啟動後才會生效。
Amazon RDS 會設定這些 MySQL memcached
參數,並且無法修改以下項目:DAEMON_MEMCACHED_LIB_NAME
、DAEMON_MEMCACHED_LIB_PATH
與 INNODB_API_ENABLE_BINLOG
。MySQL 管理員使用 daemon_memcached_options
所設定的參數,在 Amazon RDS 中皆為個別的 MEMCACHED
選項設定。
MySQL daemon_memcached_options 參數
BINDING_PROTOCOL
– 字串,指定要使用的繫結通訊協定。允許的值為auto
、ascii
或binary
。預設值是auto
,表示伺服器會自動與用戶端交涉通訊協定。此選項要在執行個體重新啟動後才會生效。BACKLOG_QUEUE_LIMIT
– 整數,指定可以有幾個等待 處理的網路連線。memcached
增加此限制可能會減少無法連線到memcached
執行個體的用戶端收到的錯誤,但不會提高伺服器的效能。允許的值為 1 到 2048;預設值是 1024。此選項要在執行個體重新啟動後才會生效。CAS_DISABLED
– 布林值,可啟用 (1 (true)) 或停用 (0 (false)) 比較與交換 (CAS),CAS 可將每個項目的大小減少 8 個位元組。預設值為 0 (false)。此選項要在執行個體重新啟動後才會生效。CHUNK_SIZE
– 整數,指定可為最小項目的金鑰、值、標記配置的區塊大小下限 (位元組)。允許的值為 1 到 48。預設值為 48,使用較小的值可大幅增進記憶體效能。此選項要在執行個體重新啟動後才會生效。CHUNK_SIZE_GROWTH_FACTOR
– 浮動數值,控制新區塊的大小。新區塊的大小是先前區塊大小乘以CHUNK_SIZE_GROWTH_FACTOR
。允許的值為 1 到 2;預設值是 1.25。此選項要在執行個體重新啟動後才會生效。ERROR_ON_MEMORY_EXHAUSTED
– 布林值,設為 1 (true) 即指定在已經沒有記憶體可儲存項目時,memcached
要傳回錯誤而不是移出項目。如果設為 0 (false),memcached
會在沒有記憶體時移出項目。預設值為 0 (false)。此選項要在執行個體重新啟動後才會生效。MAX_SIMULTANEOUS_CONNECTIONS
– 整數,指定並行連線的數量上限。設為小於 10 的值可阻止 MySQL 啟動。允許的值為 10 到 1024;預設值是 1024。此選項要在執行個體重新啟動後才會生效。VERBOSITY
– 字串,指定memcached
服務在 MySQL 錯誤日誌中記錄的資訊層級。預設值為 v。此選項要在執行個體重新啟動後才會生效。允許的值為:v
– 在執行主要事件迴圈時,記錄錯誤並發出警告。vv
– 除了 v 記錄的資訊之外,也記錄每個用戶端命令和回應。vvv
– 除了 w 記錄的資訊之外,也記錄內部狀態轉換。
Amazon RDS 會自行設定以下不可修改的 MySQL DAEMON_MEMCACHED_OPTIONS
參數:DAEMON_PROCESS
、LARGE_MEMORY_PAGES
、MAXIMUM_CORE_FILE_LIMIT
、MAX_ITEM_SIZE
、LOCK_DOWN_PAGE_MEMORY
、MASK
、IDFILE
、REQUESTS_PER_EVENT
、SOCKET
與 USER
。