Redis でのページングデータのキャッシュ方法
Redis キャッシュでページネーションされたデータを扱う場合、以下の手順で実行できます。
- データベースからページングされたデータを取得する
- ページングデータをRedisキャッシュにキーで一意な識別子として保存する
- キャッシュの有効期限を設定し、キャッシュデータの有効期限切れ失效を防ぎます。
- Redisにキャッシュデータがある場合は直接Redisから取得し、データベースを再度クエリする必要はありません。
- 存在しない場合は手順1と手順2を実行し、Redisにデータを格納します。
- 取得したデータを返します。
Python言語とredis-pyライブラリを使用したコード例:
import redis
# 连接Redis
r = redis.Redis(host='localhost', port=6379, db=0)
# 分页查询函数,返回分页数据
def get_page_data(page_num, page_size):
# 先从Redis缓存中查找是否存在缓存数据
key = f"page_data:{page_num}:{page_size}"
cached_data = r.get(key)
if cached_data:
# 若缓存数据存在,则直接返回缓存数据
print("Get page data from cache")
return cached_data.decode()
# 若缓存数据不存在,则从数据库中查询数据
print("Get page data from database")
# TODO: 查询数据库获取分页数据
page_data = "Page 1, Page 2, Page 3" # 假设查询结果为字符串
# 将查询结果存入Redis缓存中
r.setex(key, 3600, page_data) # 设置缓存过期时间为1小时
return page_data
# 测试分页查询函数
page_data = get_page_data(1, 10)
print(page_data)
このサンプルコードは、簡単なページングクエリ関数を実装しています。この関数は、最初に Redis にキャッシュデータがあるかどうかを検索し、ある場合はキャッシュデータを直接返します。ない場合は、データベースからデータを検索し、結果を Redis キャッシュに格納して次回使用できるようにします。