キャッシュは、大規模サイトだけのモノだと思っていませんか?
はい、私にもそう思っていた時がありました。
でも、キャッシュは小規模サイトでも利用できます。
機会損失を逃さないためには、どんな規模のサイトでもキャッシュは利用すべきかもしれません。
今回は、Pythonでキャッシュを利用する方法を解説します。
利用するキャッシュは、Redisです。
そして、PythonからRedisにアクセスするためにredis-pyを使います。
本記事の内容
- redis-pyとは?
- redis-pyのシステム要件
- redis-pyのインストール
- redis-pyの動作確認
それでは、上記に沿って解説していきます。
redis-pyとは?
redis-pyとは、Redisにアクセスするためのインターフェースです。
PythonからRedisにアクセスするために必要なライブラリとなります。
また、redis-pyはRedis公式がおススメするオープンソースのPythonライブラリです。
GitHubの公式ページを見ると、Python 2系の扱いについて記述されています。
redis-py 3.5.xまでが、Python 2系に対応するということです。
次のメジャーバージョンアップは、redis-py 4.0になります。
そして、redis-py 4.0ではPython 3.5以降のみの対応になるということです。
個人的には、古いPythonは早く切り捨てるべきと考えています。
そもそも、Pythonには公式開発サイクルが存在しています。
現在の公式開発サイクルは、以下。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月 |
3.7 | 2018年6月27日 | 2023年6月 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
このサイクルに準じていれば、開発側としての責任は果たしています。
それでいけば、もうPython 3.5に対応する必要はありません。
そのような意味では、redis-pyは移行段階のプロジェクトと言えます。
以上、redis-pyについての説明でした。
次は、redis-pyのシステム要件を確認します。
redis-pyのシステム要件
現時点(2021年5月末)での redis-pyの最新バージョンは、3.5.3となります。
この最新バージョンは、2020年6月2日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応となります。
- Windows
- macOS
- Linux
そして、サポート対象となるPythonのバージョンは以下。
- Python 2.7
- Python 3.5以降
早く、redis-py 4.0にメジャーバージョンアップして欲しいですね。
特に面倒なシステム要件はありません。
あと、Redisが動く環境を用意しておく必要はあります。
Ubuntuへのインストールなら、次の記事で解説しています。
以上、redis-pyのシステム要件についての説明でした。
次は、redis-pyをインストールしていきます。
redis-pyのインストール
最初に、現状のインストール済みパッケージを確認しておきます。
>pip list Package Version ---------- ------- pip 21.1.2 setuptools 57.0.0
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、redis-pyインストールです。
redis-pyのインストールは、以下のコマンドとなります。
pip install redis
インストールは、すぐに終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。
>pip list Package Version ---------- ------- pip 21.1.2 redis 3.5.3 setuptools 57.0.0
依存するパッケージは、ありません。
そのため、redis-pyの導入は容易と言えます。
以上、redis-pyのインストールの説明でした。
最後に、redis-pyの動作確認を行います。
redis-pyの動作確認
動作確認用のコードは、以下。
import redis r = redis.Redis( host='localhost', port=6379, db=0 ) # SET r.set('key', 12345) # GET(byte型で戻す) res = r.get('key') print(res) r.close()
内容は、見たままのプログラムです。
上記を実行すると、以下の結果となります。
b'12345'
byte型の戻り値になるようです。
なお、上記はPythonとRedisが同じマシン上で動いていることを想定しています。
以上、redis-pyの動作確認を説明しました。