Memcachedは、データとオブジェクトをRAMにキャッシュすることにより、動的なデータベース駆動型Webサイトを高速化するために使用されます。これにより、外部データソースを読み取る必要がある回数が減り、オーバーヘッドが削減され、応答時間が短縮されます。メモリキャッシュソフトウェアは、誰でも使用できる無料のオープンソースプロジェクトです。
ガイドの最後で、 Debian11BullseyeにMemcachedをインストールして設定する方法を理解できます。 オペレーティングシステム。
- 推奨OS: Debian11ブルズアイ
- ユーザーアカウント: sudo特権を持つユーザーアカウント またはrootアクセス(suコマンド) 。
オペレーティングシステムの更新
Debian 11を更新します 既存のすべてのパッケージが最新であることを確認するためのオペレーティングシステム:
sudo apt update && sudo apt upgrade
ルートまたはSudoアクセス
デフォルトでは、他のディストリビューションと比較して、Debianを使用して起動時にアカウントを作成すると、sudoersステータスを自動的に受け取りません。 ルートパスワードにアクセスできる必要があります suコマンドを使用するには または、DebianのSudoersにユーザーを追加する方法に関するチュートリアルをご覧ください。
Memcachedをインストール
デフォルトでは、Debian11のリポジトリにはMemcachedがあります。 Memcachedをインストールするには、次のコマンドを入力します:
sudo apt install memcached libmemcached-tools
出力例:
Y、と入力します 次に、ENTERキーを押します インストールを続行します。
2番目のインストールオプションである「libmemcached-tools」に注意してください。 」パッケージは、Memcachedに追加のインタラクションと実行機能をもたらすための追加のコマンドを提供します。
次に、 apt-cachepolicyコマンドを使用して確認することにより、Memcachedが正しくインストールされたことを確認します :
sudo apt-cache policy memcached
出力例:
Memcachedはデフォルトでアクティブ化されている必要があります。これを確認するには、systemctlstatusコマンドを使用します 次のように:
systemctl status memcached
出力例:
サービスがアクティブ化されていない場合は、次のコマンドを使用してMemcachedを起動します。
sudo systemctl start memcached
Memcachedサービスを管理するためのその他の便利なコマンドは次のとおりです。
システムの起動時にMemcachedサービスを有効にするには:
sudo systemctl enable Memcached
Memcachedサービスを停止するには:
sudo systemctl stop memcached
システムの起動時にMemcachedサービスを無効にするには:
sudo systemctl disable memcached
Memcachedサービスを再起動するには:
sudo systemctl restart memcached
次に、Memcachedがデフォルトのポート11211でローカルホストをアクティブにリッスンしていることを確認します 。このタイプを確認するには、次のようにします。
ps -ef | grep 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は127.0.0.1をリッスンしている必要があります 。次に、「 /etc/memcached.conf」にある構成ファイルでデフォルト設定を開きます 「。
sudo nano /etc/memcached.conf
次に、下にスクロールして次の行を見つけ、「-l」を確認します。 存在するパラメータ。ローカルネットワークに内部IPがある場合、または外部から外部IPがある場合を除いて、デフォルトのままにします。デフォルトのIPアドレスを127.0.0.1から新しいIPアドレスに変更する必要があります。
-l 127.0.0.1
UDPを無効にすることをお勧めします。この機能を有効にする必要がない限り、次の行を追加して無効にします。
-U 0
終了する前に、デフォルトの64 MBのメモリ割り当てを変更することをお勧めします。これは、大規模なWebサイトではそれほど多くなく、Memcachedを使用してもあまりメリットがないためです。
これをサーバーにとって適切なものに設定する必要があります。使用頻度の低いRAMが3〜6 GBある場合は、1GBまたは2GBにします。これは、サーバーに最適な設定を決定する必要があります。ガイドのサーバーは8GBで実行されているため、例としてのみキャッシュを2GBに調整しました。
-m 2000
次に、ファイルを保存します CTRL + O 「Y」を押します 次にCTRL+ X Memcachedインスタンスを終了して再起動します。
sudo systemctl restart memcached
オプション–MemcachedUFWルールを許可する
UFWをインストールしている場合は、TCPポート11211でUFW許可ルールを作成する必要があります 。単一またはクラスターネットワークを使用する場合のインストールと要件に応じて、以下にいくつかの例を示します。
単一のIPネットワーク接続の例:
sudo ufw allow proto tcp from <ip address> to any port 11211
多くのインスタンスを使用したクラスタIPネットワーク接続の例:
sudo ufw allow proto tcp from <ip address>/24 to any port 11211
2番目のUFWルールはサブネットルールであることに注意してください。許可する前に、内部ネットワークが安全で信頼できることを確認してください。
MemcachedPHPライブラリのインストール
Memcachedにはプログラミング言語用のさまざまな拡張機能が付属していますが、主にPHPで使用されます。 PHPライブラリをインストールするには、次のように入力します。
sudo apt install php-memcached apache2 libapache2-mod-php php php-cli php-memcached php-memcached
ApacheHTTPサーバー
Apacheユーザーは、次のコードを実行して、システムでMemcachedを有効にすることができます。
phpenmod memcached && sudo service apache2 restart
NginxHTTPサーバー
Memcached for Nginxは、インストールされるとデフォルトでPHPブロックで有効になります。
追加のライブラリをインストールする
次のコマンドを実行して、PythonまたはPerlサポートをインストールできます。
Pythonサポート:
sudo apt install python3-pymemcache
Perlサポート:
sudo apt install libcache-memcached-libmemcached-perl
コマンドラインからMemcachedにアクセスする
Memcachedの統計情報は、連携して動作する多くの追加ソフトウェアとWEBUIによって収集できます。ただし、確認するためのより良い方法は、コマンドラインを使用してMemcachedと直接対話することです。
まず、 TELNET あなたのサービスに:
telnet localhost 11211
出力例:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
次に、次のコマンドを使用して、Memcachedサービスの概要を取得できます。
stats
出力例:
STAT pid 5934
STAT uptime 1275
STAT time 1631930242
STAT version 1.6.9
STAT libevent 2.1.12-stable
STAT pointer_size 64
STAT rusage_user 0.113635
STAT rusage_system 0.000000
STAT max_connections 1024
STAT curr_connections 1
STAT total_connections 2
STAT rejected_connections 0
STAT connection_structures 2
STAT response_obj_oom 0
STAT response_obj_count 1
STAT response_obj_bytes 16384
STAT read_buf_count 2
STAT read_buf_bytes 32768
STAT read_buf_bytes_free 0
STAT read_buf_oom 0
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT cmd_touch 0
STAT cmd_meta 0
STAT get_hits 0
STAT get_misses 0
STAT get_expired 0
STAT get_flushed 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 7
STAT bytes_written 0
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT slab_reassign_rescues 0
STAT slab_reassign_chunk_rescues 0
STAT slab_reassign_evictions_nomem 0
STAT slab_reassign_inline_reclaim 0
STAT slab_reassign_busy_items 0
STAT slab_reassign_busy_deletes 0
STAT slab_reassign_running 0
STAT slabs_moved 0
STAT lru_crawler_running 0
STAT lru_crawler_starts 6
STAT lru_maintainer_juggles 1325
STAT malloc_fails 0
STAT log_worker_dropped 0
STAT log_worker_written 0
STAT log_watcher_skipped 0
STAT log_watcher_sent 0
STAT unexpected_napi_ids 0
STAT round_robin_fallback 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT slab_global_page_pool 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evicted_active 0
STAT evictions 0
STAT reclaimed 0
STAT crawler_reclaimed 0
STAT crawler_items_checked 0
STAT lrutail_reflocked 0
STAT moves_to_cold 0
STAT moves_to_warm 0
STAT moves_within_lru 0
STAT direct_reclaims 0
STAT lru_bumps_dropped 0
END
上記のように、これは、稼働時間、キャッシュ内のアイテムの数、インスタンスへのクライアント接続の数など、確認したい重要な事項を示しています。
メモリのさまざまなMemcachedスラブ(パーティション)を調べて結果を返すことで、検索を絞り込むことができます。
以下の例:
接続されているインスタンスのスラブを一覧表示します:
stats slabs
各スラブ内に保存されているアイテムの数を含むスラブのリスト :
stats items
次に、cachedumpコマンドを使用してデータにアクセスして削除できます キーを一覧表示します。
まず、cachedumpコマンドを実行します :
stats cachedump [slab ID] [number of items, 0 for all items]
実際の例:
stats cachedump 1 0
出力例:
ITEM testkey [9 b; 1296857316 s]
END
上記のように、SLAB1にはキー「testkey」を持つアイテムが1つあります。 実際の値を取得するには、「キーを取得」を使用できます。 次のようにコマンドを実行します:
get testkey
出力例:
VALUE testkey 0 9
test data
END
最後に、キャッシュされたアイテム(この場合は「テストキー」)を削除します 次のコマンドを使用します:
delete testkey
出力例:
DELETED