编程语言
首页 > 编程语言> > 哪种存储方式更适合存储 api的 请求日志?

哪种存储方式更适合存储 api的 请求日志?

作者:互联网

存储 API 请求日志时,可以根据日志的具体需求选择适当的 Redis 数据结构。以下是几种适合存储 API 请求日志的方式及其适用场景:

1. 列表(List)

适用场景

示例

// 添加日志
Redis::lpush('api_request_logs', json_encode($logData));

// 获取最新 10 条日志
$recentLogs = Redis::lrange('api_request_logs', 0, 9);

PHP

2. 哈希(Hash)

适用场景

示例

// 创建一个唯一的请求 ID
$requestId = uniqid('req_');

// 存储日志
Redis::hMSet("api_request_logs:{$requestId}", [
    'timestamp' => time(),
    'path' => '/api/example',
    'status' => 200,
    'response_time' => 150,
]);

// 获取某个请求的日志
$requestLog = Redis::hGetAll("api_request_logs:{$requestId}");

PHP

3. 有序集合(Sorted Set)

适用场景

示例

// 添加日志
$timestamp = time();
Redis::zadd('api_request_logs', $timestamp, json_encode($logData));

// 获取时间范围内的日志
$startTime = strtotime('-1 hour');
$endTime = time();
$recentLogs = Redis::zrangebyscore('api_request_logs', $startTime, $endTime);

PHP

综合考虑

标签:
来源: