Debian 12、11、10 に Memcached をインストールする方法

Brad Fitzpatrick は、2003 年に LiveJournal Web サイト向けに、データベースの負荷を軽減して動的 Web アプリケーションのパフォーマンスを向上させる強力なオープンソース キャッシュ システムとして Memcached を開発しました。それ以来、Memcached は多くの高トラフィック Web サイトやアプリケーションにとって不可欠なものとなっています。Debian 12 Bookworm、Debian 11 Bullseye、または Debian 10 Buster に Memcached をインストールする前に、以下で Memcached に関する重要なポイントをいくつか確認しましょう。

主な機能と利点:

  • スケーラビリティ: Memcached は、1 秒あたり数百万の操作を処理できるため、大規模な Web アプリケーションやサービスに最適です。
  • 分散キャッシュ: 分散キャッシュ アーキテクチャにより、Memcached は複数のサーバーにわたる水平スケーリングを可能にし、全体的なキャッシュ容量を拡張します。
  • インメモリストレージ: Memcached はメモリ内のキー値ストアとして、キャッシュされたデータへの高速アクセスを保証し、ディスクベースのストレージ システムのレイテンシを大幅に削減します。
  • シンプルなAPI: Memcached は、PHP、Python、Ruby などのさまざまなプログラミング言語をサポートする簡単な API を提供します。
  • キャッシュの有効期限: このシステムにより、開発者はキャッシュされたデータの有効期限を設定できるようになり、古くなったデータをキャッシュから自動的に削除できるようになります。
  • 軽量: Memcached は、CPU とメモリのオーバーヘッドを最小限に抑え、システム リソースを大幅に消費することなく、さまざまなサーバー構成で効率的に実行されます。
  • 柔軟なデータ タイプ: Memcached は、文字列、整数、複雑なオブジェクトなど、さまざまなデータ型に対応しているため、多様なユースケースに柔軟に対応できます。

次のガイドでは、最も安定したバージョン用のデフォルトの Debian リポジトリを使用する方法と、最新バージョンで作業することを好むユーザー向けに最新のバイナリをダウンロードしてコンパイルする方法の 2 つの方法を使用して、Debian に Memcached をインストールするプロセスについて説明します。

方法 1: デフォルトの APT リポジトリ経由で Memcached をインストールする

このセクションでは、APT パッケージ マネージャーを使用して、Debian Linux システムに Memcached をインストールします。これには、システム パッケージの更新と、いくつかの便利なツールを使用した Memcached のインストールが含まれます。

Memcached をインストールする前に Debian システムを更新する

最新のパッケージ バージョンとセキュリティ更新を確実に適用するには、まず Debian システムを更新します。次のコマンドを実行します。

sudo apt update && sudo apt upgrade

このコマンドはパッケージ リストを更新し、古くなったパッケージを最新バージョンにアップグレードします。

MemcachedとLibmemcached-toolsをインストールする

Debian ではデフォルトのリポジトリに Memcached が含まれているため、インストールが簡単です。Memcached をインストールするには、次のコマンドを実行します。

sudo apt install memcached libmemcached-tools

このコマンドはMemcachedと libmemcached-tools パッケージ。 libmemcached-tools パッケージは、Memcached とのより多くの対話および管理機能を可能にする追加のコマンドライン ユーティリティを提供します。

方法2: ソース経由でMemcachedをインストールする

このセクションでは、ソース コードからコンパイルして Debian システムに Memcached をインストールする方法について説明します。最新バージョンの Memcached を使用したい場合や、特定の要件に合わせてビルドをカスタマイズしたい場合は、ソースからのインストールが便利です。

Memcachedソースをダウンロードする

まず、Memcachedにアクセスしてください 最新リリースページ 現在のバージョンを確認するには、次の wget 直接ダウンロードするコマンド:

wget https://memcached.org/latest

Memcachedソースアーカイブの抽出

次に、次のコマンドを実行して、ダウンロードしたソース コードを抽出します。

tar -xvf latest

続行する前に、抽出したディレクトリに移動します。ディレクトリ名はダウンロードしたバージョンによって異なります。

cd memcached-{place version number here}

交換する {version_number} 実際のバージョン番号を使用します。

Memcached をコンパイルするために必要な初期パッケージをインストールする

Memcached をコンパイルする前に、必要なビルド依存関係をインストールする必要があります。インストールするには、次のコマンドを実行します。

sudo apt install build-essential libevent-dev gcc make libc6-dev

インストールされたパッケージは次の目的で使用されます。

  • gcc: Memcached ソース ファイル用の有名な C コンパイラ。
  • make: コンパイルを指示します。
  • libc6-dev: GNU C ライブラリとヘッダー ファイルへの参照を提供します。
  • libevent-dev: 非同期イベント通知用の開発ファイルが含まれています。

