<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[langsiming的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/langsiming</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; langsiming]]></copyright><item><title><![CDATA[【无标题】]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/160112183</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/160112183</guid><author>langsiming</author><pubDate>Sat, 25 Apr 2026 20:44:36 +0800</pubDate><description><![CDATA[*Prompt Cache 解决的就是这个问题**：把已经计算过的 KV Cache 持久化存储，后续请求直接复用，跳过重复的计算。模型逐个生成 token 时，**之前 token 的 K 和 V 不会变**。2. **第 2 次请求** — 前缀相同的部分直接加载之前存的 KV（Prompt Cache 命中）→ 只算新增 token 的 KV → 生成回复。1. 用当前 token 的 **Q** 和所有历史 token 的 **K** 做点积 → 得到注意力分数（该关注谁）]]></description><category></category></item><item><title><![CDATA[jvm垃圾回收]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/148202175</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/148202175</guid><author>langsiming</author><pubDate>Sun, 25 May 2025 11:04:45 +0800</pubDate><description><![CDATA[参考文档1.]]></description><category></category></item><item><title><![CDATA[算法题题型总结]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/147644149</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/147644149</guid><author>langsiming</author><pubDate>Thu, 01 May 2025 10:12:02 +0800</pubDate><description><![CDATA[解法综述：二叉树的解法，基本上都是依赖遍历，再加上递归的思路来做的。那递归又分为深度优先和广度优先。深度优先算法，前序，中序，后序。广度优先，利用先进先出队列，一层一层的遍历完整颗树。]]></description><category></category></item><item><title><![CDATA[Redis为什么会变慢]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/137745887</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/137745887</guid><author>langsiming</author><pubDate>Sun, 14 Apr 2024 15:40:42 +0800</pubDate><description><![CDATA[链接: https://pan.baidu.com/s/1PNzhDMqkFBdKUu9_FxA5zw 提取码: euvk。]]></description><category></category></item><item><title><![CDATA[聊聊jvm中内存模型的坑]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/137741931</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/137741931</guid><author>langsiming</author><pubDate>Sun, 14 Apr 2024 14:08:19 +0800</pubDate><description><![CDATA[看图，简单来说线程中操作的变量是副本。在并发情况下，如果数据发生变更，副本的数据就变为脏数据。这个时候就会有并发问题。]]></description><category></category></item><item><title><![CDATA[随意聊架构]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/137185708</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/137185708</guid><author>langsiming</author><pubDate>Sat, 30 Mar 2024 23:11:08 +0800</pubDate><description><![CDATA[实践是检验真理的唯一标准，一句话，实践下来效果不好。钱花了，但是开发的效率并没提高多少。本身的想法很好：中台可以都大企业的一些重复的功能做一个收整，归并一些重复的系统。可以减少维护的人力和物力成本。专业的人做专业的事，提高系统的设计质量。]]></description><category></category></item><item><title><![CDATA[java的锁synchronied和本地锁（reentrantLock）与分布式锁（redisson）的底层实现]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/135325772</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/135325772</guid><author>langsiming</author><pubDate>Mon, 01 Jan 2024 17:25:49 +0800</pubDate><description><![CDATA[redisson的解锁过程如下图。先判断线程是否持有该锁。如果有，则value值减1。然后判断value是否大于0，如果大于0，则给key设置一个默认的过期时间30秒；如果等于0，则可以删除key和发布一个key删除事件。因为加锁时，会设置过期时间。所以就算不主动解锁。key过期了就相当于解锁了。]]></description><category></category></item><item><title><![CDATA[Collections工具类整理]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/135325565</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/135325565</guid><author>langsiming</author><pubDate>Mon, 01 Jan 2024 15:50:59 +0800</pubDate><description><![CDATA[/int[]转List://使用Arrays.stream(ints).boxed().collect(Collectors.toList());//排序:Collections.sort, 没有返回值；默认是顺序排序。//翻转:Collections.reverse, 没有返回值；//交换元素:Collections.swap, 没有返回值；]]></description><category></category></item><item><title><![CDATA[面试中遇到的设计题]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/134619701</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/134619701</guid><author>langsiming</author><pubDate>Sat, 25 Nov 2023 21:12:56 +0800</pubDate><description><![CDATA[前端：a. 一些防刷单校验，拉长整个交易流程，起到一个削峰作用b. 静态资源多CDN部署c. 前端缓存，有些页面的切换，不需要调用后端接口后端：接口性能优化：使用缓存，异步，多线程，功能降级等手段还有些高并发时保证系统稳定性的手段：扩容， 升配，限流，降级还有是想做系统隔离/数据隔离的方案 这种成本很高。]]></description><category></category></item><item><title><![CDATA[英文自我介绍]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/133188382</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/133188382</guid><author>langsiming</author><pubDate>Fri, 22 Sep 2023 22:36:01 +0800</pubDate><description><![CDATA[用英文介绍下，我的主要工作。]]></description><category></category></item><item><title><![CDATA[IO面试题整理]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/132639512</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/132639512</guid><author>langsiming</author><pubDate>Sat, 02 Sep 2023 17:57:53 +0800</pubDate><description><![CDATA[这里的io复用指的是，负责处理input/output工作的线程的服用。相比非复用的io模型每个fd文件描述符（网络请求），都会用一个线程进行监听，复用的io模型只需使用一个线程进行监听，当发现有数据准备好的文件描述符时，会将其通知给另一个负责数据读取的线程。当请求并发量高时，这样的模型，大大减少了线程的使用。但是这个模型也有它的不足之处，比如监听fd文件描述符的线程，需要不断轮询。但大多数的轮训其实是无效的。这个问题，信号驱动的io模型可以解决。]]></description><category></category></item><item><title><![CDATA[后端开发专业英文单词收集]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/130668957</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/130668957</guid><author>langsiming</author><pubDate>Sun, 14 May 2023 16:08:12 +0800</pubDate><description><![CDATA[government affairs 政务
	customers Delivery 客户交付
	high-concurrency 高并发
	system architecture design and implementation 系统架构设计和开发
	use guidance 用法指导
	tencent cloud product 腾讯云产品
	job qualification 工作要求
	Bachelor Degree 学士学位 master degree 硕士学位
	Backstage/back-e]]></description><category></category></item><item><title><![CDATA[后端架构学习]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/128582323</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/128582323</guid><author>langsiming</author><pubDate>Sun, 15 Jan 2023 11:21:24 +0800</pubDate><description><![CDATA[这里的架构说的是后端的架构的发展。如果要包括前端的话，基本上采用的都是c/s的架构模式。1. 什么是后端服务的架构？怎么去理解后端架构这个词？4. 产品经理和业务架构师做的事情到底有什么不同？6. 要提高系统的复用性需要做好哪些事情？3. 日常应该怎么去积累架构的能力？2. 后端架构需要关注哪些事情？5. 架构发展的历史。]]></description><category></category></item><item><title><![CDATA[kafka源码-问题整理]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/120382476</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/120382476</guid><author>langsiming</author><pubDate>Tue, 22 Mar 2022 19:17:52 +0800</pubDate><description><![CDATA[1. 解读kafak的read和append方法

参考文章：kafka 日志段 - 搜索结果 - 知乎
]]></description><category></category></item><item><title><![CDATA[后端存储实战课-学习笔记]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/123576832</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/123576832</guid><author>langsiming</author><pubDate>Fri, 18 Mar 2022 16:06:40 +0800</pubDate><description><![CDATA[本笔记内容来源极客时间-李玥老师的后端存储实战


创建和更新订单时，如何保证数据准确无误
重要摘要

一个合格的订单系统，最基本的要求是什么？数据不能错。--说的是数据一致性的问题
	订单系统的核心功能和数据：
	核心功能：
		 创建订单；
		 随着购物流程更新订单状态；
		 查询订单，包括用订单数据生成各种报表
		核心数据：
		订单主表：也叫订单表，保存订单的基本信息。
		订单商品表：保存订单中的商品信息。
		订单支付表：保存订单的支付和退款信息。
		订单优惠表：保存订...]]></description><category></category></item><item><title><![CDATA[effective-java读书笔记]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/123441192</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/123441192</guid><author>langsiming</author><pubDate>Sat, 12 Mar 2022 12:09:59 +0800</pubDate><description><![CDATA[其实书中内容，我们在工作开发中其实都是有接触到的。那本文我会从自己的角度叙述下读书前自己对某块知识点的理解。和读书后自己对某块知识点的理解。
枚举类
阅读前的理解：使用枚举可以面的这些好处

枚举类可以用来代替静态变量来定义一些魔法值或者字符串
清晰的定义业务的可选范围
复用性好

int枚举模式的不足：

没有类型安全校验。比如商品上架状态为1，商品的商品类型为1，

书中介绍的优点：

...]]></description><category></category></item><item><title><![CDATA[lucene原理篇]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/123218645</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/123218645</guid><author>langsiming</author><pubDate>Tue, 01 Mar 2022 23:17:33 +0800</pubDate><description><![CDATA[都知道lucene使用倒排索引来搜索文档，哪倒排索引究竟是个什么呢？
倒排索引是区分于正排索引的概念
正排索引：以文档的唯一id作为索引，以文档的内容作为记录的结构
倒排索引：以文档中内容的单词作为的索引，以文档的id作为内容的结构

相比关系数据库使用的“like %XX%”查询，倒排索引有什么优点

搜索效率更高，like“%xx%”，无法使用索引，会走全表扫描，效率差
可以实现更复杂的搜索场景，like“%xx%”只能实现首尾的模糊查询

倒排索引的实现
倒排索引由两部分组成，一个是Term Dict]]></description><category></category></item><item><title><![CDATA[lucene-新增，更新，删除过程解析]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/122899171</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/122899171</guid><author>langsiming</author><pubDate>Sat, 12 Feb 2022 18:10:11 +0800</pubDate><description><![CDATA[lucene新增文档过程
疑问：

Field.Store字段的含义是？Store.YES 保存 可以查询 可以打印内容 ; Store.NO 不保存 可以查询 不可打印内容 由于不保存内容所以节省空间
完成写入过程的类？DefaultIndexingChain.StoredFieldsConsumer完成字段的写入过程。
lucene是如何控制写入速度的？通过flushController进行控制，执行插入动作前，需要保证排队中的flush个数和停顿的线程数为0, 否则将执行flush操作。
整理下Doc]]></description><category></category></item><item><title><![CDATA[es-怎么将嵌套对象打平]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/122635698</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/122635698</guid><author>langsiming</author><pubDate>Sat, 22 Jan 2022 12:38:57 +0800</pubDate><description><![CDATA[思路：
将嵌套对象转成json格式(嵌套对象的字段不多可以这样用,字段的很多的话，可将其转换成md5)，如果有多个嵌套对象，他们直接可以用空格进行隔开。分词器使用whitespace。
#注意分词器使用whitespace
{
  "usersnew" : {
    "mappings" : {
      "properties" : {
        "content" : {
          "type" : "text",
          "fields" : {
           ]]></description><category></category></item><item><title><![CDATA[es-RestHighLevelClient实践]]></title><link>https://blog.youkuaiyun.com/langsiming/article/details/122625411</link><guid>https://blog.youkuaiyun.com/langsiming/article/details/122625411</guid><author>langsiming</author><pubDate>Fri, 21 Jan 2022 17:03:45 +0800</pubDate><description><![CDATA[.index 接口 --新增/更新索引，内容更新是覆盖式的
.update 接口 --更新索引，支持局部字段的更新，相对.index接口相比，减少了没有必要的字段更新
如何使用RestHighLevelClient进行脚本更新？脚本更新的优势和劣势是什么？

...]]></description><category></category></item></channel></rss>