🐦
Python + Azure で Redis をやってみた
Redis を試してみたのでまとめます。
ネットワーク接続された永続化可能なインメモリデータベース。連想配列(キー・バリュー)、リスト、セットなどのデータ構造を扱える。いわゆるNoSQLデータベースの一つ。
https://ja.wikipedia.org/wiki/Redis
AWS、GCP も Redis を扱えるサービスがありますが、扱いやすかったので Azureで試しました。
コードはこちら。
なお、Azure Cache for Redis は Azure Potal のデータベースの中から選べます。
コード
import os
import environ
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent
env = environ.Env()
env.read_env(os.path.join(BASE_DIR, ".env"))
HOST_NAME = env("HOST_NAME")
ACCESS_KEY = env("ACCESS_KEY")
HOST_NAME と ACCESS_KEY は .envファイルに保存します。
なお HOST_NAME はプロパティのホスト名から、ACCESS_KEY はアクセスキーから拾えます。
import redis
r = redis.Redis(host=HOST_NAME,
port=6380, db=0, password=ACCESS_KEY, ssl=True)
Redis は文字列型、リスト型、セット型 etc... とありますが、文字列、リストを試してみます。
# 文字列型データ
result = r.set("Message", "Hello!, The cache is working with Python!")
print("SET Message returned : " + str(result))
result = r.exists('Message')
print("Num of Message's Keys is :" + str(result))
result = r.keys()
print("List of Keys is :", result)
result = r.get("Message")
print("GET Message returned : " + result.decode("utf-8"))
result = r.client_list()
print("CLIENT LIST returned : ")
for c in result:
print("id : " + c['id'] + ", addr : " + c['addr'])
# リスト
result = r.rpush('name', 'Tom') # リストの末尾に追加
print("RPush", result)
result = r.rpush('name', 'Alex', 'John') # リストの末尾に追加
print("RPush", result)
result = r.lpush('name', 'Taro') # リストの先頭に追加
print("LPush", result)
result = r.lpush('name', 'Tetuo', "Suzuki") # リストの先頭に追加
print("LPush", result)
result = r.lpop('name') # リストの先頭から値を取り出して削除
print("LPop", result)
result = r.rpop('name') # リストの末尾から値を取り出して削除
print("RPop", result)
result = r.keys() # 格納されている Key (Message、name)を出力
print("List of Keys is :", result)
result = r.lrange('name', 0, -1) # 最初から最後まで name のリストを出力
print("GET name returned : " , result)
result = r.delete('name') # name を削除
print("Delete", result)
result = r.keys() # 格納されている Key (name は削除したので Message のみ)を出力
print("List of Keys is :", result)
以下のように出力されます。
SET Message returned : True
Num of Message's Keys is :1
List of Keys is : [b'Message']
GET Message returned : Hello!, The cache is working with Python!
CLIENT LIST returned :
id : 5596, addr : 106.180.8.21:54638
id : 5531, addr : 13.71.156.31:6336
RPush 1
RPush 3
LPush 4
LPush 6
LPop b'Suzuki'
RPop b'John'
List of Keys is : [b'name', b'Message']
GET name returned : [b'Tetuo', b'Taro', b'Tom', b'Alex']
Delete 1
List of Keys is : [b'Message']
以上になります、最後までお読みいただきありがとうございました。
参考サイト
Discussion