インストールを構成する

使用 --prefix= Memcached バイナリとライブラリがインストールされるディレクトリを設定するパラメータ:

./configure --prefix=/usr/local

Memcached ソースコードをコンパイルする

Memcachedのソースコードを make 指示:

make

現在のバージョンを確認して Memcached をテストします。

./memcached --version

「make install」コマンドでMemcachedをインストールする

コンパイル プロセスが完了したら、次のコマンドを実行して Memcached をインストールします。

sudo make install

このコマンドは、システムに Memcached をインストールし、コマンド ラインからアクセスできるようにします。システムが新しいライブラリを認識するようにするには、次のコマンドを実行します。

sudo ldconfig

Memcachedのインストールを確認する

Memcached が正常にインストールされたことを確認するには、次のコマンドを実行します。

memcached -V

このコマンドは、インストールされている Memcached のバージョンを表示し、ソース コードからインストールが成功したことを確認します。

Memcached用のSystemdサービスを作成する

Memcachedをソースからインストールすると、systemdサービスファイルが自動的に作成されません。Memcachedをサービスとして実行し、 systemctl、Memcached 用のカスタム systemd サービス ファイルを作成する必要があります。サービスを作成して有効にするには、次の手順に従います。

という新しいファイルを作成します memcached.service の中に /etc/systemd/system 任意のテキストエディタを使用してディレクトリを開きます。この例では nano:

sudo nano /etc/systemd/system/memcached.service

以下の内容を memcached.service ファイル:

[Unit]
Description=Memcached Service
After=network.target

[Service]
Type=simple
User=memcache
Group=memcache
ExecStart=/usr/local/bin/memcached /etc/memcached.conf
Restart=always

[Install]
WantedBy=multi-user.target

ファイルを保存してテキスト エディターを終了します。

作成する memcache サービスを安全に実行するためのユーザーとグループ:

sudo useradd -r -s /sbin/nologin -U -M memcache

新しいサービス ファイルを認識するために、systemd 構成を再ロードします。

sudo systemctl daemon-reload

最後に、サービスを開始します。

sudo systemctl enable memcached --now

Memcached サービスのステータスの管理

このセクションでは、Debian システムでの Memcached サービスの管理について説明します。これには、サービスの状態の確認、サービスの開始と停止、システム起動時に実行するための設定が含まれます。

Memcached サービスのステータスを確認する

デフォルトでは、Memcachedはインストール後に実行されるはずです。その状態を確認するには、 systemctl 次のようにコマンドを実行します。

systemctl status memcached

このコマンドは、Memcached サービスの現在のステータスを表示します。

Memcachedサービスを開始する

Memcached が実行されていない場合は、次のコマンドでサービスを開始できます。

sudo systemctl start memcached

システム起動時にMemcachedを有効にする

システムの起動時に Memcached サービスが自動的に開始されるようにするには、次のコマンドを使用します。

sudo systemctl enable memcached

Memcached サービスを停止する

Memcached サービスを停止する必要がある場合は、次のコマンドを使用します。

sudo systemctl stop memcached

システム起動時にMemcachedを無効にする

システムの起動時に Memcached サービスが自動的に開始されないようにするには、次のコマンドを実行します。

sudo systemctl disable memcached

Memcachedサービスを再起動する

たとえば、構成を変更した後で Memcached サービスを再起動する必要がある場合は、次のコマンドを使用します。

sudo systemctl restart memcached

Memcached がデフォルトポートでリッスンしていることを確認する

最後に、Memcachedがデフォルトのポートを使用してローカルホストでアクティブにリッスンしていることを確認します。 11211これを確認するには、次のコマンドを実行します。

ps -ef | grep memcached

出力には、Memcached が実行中で、指定されたポートでリッスンしていることを示す次のような行が表示されます。

memcache    5934       1  0 09:36 ?        00:00:00 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1 -P /var/run/memcached/memcached.pid
root        6591    3653  0 09:55 pts/0    00:00:00 grep memcached

Memcached の設定のヒント

このセクションでは、Memcachedの設定を、 memcached.conf ファイル。リスニング IP アドレスの調整、UDP の無効化、デフォルトのメモリ割り当ての変更について説明します。

Memcached設定ファイルを開く

Memcachedの設定ファイルを開きます。 /etc/memcached.conf テキストエディタを使用して、例えば nano:

sudo nano /etc/memcached.conf

Memcached をソースからコンパイルしたユーザーは、これを作成する必要があります。最初に開いたときに、ファイルは APT メソッドと比較して空白になります。これをコピーして調整を開始できます。

