PythonでRedisに接続する方法
PythonでRedisに接続する手順メモ。
Redis ... Blazing fast!!
Redis、使ってますか?
Redisは高速に動作するインメモリーデータベースで、キーバリュー型のNoSQLのひとつです。
前回の記事で書いたMongoDBも高速に動作するDBですがRedisのパフォーマンスには到底勝てません。インメモリーなので当然ですが非常に高速に動作します。
そのパフォーマンスからキャッシュやリアルタイムで反映されるランキング等の用途に使われたりします。
今回はPythonからRedisに接続する手順を記載します。
Redis on Docker
前回のMongoDBに続いてですが、、今回もDockerで用意したいと思います。
(今どきはちょっと試すぐらいでいちいちインストールなんてしてられませんね!)
version: "3.5" services: redis: image: redis:latest ports: - "6379:6379" redisCommander: image: rediscommander/redis-commander environment: - REDIS_HOSTS=local:redis:6379 ports: - "8081:8081" depends_on: - redis
redisCommanderというNode.js製のRedis管理ツールも起動させます。
起動コマンドはdocker-compose.yamlがあるディレクトリで↓↓
$ docker-compose up -d
Pythonで接続
redisのインストール
ここでインストールするのはredis本体のことではなく、PythonでRedisを操作するライブラリの方です。
$ pipenv install redis
Pythonコード
Redisに接続してデータを1件登録するコードを書いてみます。
from redis import Redis # 接続 r = Redis(host="192.168.99.100", port=6379, db=0) r.set("test-key", "テストバリュー")
接続から登録(set)の単純なコードになります。例によってDocker Desktopを使っている場合はhostにlocalhost
を指定してください。
redisはデフォルトで0~15までの16個のDBを持っており、上記の例では接続時に1番目(インデックス0)のDBを指定して接続しています。インデックスを変更することにより異なるDBに接続することが可能です。
実行コマンドは↓
py redis_test.py
redis-commanderで確認
<docker-machinのIP>:8081
or localhost:8081
にアクセスして確認してみます。
docker-composeで起動していればlocalのredisには接続されているはずです。redis_test.py実行後、左上のRefreshで更新するとr.set
で登録したデータが表示されると思います。
これで接続から登録までを確認することが出来ました!
setコマンドだけだとあまり活かせないかもしれないですが、他にも色々便利なコマンドがあるので使ってみると良いと思います↓↓
ちなみにこのredis-commanderですが画面下部でコマンド入力可能となっておりそれなりに便利です。コマンド履歴も残ります。
(画像はDBを切り替えたところ)
また左上の"More..." ⇒ "Add Server"で追加のredisサーバーも接続できるので、例えばherokuのredis add-onで作成したredisにも接続可能です。 herokuはMongoDBのデータはブラウザで確認できるのですがredisは確認できないのでredis-commander単体でも結構使えます。
おわりに
何でもかんでもredisにつっこむということは現実的ではないですが、こういったものを適切に使っていくことが大事ですね~
もっと便利で直接的に役に立つコマンドがあるのでそれはまた別の記事にしたいと思います。