Redis 高效获取最新数据并异步处理
// 切换到 5 号库 $redis->select(5); // 获取所有键 $keys = $redis->keys('*'); // 初始化数据存储数组 $datajson = []; // 限制获取最新数据条数 $limit = 20;
// 遍历所有键
foreach ($keys as $key) {
// 获取当前键对应的所有字段和值
$marketData = $redis->hGetAll($key);
// 对数据进行倒序排序,最新数据排在前面
arsort($marketData);
// 对每个值进行 JSON 解码
$marketData = array_map(function ($json) {
return json_decode($json, true);
}, $marketData);
// 截取最新的 $limit 条数据
$marketData = array_slice($marketData, 0, $limit);
// 初始化当前键的最新数据数组
$marketDatas = [];
// 将最新数据添加到数组中
foreach ($marketData as $key1 => $value) {
$marketDatas[] = $value;
}
// 将当前键的最新数据存储到总数据数组中
$datajson[$key] = $marketDatas;
}
// 构建异步任务数据
$homeList = ['type' => 'info', 'list' => $datajson, 'api_form' => 'transactionIndex'];
// 派发异步任务,指定队列
SendMarket::dispatch($homeList)->onQueue('send:info:index');
原文地址: https://www.cveoy.top/t/topic/jmnB 著作权归作者所有。请勿转载和采集!