<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[后端开发]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/gaoce227</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; gaoce227]]></copyright><item><title><![CDATA[rsa 公钥与私钥校验是否一致]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/162556457</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/162556457</guid><author>gaoce227</author><pubDate>Fri, 03 Jul 2026 16:58:05 +0800</pubDate><description><![CDATA[【代码】rsa 公钥与私钥校验是否一致。]]></description><category></category></item><item><title><![CDATA[AI驱动下，破解业务与中台管理的困局]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/159930692</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/159930692</guid><author>gaoce227</author><pubDate>Tue, 07 Apr 2026 21:29:13 +0800</pubDate><description><![CDATA[在业务快速迭代和人员频繁变动的背景下，业务与中台管理面临严峻挑战。人员流动导致项目代码风格混乱、逻辑难以理解，进而影响故障排查和业务连续性。理想状态是保持中台稳定与规范，但现实中员工往往需要兼顾业务推进和代码维护，导致双重压力。随着AICoding技术的成熟，AI可承担重复编码、代码梳理和故障排查工作，统一编码风格，帮助新成员快速理解原有逻辑。AI辅助并非取代人力，而是通过自动化标准化工作，让员工专注于核心业务创新，最终实现"人员灵活流动、中台稳定规范"的管理目标，提升业务与中台协同效率。]]></description><category></category></item><item><title><![CDATA[MySQL ENUM 踩坑实录：一个字段引发的故障]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/154681797</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/154681797</guid><author>gaoce227</author><pubDate>Tue, 11 Nov 2025 10:10:36 +0800</pubDate><description><![CDATA[在软件开发中，最可怕的错误不是那些让程序崩溃的错误，而是那些在测试环境中“伪装”得很好，却在生产环境引爆的“定时炸弹”。今天，我们就来复盘一个由小小的ENUM字段引发，险些导致线上数据错乱的惊魂事件。]]></description><category></category></item><item><title><![CDATA[query包：将结构体转换成URL Query Strings]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/154680768</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/154680768</guid><author>gaoce227</author><pubDate>Tue, 11 Nov 2025 09:56:26 +0800</pubDate><description><![CDATA[核心功能：将一个 Go 结构体实例，根据其字段和 struct tag，自动编码成 URL 查询字符串（格式）。为什么需要它？当你在编写一个 API 客户端时，经常需要调用一个 GET 请求，并附带很多查询参数。需要处理不同类型的转换（int, bool, string）。需要对特殊字符进行 URL 编码。需要处理可选参数（如果某个参数为空，就不应该出现在 URL 中）。需要处理数组/切片参数（如库完美地解决了以上所有问题，让你只需要定义一个结构体，剩下的交给它来处理。]]></description><category></category></item><item><title><![CDATA[MySQL InnoDB 的Buffer Pool缓存了哪些数据]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/154661523</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/154661523</guid><author>gaoce227</author><pubDate>Mon, 10 Nov 2025 21:47:27 +0800</pubDate><description><![CDATA[InnoDB Buffer Pool是MySQL的关键内存缓存区，主要存储数据页、索引页、脏页等核心数据。其中数据页缓存表行数据，索引页加速查询定位，脏页暂存修改数据后异步刷盘以提升写性能。此外还包含更改缓冲优化二级索引写操作、自适应哈希索引加速热点数据查询，以及元数据和内部结构。通过将磁盘I/O转化为内存操作，Buffer Pool显著提升了MySQL的读写性能，是跨越内存与磁盘性能鸿沟的关键设计。]]></description><category></category></item><item><title><![CDATA[分析MySQL的IOPS不高但内存使用率较高的原因]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/154660783</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/154660783</guid><author>gaoce227</author><pubDate>Mon, 10 Nov 2025 21:04:46 +0800</pubDate><description><![CDATA[摘要：MySQL数据库内存使用率高但IOPS低是一个健康状态，表明InnoDB缓冲池(Buffer Pool)配置合理，热数据缓存命中率高，避免了磁盘I/O。关键验证指标包括缓冲池命中率(应&gt;99%)、连接数和内存配置合理性。潜在问题包括巨型查询、连接泄漏或内存参数设置不当。通过SHOW ENGINE INNODB STATUS、PROCESSLIST和配置文件检查可确认系统状态。这种高内存使用+低IOPS的组合通常是数据库性能优化的理想结果。]]></description><category></category></item><item><title><![CDATA[怎么用好Redis的高性能这个优势？]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/150642982</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/150642982</guid><author>gaoce227</author><pubDate>Sat, 23 Aug 2025 17:27:29 +0800</pubDate><description><![CDATA[Redis使用优化关键点：1.避免BigKey问题，合理拆分大Value，使用预加载或延迟加载策略；2.确保使用长连接并合理配置连接池参数，防止连接数超限；3.数据类型选择要得当，K-V类数据建议优先使用String而非Hash，避免集群分片不均。可通过redis-cli--bigkeys排查工具检测BigKey。]]></description><category></category></item><item><title><![CDATA[vLLM 学习- 启动部署模型服务]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/149529042</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/149529042</guid><author>gaoce227</author><pubDate>Tue, 22 Jul 2025 11:20:22 +0800</pubDate><description><![CDATA[利用 uv 创建虚拟环境。]]></description><category></category></item><item><title><![CDATA[ElasticSearch使用总结——长连接问题]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/149413598</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/149413598</guid><author>gaoce227</author><pubDate>Thu, 17 Jul 2025 09:51:16 +0800</pubDate><description><![CDATA[ES的请求协议也是http，避免连接重复建立与销毁带来的高负载，准备用长连接，在压测的时候长连接没问题，但到了生产环境的时候，发现有大量的TIME_WAIT，这就不符合长连接的预期了。排查时发现是因为使用了context传递，然后用户端很多没请求完就取消了请求，导致了大量的context cancel，cancel的时候请求ES的连接也就断开了，这样长连接就没法维护了。在http包里也有了NewRequestWithContext了，在请求第三方的时候，如果上游取消了请求，ctx能控制停止请求第三方资源。]]></description><category></category></item><item><title><![CDATA[LLM 学习笔记-推理流程]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/148097865</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/148097865</guid><author>gaoce227</author><pubDate>Wed, 21 May 2025 10:19:55 +0800</pubDate><description><![CDATA[输入的prompt会经过分词器分解为token，每个token都有唯一的token id，然后输入的tokenid会经过嵌入层（embedding layer）转为一个高维连续的向量，比如说768维或者1024维向量。然后这个 token 是能够被 LLM 理解的，在 GPU 的作用下，输出 token 给用户，然后在输出给用户的同时，输出token 再被作为输入token，继续下一个token的输出。：生成token的阶段，利用prefill阶段的cache和本阶段的cache生成token。]]></description><category></category></item><item><title><![CDATA[mcp-server 启动时问题解决]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/147991935</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/147991935</guid><author>gaoce227</author><pubDate>Thu, 15 May 2025 20:52:07 +0800</pubDate><description><![CDATA[版权声明：本文为博主原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接和本声明。原文链接：https://blog.youkuaiyun.com/songhongchuang/article/details/129019353。nodejs版本太低，升级node版本至v16以上！升级完成查看 node版本。升级nodejs方法。查看当前node版本。用制定的版本执行脚本。]]></description><category></category></item><item><title><![CDATA[MongoDB 命令行操作收集]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/143038728</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/143038728</guid><author>gaoce227</author><pubDate>Fri, 18 Oct 2024 10:52:27 +0800</pubDate><description><![CDATA[1、模糊查询（利用正则）]]></description><category></category></item><item><title><![CDATA[Golang的几种限流 package的用法]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/123759147</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/123759147</guid><author>gaoce227</author><pubDate>Sun, 17 Apr 2022 11:03:49 +0800</pubDate><description><![CDATA[常见Golang限流实现]]></description><category></category></item><item><title><![CDATA[Golang json 中文marshal]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/122673856</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/122673856</guid><author>gaoce227</author><pubDate>Mon, 24 Jan 2022 19:46:55 +0800</pubDate><description><![CDATA[今天遇到了坑， golang 直接json.Marshal 中文 客户端不解析。必须是ASCII码才可以，所以学习了下，示例如下：


package main

import (
    "encoding/json"
    "log"
    "strconv"
)

type QuoteString string

func (q QuoteString) MarshalJSON() ([]byte, error) {

    return []byte(strconv.QuoteToASCII(]]></description><category></category></item><item><title><![CDATA[Golang 从httpmock 了解http.RoundTripper]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/118393295</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/118393295</guid><author>gaoce227</author><pubDate>Thu, 01 Jul 2021 18:34:48 +0800</pubDate><description><![CDATA[最近组内推进Golang的单元测试，代码有很多第三方请求的逻辑，如果冒昧的写单测可能影响第三方数据，或者拿不到期望数据。这个时候我们了解到可以通过github.com/jarcoal/httpmock（后面统称httpmock）来解决这个问题。



我们先来看一段代码：


func TestHttpReq(t *testing.T) {
	httpmock.Activate()
	defer httpmock.DeactivateAndReset()

	//mock期望的请求方式、url与返回结果
	]]></description><category></category></item><item><title><![CDATA[求每月有几周【Golang】]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/109906871</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/109906871</guid><author>gaoce227</author><pubDate>Sat, 21 Nov 2020 20:13:15 +0800</pubDate><description><![CDATA[package main

import (
    "fmt"
    "time"
)

func main() {

    d := time.Now()                                                                                                                                                                               ]]></description><category></category></item><item><title><![CDATA[获取某一周的日期区别【php】]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/107687351</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/107687351</guid><author>gaoce227</author><pubDate>Thu, 30 Jul 2020 12:03:14 +0800</pubDate><description><![CDATA[直接上代码：
function weekday($week)
{
    $year = substr($week, 0, 4);
    $week = substr($week, 4);


    $year_start = mktime(0, 0, 0, 1, 1, $year);

    $year_end = mktime(0, 0, 0, 12, 31, $year);

    $init = date("W", $year_start);
    $w = date("w", $year]]></description><category></category></item><item><title><![CDATA[斐波那契的几种实现方法【Golang】]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/105159200</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/105159200</guid><author>gaoce227</author><pubDate>Sat, 28 Mar 2020 12:40:26 +0800</pubDate><description><![CDATA[递归写法
package main

import "fmt"

func main() {
	fmt.Println(F(6))
}

func F(i int) (f int) {
	if i &lt;= 0 {
		return 0
	}
	if i == 1 {
		return 1
	}
	return F(i-1) + F(i-2)
}

动规思路
package main

impo...]]></description><category></category></item><item><title><![CDATA[Golang channel 使用总结（二）]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/105143238</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/105143238</guid><author>gaoce227</author><pubDate>Fri, 27 Mar 2020 15:56:46 +0800</pubDate><description><![CDATA[有缓冲channel的关闭
dead lock
如果 在同一个Goroutine内，发送数大于缓冲数，就跟无缓冲类似了。
package main

import "fmt"

func main() {
    pipline := make(chan string, 1)
    pipline &lt;- "hello world"
    pipline &lt;- "hello Gola...]]></description><category></category></item><item><title><![CDATA[Golang channel 使用总结（一）]]></title><link>https://blog.youkuaiyun.com/gaoce227/article/details/105142258</link><guid>https://blog.youkuaiyun.com/gaoce227/article/details/105142258</guid><author>gaoce227</author><pubDate>Fri, 27 Mar 2020 15:27:12 +0800</pubDate><description><![CDATA[无缓冲channel的使用
package main                                                                                                                                        

import "fmt"

func main() {
    ch :...]]></description><category></category></item></channel></rss>