【Pythonでキャッシュ利用】pylibmcのインストール

【Pythonでキャッシュ利用】pylibmcのインストール サーバー

「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.62016年12月23日2021年12月23日
3.72018年6月27日2023年6月27日
3.82019年10月14日2024年10月
3.92020年10月5日2025年10月
3.102021年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の動作確認を説明しました。

タイトルとURLをコピーしました