// 切换到 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');
Redis 高效获取最新数据并异步处理

原文地址: https://www.cveoy.top/t/topic/jmnB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录