在 Flask 中读取 Redis 有序集合数据并实现分页请求的示例代码如下:
from flask import Flask, jsonify, request
import redis
app = Flask(__name__)
redis_conn = redis.Redis(host='localhost', port=6379, db=0)
# 模拟初始化有序集合数据
zset_key = 'my_zset'
for i in range(1, 101):
redis_conn.zadd(zset_key, {f'element{i}': i})
@app.route('/paged_data', methods=['GET'])
def get_paged_data():
page = int(request.args.get('page', 1))
page_size = 10
start_index = (page - 1) * page_size
end_index = start_index + page_size - 1
# 读取有序集合中指定范围的元素
elements = redis_conn.zrange(zset_key, start_index, end_index)
response = {
'page': page,
'page_size': page_size,
'total_elements': redis_conn.zcard(zset_key),
'data': [element.decode('utf-8') for element in elements]
}
return jsonify(response)
if __name__ == '__main__':
app.run()
在这个示例中,我们通过 /paged_data
路由实现了一个简单的分页请求接口。用户可以通过 GET 请求访问 /paged_data
并传入 page
参数来指定页数,每页默认包含 10 个元素。接口会读取 Redis 中指定范围的有序集合元素,并返回对应的分页数据信息。