「Pythonの処理を高速にするためにキャッシュを利用したい」
「PythonからMemcachedにアクセスしたい」
このような場合には、pylibmcがオススメです。
この記事では、Python製のMemcachedクライアントpylibmcについて解説しています。
本記事の内容
- pylibmcとは?
- pylibmcのシステム要件
- pylibmcのインストール
- pylibmcの動作確認
それでは、上記に沿って解説していきます。
pylibmcとは?
pylibmcとは、Memcached用クライアントです。
Pythonライブラリとして公開されています。
主な特徴としては、高速に処理できるという点があります。
これは、pylibmcがlibmemcached(C言語で開発)のラッパーであるからです。
それであるがゆえに、pylibmcのシステム要件は少し厳しくなります。
この記事では、それを簡単に説明しています。
しかし、pylibmcがWindowsで動かないのはどうしようもありません。
その場合は、pymemcacheを利用しましょう。
pymemcacheについては、次の記事で解説しています。
以上、pylibmcについて説明しました。
次は、pylibmcのシステム要件を説明します。
pylibmcのシステム要件
現時点(2022年8月)でのpylibmcの最新バージョンは、1.6.2となります。
この最新バージョンは、2022年8月5日にリリースされています。
サポートOSに関しては、明確な記載は見当たりませんでした。
調べた限りでは、以下をサポートしているようです。
- macOS
- Linux
サポート対象となるPythonのバージョンは、以下。
- Python 3.6
- Python 3.7
- Python 3.8
- Python 3.9
- Python 3.10
上記では、Python 3.6を対象としていることが以下のPython公式開発サイクルとは異なります。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
Python 3.6は、2021年末でサポート期限が切れています。
そのため、Python 3.7以降を利用することを推奨しておきます。
あとは、以下3つのライブラリが必要となります。
- libmemcached
- zlib
- libsasl2
インストールの際は、次のコマンドを利用します。
$ sudo apt install -y libmemcached-dev $ sudo apt install -y zlib1g-dev $ sudo apt install -y libsasl2-2
ただ、Ubuntuではlibmemcached以外はデフォルトでインストール済みです。
また、Memcachedをインストール時にlibmemcachedは同時にインストールされます。
別サーバーからアクセスする場合には、別途libmemcachedのインストールは必要となります。
これらは、各自の環境に合わせてインストールしてください。
以上、pylibmcのシステム要件を説明しました。
次は、pylibmcのインストールを説明します。
pylibmcのインストール
検証は、次のバージョンのPythonで行います。
$ python -V Python 3.10.2
まずは、現状のインストール済みパッケージを確認しておきます。
$ pip list Package Version ---------- ------- pip 22.2.2 setuptools 64.0.3 wheel 0.36.2
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、pylibmcのインストールです。
pylibmcのインストールは、以下のコマンドとなります。
pip install pylibmc
pylibmcのインストールは、すぐに終わります。
終了したら、どんなパッケージがインストールされたのかを確認します。
$ pip list Package Version ---------- ------- pip 22.2.2 pylibmc 1.6.2 setuptools 64.0.3 wheel 0.36.2
pylibmcが依存するパッケージは、一つもありません。
よって、既存環境へpylibmcを容易に導入できますね。
以上、pylibmcのインストールを説明しました。
次は、pylibmcの動作確認を説明します。
pylibmcの動作確認
pylibmcの動作確認用コードは、以下。
import pylibmc mc = pylibmc.Client(["127.0.0.1"], binary=True, behaviors={"tcp_nodelay": True, "ketama": True}) # SET mc["some_key"] = "some_value" # GET result = mc["some_key"] print(result)
SETとGETを同じプログラム内で処理しています。
上記コードを実行すると、以下の結果となります。
some_value
戻り値の型は、SETしたデータの型と同じです。
つまり、pylibmcでは型変換を行わずにそのままSET・GETします。
なお、上記コードはPython(pylibmc)とMemcachedが同じマシン上で動いていることを想定しています。
それぞれ別々のマシンである場合は、Memcached側で別途設定が必要になります。
以上、pylibmcの動作確認を説明しました。