Karp 的技术博客
主页
最新
踩坑教训
数据库
操作系统
Nginx
协议
编程语言
容器
网络安全
其他
编程语言
PHP 雪花算法收藏

需要注意的 $twepoch 变量一定要在项目初始化时重置为当前最新时间
该方法 存在一定问题使用3年左右 会存在 - 符号

操作系统
Awk 字符串截取实例

Awk 是一个强大的文本处理工具,广泛用于数据提取和报告生成。在处理文本数据时,字符串截取是一个常见需求。本文将介绍如何使用 Awk 进行字符串截取,并提供一些实际示例。

数据库
MySQL 事务锁等待超时时间

在使用 MySQL 数据库进行事务处理时,锁的管理是至关重要的。锁可以确保数据的一致性和完整性,但在高并发环境下,锁等待可能会导致性能下降甚至死锁。因此,了解 MySQL 事务的锁等待超时时间及其配置方法,能够帮助开发者更好地管理数据库操作。

编程语言
Swoole 日志 部分代码
/**
 * @desc work进程内日志 仅限work 进程内使用
 * @author lbf
 * @param $msg
 * @param string $name
 *------------------------------------------------------
 */
public static function Wlog($msg, $name = Log::MATCH)
{
    if (!Main::WRITE_DEBUG_LOG && $name == Log::DEBUG) return;

    $name = $name == Log::DEBUG ? Log::MATCH : $name;
    $name = $name == Log::SQL ? Log::MATCH : $name;

    $str = '';
    if (is_array($msg)) {
        foreach ($msg as $key => $val) {
            if (is_array($val))
                $val = json_encode($val);
            $str .= " {$key} {$val}";
        }
    } else {
        $str = $msg;
    }

    $worker_id = APP::getWorkerId();
    if ($worker_id < 0) {
        $worker_id = 'task';
    }
    $date = date('Y/m/d H:i:s');
    $no = date('Ymd');
    $log_dir = LOG_PATH . DS . self::getLogName();
    if (!is_dir($log_dir)) {
        @mkdir($log_dir, 0755, true);
    }
    $file_name = LOG_PATH . DS . self::getLogName() . DS . $name . '-' . $worker_id . '-' . $no . '.log';
    $data = "[" . $date . "]";
    $data .= " _" . APP::getUniqueLogId() . "_";
    $data .= " @ " . $str . "\n";

    file_put_contents($file_name, $data, FILE_APPEND);
}
Nginx
PHP 和 Nginx 实现实时输出的方法

在 Web 开发中,实时输出(或称为流式输出)允许服务器逐步发送数据到客户端,而不是一次性发送所有内容。这对于长时间运行的 PHP 脚本(例如处理文件上传、实时数据生成等)非常有用。本文将介绍如何使用 PHP 和 Nginx 实现实时输出。