# Example memcached.conf file

# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 64

# Default port is 11211
-p 11211

# Run the daemon as a background process
-d

# Use syslog logging
-s

# Enable verbose logging
-vv

# Set the maximum number of simultaneous connections
-c 1024

リスニングIPアドレスを調整する

デフォルトでは、MemcachedはIPアドレス127.0.0.1をリッスンします。設定ファイルの-lパラメータをチェックして、正しいIPアドレスに設定されていることを確認してください。IPアドレスを変更する必要がある場合は、 127.0.0.1 新しい IP アドレス:

-l 127.0.0.1

UDPを無効にする(オプション)

UDP サポートが必要ない場合は、無効にすることをお勧めします。UDP を無効にするには、構成ファイルに次の行を追加します。

-U 0

メモリ割り当てを構成する

Memcached のデフォルトのメモリ割り当ては 64 MB ですが、大規模な Web サイトには不十分な場合があります。Memcached を最大限に活用するには、メモリ割り当てをより高い値に調整することを検討してください。

メモリ割り当てを設定するには、 -m パラメータを設定ファイルで設定し、デフォルト値を希望する量(MB単位)に置き換えます。たとえば、2GBのメモリを割り当てるには、値を次のように設定します。 2000:

-m 2000

サーバーの使用可能なメモリと要件に基づいてこの設定を調整します。

Memcachedを保存​​して再起動する

必要な変更を行った後、を押して設定ファイルを保存します。 CTRL+O、 に続く Y、 その後 CTRL+X テキスト エディターを終了します。最後に、変更を有効にするために Memcached サービスを再起動します。

sudo systemctl restart memcached

追加の Memcached 設定例

これまでに説明した設定オプションに加えて、要件に応じて Memcached を微調整するために調整できる設定がいくつかあります。以下に、簡単なデモンストレーションとともにいくつかの例を示します。

ユーザーとグループを指定する

Memcachedは、 -u パラメータ。例えば、Memcachedを memcache ユーザーは、構成ファイルに次の行を追加します。

-u memcache

大容量メモリページを有効にする

