<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[panzer_maus的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/panzer_maus</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; panzer_maus]]></copyright><item><title><![CDATA[限流相关知识的学习(入门版)]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/162413654</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/162413654</guid><author>panzer_maus</author><pubDate>Mon, 29 Jun 2026 13:59:25 +0800</pubDate><description><![CDATA[限流（Rate Limiting）是一种控制系统接收请求速率的技术，主要用于保护服务器资源、保证服务质量、防止恶意攻击和控制成本。常见的限流算法包括固定窗口、滑动窗口、漏桶算法和令牌桶算法，各有优缺点。Redis的INCR命令和TTL特性常被用于实现限流。限流通常与熔断、降级等技术结合使用，构成服务治理的重要组成部分。本文通过生活场景类比解释了限流概念，详细介绍了相关算法原理和应用，适合初学者理解限流技术。]]></description><category></category></item><item><title><![CDATA[MySQL 索引介绍与索引优化的简单介绍]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/160255220</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/160255220</guid><author>panzer_maus</author><pubDate>Sat, 18 Apr 2026 18:52:50 +0800</pubDate><description><![CDATA[在 MySQL 的性能优化体系里，索引是最重要、也最容易被误用的一环。很多慢查询并不是因为 SQL 写得有多复杂，而是因为没有合理使用索引；也有很多线上事故，表面看是“数据库慢了”，本质上却是索引设计不合理、查询条件失效、索引过多导致写入性能下降。如果把数据库比作图书馆，那么表数据就是一本本书，索引就是目录。没有目录，你要找一本书只能一本本翻；有了目录，你可以迅速定位到目标内容。但目录也不是越多越好，目录太多不仅占空间，还会让每次新增、修改、删除都变慢。索引（Index）是一种帮助数据库快速定位数据。]]></description><category></category></item><item><title><![CDATA[JDK中Map接口的底层实现]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/160143889</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/160143889</guid><author>panzer_maus</author><pubDate>Tue, 14 Apr 2026 14:50:45 +0800</pubDate><description><![CDATA[HashMapnullnullHashMapTreeMapnullHashtablenullnull：其他实现要么扩展它的结构（如额外维护链表），要么换用不同的内部结构（如TreeMap使用红黑树）。则在HashMap思路之上加入并发控制、细粒度锁，从而在多线程下仍能提供可扩展的性能。]]></description><category></category></item><item><title><![CDATA[工厂模式、代理模式与单例模式的介绍]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/159891855</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/159891855</guid><author>panzer_maus</author><pubDate>Tue, 07 Apr 2026 16:24:42 +0800</pubDate><description><![CDATA[设计模式是软件开发中经过验证的解决方案，它们帮助我们解决常见的软件设计问题。单例模式（Singleton Pattern）工厂模式（Factory Pattern）和代理模式（Proxy Pattern）。单例模式是创建型设计模式，其核心思想是确保一个类只有一个实例，并提供一个全局访问点。这种模式在需要控制资源访问、避免重复创建对象等场景中非常有用。核心特点唯一性：一个类只能创建一个实例对象全局访问：通过静态方法获取实例，整个应用程序共享该实例延迟加载（可选）：在需要时才创建实例，节省资源。]]></description><category></category></item><item><title><![CDATA[Mysql中的undo log和redo log, bin log的介绍]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/159391618</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/159391618</guid><author>panzer_maus</author><pubDate>Tue, 24 Mar 2026 10:51:56 +0800</pubDate><description><![CDATA[MySQL通过三种日志机制实现数据安全：undolog记录事务操作用于回滚，保证原子性；redolog采用WAL机制先写日志后持久化，确保崩溃恢复；binlog记录逻辑变更，支持主从复制。主从复制包含同步（全部从库确认）、异步（不等待）和半同步（部分从库确认）三种策略，其中半同步在1主2从时只需1个从库确认即可，兼顾性能与可靠性。日志机制与复制策略共同保障了MySQL的数据一致性和高可用性。]]></description><category></category></item><item><title><![CDATA[死锁的产生与解决]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/159167785</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/159167785</guid><author>panzer_maus</author><pubDate>Tue, 17 Mar 2026 17:13:33 +0800</pubDate><description><![CDATA[互斥使⽤: 即当资源被⼀个线程使⽤(占有)时，别的线程不能使⽤不可抢占: 资源请求者不能强制从资源占有者⼿中夺取资源，资源只能由资源占有者主动释放。请求和保持: 即当资源请求者在请求其他的资源的同时保持对原有资源的占有。循环等待: 即存在⼀个等待队列：P1占有P2的资源，P2占有P3的资源，P3占有P1的资源。这样就形成了⼀个等待环路。]]></description><category></category></item><item><title><![CDATA[如何保证多线程安全]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/159085035</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/159085035</guid><author>panzer_maus</author><pubDate>Mon, 16 Mar 2026 16:09:46 +0800</pubDate><description><![CDATA[关于安全的判定是指: 在多线程环境下执行的结果, 与在单线程下执行的结果保持一致即可认为是安全的。]]></description><category></category></item><item><title><![CDATA[Java多线程介绍]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/159052353</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/159052353</guid><author>panzer_maus</author><pubDate>Sat, 14 Mar 2026 21:09:58 +0800</pubDate><description><![CDATA[1.所有数据存储在"主内存中", 当线程需要进行数据操作时要先将数据从"主内存"中拿出来.2.线程拥有自己的"工作内存", 线程将数据从"主内存"中拿出来后存放到自己的"工作内存", 进行处理当结束之后再将数据存回"主内存"中.利用这种内存机制,我们就可以解决多线程所引起的问题。]]></description><category></category></item><item><title><![CDATA[线程的创建与启动等问题]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/157584197</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/157584197</guid><author>panzer_maus</author><pubDate>Mon, 02 Feb 2026 18:20:46 +0800</pubDate><description><![CDATA[volatile关键字用于修饰变量，当一个线程修改了volatile修饰的变量的值，其他线程能够立即看到最新的值，从而避免了线程之间的数据不一致。在创建线程时需要重写线程的run()方法相当于只是给线程写了一个要执行的逻辑,  然后再调用start()方法才能运行线程执行代码.这个用volatile变量作为线程的执行条件, 当这个变量发生改变时就停止这个线程的运行.通过继承Java的Thread类来创建线程。Java中的线程池也可以创建线程。]]></description><category></category></item><item><title><![CDATA[分布式锁的概念]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/157544486</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/157544486</guid><author>panzer_maus</author><pubDate>Sat, 31 Jan 2026 14:19:18 +0800</pubDate><description><![CDATA[在分布式系统中, 每个服务器都是一个单独的进程, 因为进程之间的执行顺序又是随机的, 很容易导致严重问题.以买票系统为例, 如果没有分布式锁的话, 由于进程的随机性,  可能会导致一张票卖给两个人引发"超卖"问题. 所以引入分布式锁来解决:用Redis进行"加锁"的具体流程。]]></description><category></category></item><item><title><![CDATA[Redis介绍(10)-缓存]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/157508765</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/157508765</guid><author>panzer_maus</author><pubDate>Thu, 29 Jan 2026 16:18:45 +0800</pubDate><description><![CDATA[Redis的用途广泛, 但最常用的用途是用于数据库中作为"缓存", 因为数据库的访问数据慢, 而Redis将数据存放在内存中等优点, 很适合作为数据库的缓存进行快速访问数据。]]></description><category></category></item><item><title><![CDATA[Redis介绍(9)-集群(2)]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/157470169</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/157470169</guid><author>panzer_maus</author><pubDate>Wed, 28 Jan 2026 15:38:30 +0800</pubDate><description><![CDATA[集群中的各个节点都会用心跳包来判断节点是否故障。]]></description><category></category></item><item><title><![CDATA[Redis介绍(8)-集群(1)]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/157401384</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/157401384</guid><author>panzer_maus</author><pubDate>Tue, 27 Jan 2026 14:50:47 +0800</pubDate><description><![CDATA[分布式系统中, 常常因为数据量过多而导致储存空间不够的情况, 此时我们需要引入多个主节点存储数据;例如一共又1tb的数据, 用一个主节点承担1tb的数据成本太大, 所以我们引入了四个主节点, 每个主节点各自承担256g的数据. 并为每个主节点配置多个从节点, 这样就大大减少了内存成本.]]></description><category></category></item><item><title><![CDATA[Redis介绍(7)-哨兵机制]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/157326910</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/157326910</guid><author>panzer_maus</author><pubDate>Sun, 25 Jan 2026 14:27:20 +0800</pubDate><description><![CDATA[当主节点因意外下线时, 从节点虽然可以继续接收读取数据的请求, 但无法晋升为主节点, 无法代替主节点的功能, 需要手动将从节点进行晋升, 十分麻烦. 而解决了这一问题。]]></description><category></category></item><item><title><![CDATA[Redis介绍(6)-主从复制(2)]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/157293928</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/157293928</guid><author>panzer_maus</author><pubDate>Sat, 24 Jan 2026 14:09:50 +0800</pubDate><description><![CDATA[如图是主从复制的步骤流程。]]></description><category></category></item><item><title><![CDATA[Redis介绍(5)-主从复制(1)]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/157251698</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/157251698</guid><author>panzer_maus</author><pubDate>Fri, 23 Jan 2026 15:31:18 +0800</pubDate><description><![CDATA[在分布式系统中, 往往会遇到"单节点"问题, 这个问题是指: 在一台物理服务器上, 只有一个服务器程序运行. 这样导致的问题包括但不限于: 处理请求并发量降低. 当一个服务器崩溃时,业务流程将中断造成不可逆的损失.将所有的服务器程序分为"主"和"从"两种服务器.1. 在配置⽂件中加⼊ slaveof {masterHost} {masterPort} 随 Redis 启动⽣效。2. 在 redis-server 启动命令时加⼊ --slaveof {masterHost} {masterPort} ⽣效。]]></description><category></category></item><item><title><![CDATA[Redis介绍(4)-认识Redis的事务]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/157212141</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/157212141</guid><author>panzer_maus</author><pubDate>Wed, 21 Jan 2026 20:22:26 +0800</pubDate><description><![CDATA[Redis虽然是"非关系型数据库"但也存在"事务"的概念. 我们可以以MySql数据库的事务特点来进行对比学习。]]></description><category></category></item><item><title><![CDATA[Redis的简单介绍(2)-处理过期Key的策略]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/156488910</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/156488910</guid><author>panzer_maus</author><pubDate>Wed, 21 Jan 2026 12:23:11 +0800</pubDate><description><![CDATA[当为Redis的某一个Key设置了一个过期时间. 当过期时间到了的时候, Redis是怎么知道哪些Key过期了并用什么方法删除这些Key的呢?主要有两种方式来进行删除。]]></description><category></category></item><item><title><![CDATA[Redis简单介绍(3)-持久化的实现]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/157132732</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/157132732</guid><author>panzer_maus</author><pubDate>Tue, 20 Jan 2026 18:31:24 +0800</pubDate><description><![CDATA[因为Redis是将数据存放在内存中的, 而内存中的数据是容易丢失的,使用持久化可以有效地避免因进程退出造成数据丢失问题, 当下次重启时利⽤之前持久化的⽂件即可实现数据恢复。]]></description><category></category></item><item><title><![CDATA[分布式系统的简单介绍(1)]]></title><link>https://blog.youkuaiyun.com/panzer_maus/article/details/156489717</link><guid>https://blog.youkuaiyun.com/panzer_maus/article/details/156489717</guid><author>panzer_maus</author><pubDate>Sun, 18 Jan 2026 12:40:26 +0800</pubDate><description><![CDATA[分布式系统虽然提升了系统的运行速度, 但系统的复杂性大量提高,日常的维护需要大量人力,物力.]]></description><category></category></item></channel></rss>