記事の内容
この記事では、pythonでdictをキャッシュ(cache)する方法を紹介します。
pickleを使うことで、データを一つにまとめることができます。
pythonでdictをキャッシュ(cache)する方法
キャッシュにはRedisを使っています。
書き込み用と取得用は、別のコネクションを作成しています。
def connect_primary_redis(host=application.config['PRIMARY_REDIS_HOST'], port=application.config['REDIS_PORT']): red = redis.Redis(host=host, port=port, db=0) return red def connect_read_redis(host=application.config['READ_REDIS_HOST'], port=application.config['REDIS_PORT']): red = redis.Redis(host=host, port=port, db=0) return red
pickleというのを使って、dictを一つに固めます。
キャッシュをセットする時は、pickleのdumpsを使ってから、setします。
import pickle
primary_red = connect_primary_redis()
primary_red.set(f'english', pickle.dumps({'a':1, 'b':2}), ex=60)
キャッシュをreadした後は、pickleのloadsでデータをdictに戻します。
cache_data = read_red.get(f'english')
pickle.loads(cache_data)