この機能を有効にすると、システムが大容量メモリページをサポートしている場合、パフォーマンスが向上する可能性があります。大容量メモリページを有効にするには、 -L パラメータのコメントを解除します( # 行の先頭に:

-L

最大アイテムサイズを設定する

Memcachedのデフォルトの最大アイテムサイズは1MBです。最大アイテムサイズを増やすには、 -I パラメータの後に希望するサイズを指定します。たとえば、最大アイテム サイズを 5MB に設定するには、構成ファイルに次の行を追加します。

-I 5m

スレッドの最大数を設定する

Memcached はデフォルトで 4 つのスレッドを使用します。パラメータを使用して、サーバーの機能とワークロードに応じてスレッドの数を増減できます。たとえば、スレッドの数を 8 に設定するには、次の行を追加します。

-t 8

アイドルタイムアウトを設定する

Memcachedは一定時間アイドル状態が続くと自動的にアイドル接続を閉じます。アイドルタイムアウトを変更するには、 -o パラメータの後に idle_timeout そして希望する秒数を入力します。たとえば、アイドル タイムアウトを 600 秒 (10 分) に設定するには、次の行を追加します。

-o idle_timeout=600

SASL認証を有効にする

Memcachedサーバーにアクセスするために認証が必要な場合は、SASL(Simple Authentication and Security Layer)サポートを有効にすることができます。SASLを有効にするには、 -S パラメータのコメントを解除します( # 行の先頭に:

-S

設定ファイルに変更を加えた後は、必ず Memcached サービスを再起動するようにしてください。

sudo systemctl restart memcached

Memcached 用の UFW ファイアウォールをインストールする

Memcached インスタンスのセキュリティを確保するには、ファイアウォール ルールを適切に構成することが重要です。このセクションでは、Memcached サーバーを保護するために、Uncomplicated Firewall (UFW) をインストールして構成する方法について説明します。

UFWがインストールされているかどうかを確認する

まず、Debian システムに UFW がすでにインストールされているかどうかを確認しましょう。

sudo ufw --version

UFW がインストールされている場合は、出力にバージョン番号が表示されます。インストールされていない場合は、インストールする必要があります。

Memcached 用に Debian に UFW をインストールする

Debian システムに UFW をインストールするには、次のコマンドを実行します。

sudo apt install ufw

インストールが完了したら、次のコマンドで UFW を有効にします。

sudo ufw enable

MemcachedのUFWルールを設定する

UFW がインストールされ、有効になったので、TCP ポート 11211 に許可ルールを作成する必要があります。作成するルールは、単一の IP ネットワーク接続を使用するか、クラスター ネットワーク内の複数のインスタンスで作業するかなど、インストールと要件によって異なります。

単一 IP ネットワーク接続の例

特定の IP アドレスからの Memcached へのアクセスを許可します。

sudo ufw allow proto tcp from <ip_address> to any port 11211

複数のインスタンスを持つクラスタ IP ネットワーク接続の例

IP アドレスのサブネットから Memcached へのアクセスを許可します。

sudo ufw allow proto tcp from <ip_address>/24 to any port 11211

2 番目の UFW ルールはサブネット ルールであることに注意してください。アクセスを許可する前に、内部ネットワークが安全で信頼できることを確認してください。

ステップ4: UFWルールを確認する

適切なルールを設定したら、現在の UFW ルールを一覧表示して、ルールが正しく構成されていることを確認します。

sudo ufw status

出力には設定されたルールが表示され、Memcached インスタンスが UFW で保護されていることが保証されます。

Memcachedライブラリをインストールする

Memcached はさまざまなプログラミング言語用の拡張機能を提供していますが、最も一般的に使用されているのは PHP です。このセクションでは、PHP、Python、Perl 用の Memcached ライブラリをインストールし、Apache および Nginx Web サーバー用に Memcached を構成する方法について説明します。

Memcached用のPHPライブラリをインストールする

Memcached 用の PHP ライブラリをインストールするには、次のコマンドを実行します。

sudo apt install php-memcached libapache2-mod-php php php-cli

Apache HTTP Server 用に Memcached を構成する

Apache HTTP Server を使用している場合は、次のコマンドを実行して Memcached モジュールを有効にします。

sudo phpenmod memcached && sudo systemctl restart apache2

Nginx HTTP サーバー用に Memcached を構成する

Nginx ユーザー向けに PHP ライブラリがインストールされると、PHP 構成ブロック内で Memcached サポートがデフォルトで有効になります。

以下は、単純な nginx サーバー ブロックの例です。

server {
    listen 80;
    server_name example.com;

    root /var/www/example.com;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

Memcached 用の Python ライブラリをインストールする

Memcached の Python サポートをインストールするには、次のコマンドを実行します。

sudo apt install python3-pymemcache

Memcached 用の Perl ライブラリをインストールする

Memcached の Perl サポートをインストールするには、次のコマンドを実行します。

sudo apt install libcache-memcached-libmemcached-perl

コマンドラインからMemcachedにアクセスする

Memcached は、さまざまなソフトウェアや Web ユーザー インターフェイスを通じて監視および管理できます。ただし、コマンド ラインを使用して Memcached と直接やり取りすることが、パフォーマンスの確認やコンテンツの管理を行う最も簡単な方法であることがよくあります。

まず、telnet を使用して Memcached サービスに接続します。

telnet localhost 11211

出力例:

127.0.0.1 を試行しています... ローカルホストに接続しました。エスケープ文字は '^]' です。

次に、次のコマンドを使用して、Memcached サービスの概要を取得できます。

stats

このコマンドは、稼働時間、キャッシュ内のアイテム数、クライアント接続数など、Memcached インスタンスに関するさまざまな統計情報を返します。

Memcached スラブ (メモリ パーティション) を調べることで、分析を絞り込むことができます。たとえば、接続されたインスタンス内のスラブを次のように一覧表示できます。

stats slabs

次のコマンドを使用して、各スラブ内に格納されているアイテムの数を含むスラブのリストを取得します。

stats items

Memcachedに保存されたデータにアクセスして操作するには、 cachedump キーを一覧表示するには、次のコマンドを実行します。特定のスラブ内のすべての項目を一覧表示するには、次のコマンドを実行します。

stats cachedump [slab ID] [number of items, 0 for all items]

例えば:

stats cachedump 1 0

出力例:

ITEM テストキー [9 b; 1296857316 s] 終了

この例では、スラブ1にはキー「testkey」を持つ1つのアイテムが含まれています。このアイテムの値を取得するには、 get 指示:

get testkey

出力例:

VALUE testkey 0 9 テストデータ END

最後に、「testkey」などのキャッシュされた項目を削除するには、次のコマンドを使用します。

delete testkey

出力例:

削除済み

結論

結論として、Debian Linux に Memcached をインストールして構成すると、高速で効率的、かつ使いやすいキャッシュ システムが提供され、Web アプリケーションのパフォーマンスが大幅に向上します。このガイドで説明されている手順に従うと、Memcached を正常にセットアップし、好みの Web サーバーで構成し、UFW を使用して保護することができます。適切な構成と管理により、Memcached はアプリケーションの最適化とユーザー エクスペリエンスの向上に不可欠なものになります。

Joshua James

コメントを残す