自学内容网 自学内容网

php Rides 存入list类型,然后拿2000条,后去除Rides2000条

1、数据存入 Rides

/*------------------------data数据存入rides数据库-----------------------------*/
function _setByTj4($data)
{
    global $redis4;
    if (!$redis4) {
        $redis4 = new Redis();
        $redis4->connect('127.0.0.1');

        // 选择数据库,例如数据库3
        $redis4->select(4);
    }
    $jsonString = json_encode($data, true);
    $redis4->rPush('sqlQueue', $jsonString);
}

2、读取并删除Rides对应读取内容
 

// 连接到 Redis
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->select(4);

// 从头部删除并返回指定数量的元素
function popLeftElements($listName, $count)
{
    global $redis;

    // 获取列表的前 count 个元素
    $elements = $redis->lRange($listName, 0, $count - 1);

    // 删除这些元素
    $redis->lTrim($listName, $count, -1);

    return $elements;
}

// 删除并返回前2000个元素
$removedElements = popLeftElements('sqlQueue', 2000);

$result = array_map(function ($json) {
    return json_decode($json, true); // 将 JSON 字符串转换为数组
}, $removedElements);


// 构建批量插入SQL语句
$sql = "INSERT INTO access_records (member_id,ip,url,headers,source,addTime,wxopenid) VALUES ";

$valuesArr = [];
foreach ($result as $row) {
    $member_id = $row['member_id'] ? $row['member_id'] : 0;
    $ip = $row['ip'] ? $row['ip'] : '';
    $url = $row['url'] ? $row['url'] : '';
    $headers = $row['headers'] ? $row['headers'] : '';
    $source = $row['source'] ? $row['source'] : '';
    $addTime = $row['addTime'];
    $wxopenid = $row['wxopenid'] ? $row['wxopenid'] : '';
    $valuesArr[] = "('{$member_id}', '{$ip}', '{$url}', '{$headers}', '{$source}', '{$addTime}', '{$wxopenid}')";
}
$sql .= implode(", ", $valuesArr);
_query($sql);
echo '执行成功' . count($result) . '条';


原文地址:https://blog.csdn.net/weixin_44936767/article/details/143606331

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!