Redis でのページングデータのキャッシュ方法

Redis キャッシュでページネーションされたデータを扱う場合、以下の手順で実行できます。

  1. データベースからページングされたデータを取得する
  2. ページングデータをRedisキャッシュにキーで一意な識別子として保存する
  3. キャッシュの有効期限を設定し、キャッシュデータの有効期限切れ失效を防ぎます。
  4. Redisにキャッシュデータがある場合は直接Redisから取得し、データベースを再度クエリする必要はありません。
  5. 存在しない場合は手順1と手順2を実行し、Redisにデータを格納します。
  6. 取得したデータを返します。

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 キャッシュに格納して次回使用できるようにします。

bannerAds