Memcached環(huán)境標(biāo)準(zhǔn)軟件基于Bitnami Memcached 構(gòu)建。當(dāng)前版本為1.6.24
你可以通過輕云UC部署工具直接安裝部署,也可以手動(dòng)按如下文檔操作,該項(xiàng)目已經(jīng)全面開源,可以從如下環(huán)境獲取
配置文件地址: https://gitee.com/qingplus/qingcloud-platform
什么是 Memcached?
Memcached是一個(gè)高性能的分布式內(nèi)存對(duì)象緩存系統(tǒng),它通過內(nèi)存來緩存數(shù)據(jù)庫(kù)調(diào)用、API調(diào)用或頁(yè)面渲染的結(jié)果,以減少數(shù)據(jù)庫(kù)負(fù)載,提高系統(tǒng)響應(yīng)速度。它通常用于緩存經(jīng)常請(qǐng)求的數(shù)據(jù),使得這些數(shù)據(jù)能夠迅速地從緩存中獲取,而不是從原始數(shù)據(jù)源(如數(shù)據(jù)庫(kù))中檢索,從而提高了動(dòng)態(tài)Web應(yīng)用程序的速度和性能。
快速運(yùn)行
docker run --name memcached bitnami/memcached:latest
連接到其他容器
使用Docker 容器網(wǎng)絡(luò),應(yīng)用程序容器可以輕松訪問容器內(nèi)運(yùn)行的 Memcached 服務(wù)器。 連接到同一網(wǎng)絡(luò)的容器可以使用容器名稱作為主機(jī)名來相互通信。
使用命令行
第 1 步:創(chuàng)建網(wǎng)絡(luò)
docker network create app-tier --driver bridge
步驟 2:?jiǎn)?dòng) Memcached 服務(wù)器實(shí)例
使用命令--network app-tier的參數(shù)docker run將 Memcached 容器連接到網(wǎng)絡(luò)app-tier。
docker run -d --name memcached-server \
--network app-tier \
bitnami/memcached:latest
第 3 步:?jiǎn)?dòng)應(yīng)用程序容器
docker run -d --name myapp \
--network app-tier \
YOUR_APPLICATION_IMAGE
重要的:
請(qǐng)使用您的應(yīng)用程序圖片更新上述代碼段中的YOUR_APPLICATION_IMAGE_占位符
在您的應(yīng)用程序容器中,使用主機(jī)名memcached-server連接到 Memcached 服務(wù)器
使用 Docker Compose 文件
如果未指定,Docker Compose 會(huì)自動(dòng)設(shè)置一個(gè)新網(wǎng)絡(luò)并將所有已部署的服務(wù)附加到該網(wǎng)絡(luò)。但是,我們將顯式定義一個(gè)bridge名為 的新網(wǎng)絡(luò)app-tier。在此示例中,我們假設(shè)您希望從您自己的自定義應(yīng)用程序映像連接到 Memcached 服務(wù)器,該映像在以下代碼段中通過服務(wù)名稱進(jìn)行標(biāo)識(shí)myapp。
version: '2'
networks:
app-tier:
driver: bridge
services:
memcached:
image: 'bitnami/memcached:latest'
networks:
- app-tier
myapp:
image: 'YOUR_APPLICATION_IMAGE'
networks:
- app-tier
重要的:
請(qǐng)使用您的應(yīng)用程序圖片更新上述代碼段中的YOUR_APPLICATION_IMAGE_占位符
在您的應(yīng)用程序容器中,使用主機(jī)名memcached連接到 Memcached 服務(wù)器.
使用以下命令啟動(dòng)容器:
docker-compose up -d
配置
環(huán)境變量
可定制的環(huán)境變量
| Name | Description | Default Value |
|---|---|---|
MEMCACHED_PORT_NUMBER |
Memcached 使用的端口號(hào) | 11211 |
MEMCACHED_USERNAME |
Memcached admin 用戶名。 | root |
MEMCACHED_MAX_TIMEOUT |
Memcached 啟動(dòng)或停止的最大超時(shí)(以秒為單位) | 5 |
只讀環(huán)境變量
| Name | Description | Value |
|---|---|---|
MEMCACHED_BASE_DIR |
Memcached 安裝目錄 | ${BITNAMI_ROOT_DIR}/memcached |
MEMCACHED_CONF_DIR |
Memcached 配置目錄。 | ${MEMCACHED_BASE_DIR}/conf |
MEMCACHED_DEFAULT_CONF_DIR |
Memcached 配置目錄 | ${MEMCACHED_BASE_DIR}/conf.default |
MEMCACHED_BIN_DIR |
二進(jìn)制可執(zhí)行文件的 Memcached 目錄。 | ${MEMCACHED_BASE_DIR}/bin |
MEMCACHED_TMP_DIR |
Memcached 臨時(shí)文件目錄。 | ${MEMCACHED_BASE_DIR}/tmp |
MEMCACHED_LOGS_DIR |
Memcached 日志目錄。 | ${MEMCACHED_BASE_DIR}/logs |
MEMCACHED_LOG_FILE |
Memcached 日志文件的路徑。 | ${MEMCACHED_LOGS_DIR}/memcached.log |
MEMCACHED_PID_FILE |
Memcached PID 文件的路徑。 | ${MEMCACHED_TMP_DIR}/memcached.pid |
SASL_CONF_PATH |
Memcached SASL 配置目錄。 | ${MEMCACHED_CONF_DIR}/sasl2 |
SASL_CONF_FILE |
Memcached SASL 配置 | ${SASL_CONF_PATH}/memcached.conf |
SASL_DB_FILE |
Memcached SASL 數(shù)據(jù)庫(kù)文件。 | ${SASL_CONF_PATH}/memcachedsasldb |
MEMCACHED_DAEMON_USER |
Memcached 系統(tǒng)用戶。 | memcached |
MEMCACHED_DAEMON_GROUP |
Memcached 系統(tǒng)組。 | memcached |
指定緩存大小
默認(rèn)情況下,Memcached 容器不會(huì)指定任何緩存大小,并將以 Memcached 默認(rèn)值 (64MB) 啟動(dòng)。您可以使用環(huán)境變量指定不同的值MEMCACHED_CACHE_SIZE(以 MB 為單位)。
docker run --name memcached -e MEMCACHED_CACHE_SIZE=128 bitnami/memcached:latest
或者通過修改docker-compose.yml此存儲(chǔ)庫(kù)中存在的文件:
services:
memcached:
...
environment:
- MEMCACHED_CACHE_SIZE=128
...
指定最大并發(fā)連接數(shù)
默認(rèn)情況下,Memcached 容器不會(huì)指定任何最大并發(fā)連接數(shù),并將以 Memcached 默認(rèn)值(1024 個(gè)并發(fā)連接)啟動(dòng)。您可以使用環(huán)境變量指定不同的值MEMCACHED_MAX_CONNECTIONS。
docker run --name memcached -e MEMCACHED_MAX_CONNECTIONS=2000 bitnami/memcached:latest
或者通過修改docker-compose.yml此存儲(chǔ)庫(kù)中存在的文件:
services:
memcached:
...
environment:
- MEMCACHED_MAX_CONNECTIONS=2000
...
指定處理請(qǐng)求的線程數(shù)
默認(rèn)情況下,Memcached 容器不會(huì)指定處理請(qǐng)求的線程數(shù)量,并且將從 Memcached 默認(rèn)值(4 個(gè)線程)開始。您可以使用環(huán)境變量指定不同的值MEMCACHED_THREADS。
docker run --name memcached -e MEMCACHED_THREADS=4 bitnami/memcached:latest
或者通過修改docker-compose.yml此存儲(chǔ)庫(kù)中存在的文件:
services:
memcached:
...
environment:
- MEMCACHED_THREADS=4
...
指定最大項(xiàng)目尺寸(板尺寸)
默認(rèn)情況下,Memcached 容器不會(huì)指定任何最大項(xiàng)目大小,并將以 Memcached 默認(rèn)值(1048576 ~ 1 MB)開始。您可以使用環(huán)境變量指定不同的值MEMCACHED_MAX_ITEM_SIZE。僅接受數(shù)字值 - 使用8388608而不是8m
docker run --name memcached -e MEMCACHED_MAX_ITEM_SIZE=8388608 bitnami/memcached:latest
或者通過修改docker-compose.yml此存儲(chǔ)庫(kù)中存在的文件:
services:
memcached:
...
environment:
- MEMCACHED_MAX_ITEM_SIZE=8388608
...
創(chuàng)建 Memcached 管理員用戶
默認(rèn)情況下,Memcached 服務(wù)器上的身份驗(yàn)證處于禁用狀態(tài)。MEMCACHED_PASSWORD要啟用身份驗(yàn)證,請(qǐng)使用環(huán)境變量(或在 中指定的文件內(nèi)容中MEMCACHED_PASSWORD_FILE)指定 Memcached 管理員用戶的密碼。
要自定義 Memcached 管理員用戶的用戶名(默認(rèn)為 root) ,應(yīng)指定MEMCACHED_USERNAME變量。
docker run --name memcached \
-e MEMCACHED_USERNAME=my_user \
-e MEMCACHED_PASSWORD=my_password \
bitnami/memcached:latest
或者通過修改docker-compose.yml此存儲(chǔ)庫(kù)中存在的文件:
version: '2'
services:
memcached:
...
environment:
- MEMCACHED_USERNAME=my_user
- MEMCACHED_PASSWORD=my_password
...
MEMCACHED_USERNAME的默認(rèn)值為root。
將額外的命令行標(biāo)志傳遞給 memcached
通過將額外的命令行標(biāo)志添加為run.sh腳本的參數(shù),可以將額外的命令行標(biāo)志傳遞給 Memcached 服務(wù)命令:
docker run --name memcached bitnami/memcached:latest /opt/bitnami/scripts/memcached/run.sh -vvv
或者,修改docker-compose.yml此存儲(chǔ)庫(kù)中存在的文件:
services:
memcached:
...
command: /opt/bitnami/scripts/memcached/run.sh -vvv
...
有關(guān)完整參數(shù)列表,請(qǐng)參閱Memcached 手冊(cè)頁(yè)。
使用自定義 SASL 配置
為了加載您自己的 SASL 配置文件,您必須使它們可供容器使用。您可以執(zhí)行以下操作:
- 使用您的自定義配置安裝卷
- 通過環(huán)境變量添加自定義配置。
默認(rèn)情況下,啟用身份驗(yàn)證后,Memcached 的 SASL 配置將寫入/opt/bitnami/memcached/sasl2/memcached.conf包含以下內(nèi)容的文件:
mech_list: plain
sasldb_path: /opt/bitnami/memcached/conf/memcachedsasldb
這/opt/bitnami/memcached/conf/memcachedsasldb是包含 Memcached 用戶列表的 sasldb 文件的路徑。
記錄
Memcached Docker 映像將容器日志發(fā)送到stdout. 要查看日志:
docker logs memcached
或使用 Docker Compose:
docker-compose logs memcached