【Python】ディスクのキャッシュ利用可能なDiskCacheのインストール | ジコログ

【Python】ディスクのキャッシュ利用可能なDiskCacheのインストール

【Python】ディスクのキャッシュ利用可能なDiskCacheのインストール プログラミング

「Pythonの処理が遅くて何とかしたい・・・」
「メモリ不足でキャッシュを利用したくても利用できない・・・」
「MemcachedやRedisを利用できる環境ではない・・・」

このような場合には、DiskCacheがオススメです。
この記事では、ディスクをキャッシュに利用できるDiskCacheについて解説しています。

本記事の内容

  • DiskCacheとは?
  • DiskCacheのシステム要件
  • DiskCacheのインストール
  • DiskCacheの動作確認

それでは、上記に沿って解説していきます。

DiskCacheとは?

DiskCacheとは、ディスクおよびファイルバックアップキャッシュライブラリです。
Pythonのみで書かれ、Djangoと互換性があります。

通常、MemcachedやRedisなどのキャッシュはメモリ上にデータが保存されます。
しかし、DiskCacheではメモリではなくディスク上にデータを保存します。
(※メモリにはキーのようなモノ、ディスクにはデータ本体を保存している模様)

もちろん、ディスク上のキャッシュはパフォーマンスの面では劣ります。
単純に比較すれば、DiskCacheはMemcachedやRedisに速度面では完敗です。

ただし、メモリに負荷を与えないという利点がDiskCacheにはあります。
このことにより、トータルでDiskCacheの方がパフォーマンス的に優れる可能性もあります。

メモリが一杯で処理待ちになるということも十分に考えられます。
このような場合には、DiskCacheを利用した方が高速である可能性もあるということです。

そもそも、メモリに不安がある場合はキャッシュの利用を諦めます。
そんな環境であっても、DiskCacheを用いればキャッシュを利用することが可能になります。

これだけでも、十分にDiskCacheを利用する価値があると言えます。

以上、DiskCacheについて説明しました。
次は、DiskCacheのシステム要件を説明します。

DiskCacheのシステム要件

現時点(2022年8月)でのDiskCacheの最新バージョンは、5.4.0となります。
この最新バージョンは、2021年12月31日にリリースされています。

サポートOSに関しては、以下を含むクロスプラットフォーム対応です。

  • Windows
  • macOS
  • Linux

サポート対象となるPythonのバージョンは、以下となっています。
これは、setup.pyに記載されている内容です。

しかし、公式サイトでは次のような記述もあります。

DiskCacheの開発自体が、Python 3.10で行われているということです。
では、なぜこのような記載に差異があるのでしょうか?

これは、setup.pyの更新忘れが原因にあります。
実際、GitHub上ではsetup.pyの更新日付が少し古いです。

他のライブラリでも、setup.pyの更新漏れはよく見かけます。
とりあえず、Python 3.7以降であればOKということです。

これは、以下の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年で終了していることに注意しましょう。

他には、システム要件はありません。
DiskCacheは、pure-Pythonのライブラリです。

つまり、DiskCacheはPythonだけで開発されています。
そのため、DiskCacheはPythonが動けばどこでも動くと言えます。

以上、DiskCacheのシステム要件を説明しました。
次は、DiskCacheのインストールを説明します。

DiskCacheのインストール

検証は、次のバージョンの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

では、DiskCacheのインストールです。
DiskCacheのインストールは、以下のコマンドとなります。

pip install diskcache

DiskCacheのインストールは、すぐに終わります。
終了したら、どんなパッケージがインストールされたのかを確認します。

$ pip list
Package    Version
---------- -------
diskcache  5.4.0
pip        22.2.2
setuptools 64.0.3
wheel      0.36.2

DiskCacheが依存するパッケージは、ありません。
そのため、DiskCacheは既存環境に容易に導入可能です。

このことにより、DiskCacheを既存環境でも容易に試せます。
メモリ不足が懸念される箇所での検証が、簡単にできるということです。

以上、DiskCacheのインストールを説明しました。
次は、DiskCacheの動作確認を説明します。

DiskCacheの動作確認

DiskCacheの動作確認を行います。
次の2つのスクリプトを用意します。

set_test.py

import diskcache as dc

cache = dc.Cache('tmp')
# SET
cache['key'] = 'Disk Cache -- Disk and file backed persistent cache.'

get_test.py

import diskcache as dc

cache = dc.Cache('tmp')
# GET
result = cache['key']

print(result)

まず、set_test.pyを実行します。
この時点でディスクを利用したキャッシュが実施済みとなります。

次に、get_test.pyを実行します。
以下のようにコンソールに表示されれば、DiskCacheは機能しています。

Disk Cache -- Disk and file backed persistent cache.

以上、DiskCacheの動作確認を説明しました。

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