<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Wisimer]]></title><description><![CDATA[快马加鞭 高歌猛进]]></description><link>https://blog.csdn.net/Wisimer</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; Wisimer]]></copyright><item><title><![CDATA[《编程高手务实手册-开篇》]]></title><link>https://blog.csdn.net/Wisimer/article/details/144350551</link><guid>https://blog.csdn.net/Wisimer/article/details/144350551</guid><author>Wisimer</author><pubDate>Mon, 09 Dec 2024 16:04:41 +0800</pubDate><description><![CDATA[《编程高手务实手册》是我这么多年学习工作的抽象和总结出来的方法论以及具体执行指南，有的内容是我实践思考得出，有的内容是大量广泛阅读获取。其实一开始想的名字叫《架构师务实手册》，因为手册里有一个大的部分是专门讲架构师相关的内容的。但是后来想想还是算了，还是“务实”一点吧。]]></description><category></category></item><item><title><![CDATA[家用云相册方案探索之Immich]]></title><link>https://blog.csdn.net/Wisimer/article/details/143646077</link><guid>https://blog.csdn.net/Wisimer/article/details/143646077</guid><author>Wisimer</author><pubDate>Sat, 09 Nov 2024 17:01:43 +0800</pubDate><description><![CDATA[Immich+Lanproxy搭建外网可用家庭相册]]></description><category></category></item><item><title><![CDATA[红黑树的插入过程]]></title><link>https://blog.csdn.net/Wisimer/article/details/128264915</link><guid>https://blog.csdn.net/Wisimer/article/details/128264915</guid><author>Wisimer</author><pubDate>Sat, 10 Dec 2022 15:10:23 +0800</pubDate><description><![CDATA[红黑树的插入过程]]></description><category></category></item><item><title><![CDATA[人肉索引优化器]]></title><link>https://blog.csdn.net/Wisimer/article/details/127310551</link><guid>https://blog.csdn.net/Wisimer/article/details/127310551</guid><author>Wisimer</author><pubDate>Thu, 13 Oct 2022 22:10:09 +0800</pubDate><description><![CDATA[一文搞懂explain中extra的提示]]></description><category></category></item><item><title><![CDATA[如何讲明白技术]]></title><link>https://blog.csdn.net/Wisimer/article/details/126714178</link><guid>https://blog.csdn.net/Wisimer/article/details/126714178</guid><author>Wisimer</author><pubDate>Mon, 05 Sep 2022 21:47:47 +0800</pubDate><description><![CDATA[技术是为了解决问题而生的。本质上，技术就是解决问题的方法。问题规模越大，难度越复杂，就要引入多种技术。这些技术组合搭配起来，构成该解决方案的一棵“技术树”。其实，每一个分支和叶子都有多种可选的技术，随着更多的创新出现，这些分支和叶子也在演变，使得整体方案在空间和时间上，能更高效更节省地解决问题。我们对这些分支和叶子技术点的了解和运用，甚至对它们演变的推动，都体现了我们的经验和技能。]]></description><category></category></item><item><title><![CDATA[加权随机算法]]></title><link>https://blog.csdn.net/Wisimer/article/details/126573007</link><guid>https://blog.csdn.net/Wisimer/article/details/126573007</guid><author>Wisimer</author><pubDate>Sun, 28 Aug 2022 20:35:12 +0800</pubDate><description><![CDATA[加权随机算法]]></description><category></category></item><item><title><![CDATA[UTF-8 吧啦吧啦]]></title><link>https://blog.csdn.net/Wisimer/article/details/121907359</link><guid>https://blog.csdn.net/Wisimer/article/details/121907359</guid><author>Wisimer</author><pubDate>Mon, 13 Dec 2021 16:04:25 +0800</pubDate><description><![CDATA[Unicode编码的诞生，是为了解决之前各国的计算机文字编码自成一体的问题。不同国家采用不同的编码，自己用还算正常，但是跨文化交流必然会出问题，更无法解决“在同一篇文档里又要显示中文又要显示韩文还要显示日文”之类的问题。
但是Unicode(有个相关的名字是UCS，Universal Coded Character Set，二者基本等价)只确定了码值，或者说，只分配了逻辑代号。至于这些逻辑代号在实际使用中如何存储，如何传输，那是另一个问题。而UTF-8，就是解决存储和传输等问题的“实际方案”。UTF的全名是]]></description><category></category></item><item><title><![CDATA[Redis 哨兵模式和集群模式中的选主流程]]></title><link>https://blog.csdn.net/Wisimer/article/details/119564211</link><guid>https://blog.csdn.net/Wisimer/article/details/119564211</guid><author>Wisimer</author><pubDate>Sun, 03 Oct 2021 10:38:18 +0800</pubDate><description><![CDATA[文章目录一、Paxos 算法二、Raft 算法三、哨兵模式的选主流程四、集群模式的选主流程
一、Paxos 算法
Paxos 算法是一种分布式一致性算法，所谓的分布式一致性算法就是在分布式系统中，可以保证多个节点中数据的值是一致的的算法。
为什么需要一致性

数据不能存在单个节点（主机）上，否则可能出现单点故障。
多个节点（主机）需要保证具有相同的数据。
一致性算法就是为了解决上面两个问题。

Paxos 是一种强一致性算法，又可以分为：

Basic Paxos
Multi Paxos

二、Raft 算]]></description><category></category></item><item><title><![CDATA[Drone配合Gogs实现持续集成]]></title><link>https://blog.csdn.net/Wisimer/article/details/116203786</link><guid>https://blog.csdn.net/Wisimer/article/details/116203786</guid><author>Wisimer</author><pubDate>Tue, 27 Apr 2021 19:28:00 +0800</pubDate><description><![CDATA[Gogs 是一个轻量级Git仓库。Drone是一款基于容器技术的持续集成工具，使用简单的YAML配置文件即可完成复杂的自动化构建、测试、部署任务。
1. 可以直接使用docker-compose安装启动
新建文件docker-compose.yml :
version: "3.8"

services:
  gogs:
    image: gogs/gogs
    container_name: my-gogs
    restart: always
    networks:
      dronen]]></description><category></category></item><item><title><![CDATA[Redis 中的底层数据结构：SkipList]]></title><link>https://blog.csdn.net/Wisimer/article/details/115943332</link><guid>https://blog.csdn.net/Wisimer/article/details/115943332</guid><author>Wisimer</author><pubDate>Wed, 21 Apr 2021 12:39:09 +0800</pubDate><description><![CDATA[SkipList 是zset的底层实现之一，它的数据结构定义如下：
typedef struct zskiplistNode {
	//层
	struct zskiplistLevel {
		//前进指针
		struct zskiplistNode *forward;
		//跨度
		unsigned int span;
	} level[];
	
	//后退指针
	struct zskiplistNode *backward;
	//分值
	double score;
	//成员对象
	robj *]]></description><category></category></item><item><title><![CDATA[面试题：如何计算InnoDB中B+树索引的层高]]></title><link>https://blog.csdn.net/Wisimer/article/details/115872454</link><guid>https://blog.csdn.net/Wisimer/article/details/115872454</guid><author>Wisimer</author><pubDate>Mon, 19 Apr 2021 21:13:34 +0800</pubDate><description><![CDATA[假设有一张user表中有200万条数据，表结构如下：
create table user(
  `id` bigint(64) NOT NULL COMMENT 'id主键',
  `user_name` varchar(64) DEFAULT NULL COMMENT '用户名'
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

bigint 长度为 8 字节，指针大小在 I]]></description><category></category></item><item><title><![CDATA[RPC原理以及手写实现一个简单的RPC框架]]></title><link>https://blog.csdn.net/Wisimer/article/details/115698887</link><guid>https://blog.csdn.net/Wisimer/article/details/115698887</guid><author>Wisimer</author><pubDate>Thu, 15 Apr 2021 11:37:50 +0800</pubDate><description><![CDATA[一、RPC原理
一次完整的RPC过程（同步调用）如下图所示：

（1）服务消费方（client）以本地调用的方式调用服务；
（2）client stub 接收到调用后，负责将方法、参数等信息组装成能够进行网络传输的消息体；
（3）client stub 将消息发送给服务端；
（4）server stub 将收到的消息进行解码；
（5）server stub 将解码后的方法、参数等信息传递给本地服务；
（6）本地服务调用实际方法返回结果给 server stub；
（7）server stub 将返回结果打包]]></description><category></category></item><item><title><![CDATA[面试题：Java 线程的状态及其转换]]></title><link>https://blog.csdn.net/Wisimer/article/details/115680622</link><guid>https://blog.csdn.net/Wisimer/article/details/115680622</guid><author>Wisimer</author><pubDate>Tue, 13 Apr 2021 22:13:26 +0800</pubDate><description><![CDATA[Java线程在运⾏的声明周期中可能处于6种不同的状态，在给定的⼀个时刻，线程只能处于其中的⼀个状态：



THE END.

]]></description><category></category></item><item><title><![CDATA[面试题：SpringBoot 自动装配原理]]></title><link>https://blog.csdn.net/Wisimer/article/details/115679057</link><guid>https://blog.csdn.net/Wisimer/article/details/115679057</guid><author>Wisimer</author><pubDate>Tue, 13 Apr 2021 21:42:35 +0800</pubDate><description><![CDATA[1. @SpringBootApplication注解
首先，我们都知道SpringBoot程序的入口是通过@SpringBootApplication注解修饰的一个类，例如：
@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigApplication.class, args);
    }
]]></description><category></category></item><item><title><![CDATA[Redis 主从复制功能和部分重同步的实现]]></title><link>https://blog.csdn.net/Wisimer/article/details/115674351</link><guid>https://blog.csdn.net/Wisimer/article/details/115674351</guid><author>Wisimer</author><pubDate>Tue, 13 Apr 2021 18:47:00 +0800</pubDate><description><![CDATA[旧版复制功能在处理断线复制情况时，会重复复制之前已经复制过的部分数据，造成效率低下问题。Redis从2.8版本开始，使用PSYNC命令替代了旧版的SYNC命令来执行复制操作。
PSYNC命令具有完整重同步（full synchronization）和部分重同步两种模式（partial synchronization）：

完整重同步：处理初次复制情况，从服务器（Slave）先让主服务器（Master）创建并发送RDB文件，然后再将主服务器的缓冲区里的命令发送给从服务器，以此完成同步；
部分重同步：用于处理断]]></description><category></category></item><item><title><![CDATA[MySQL中JOIN关键字原理]]></title><link>https://blog.csdn.net/Wisimer/article/details/115661136</link><guid>https://blog.csdn.net/Wisimer/article/details/115661136</guid><author>Wisimer</author><pubDate>Tue, 13 Apr 2021 13:35:53 +0800</pubDate><description><![CDATA[一、JOIN 简介
JOIN 用于根据两个或多个表中的列之间的关系，从这些表中查询数据。例如我们可以通过JOIN来从用户表和订单表两个表中获取数据：
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName

JOIN类型分为以下几种：

JOIN: 如果表中有至少一个匹配，则]]></description><category></category></item><item><title><![CDATA[面试题：热Key的发现和解决]]></title><link>https://blog.csdn.net/Wisimer/article/details/115624390</link><guid>https://blog.csdn.net/Wisimer/article/details/115624390</guid><author>Wisimer</author><pubDate>Mon, 12 Apr 2021 21:52:20 +0800</pubDate><description><![CDATA[其实热key问题说来也很简单，就是瞬间有几十万的请求去访问某一台Redis（或MySQL）服务器上某个固定的key，这样会造成流量过于集中，达到物理网卡上限，从而导致这台服务器宕机。那么这个key的请求，要么直接打到数据库上，要么就是由于MySQL服务器宕机导致请求失效。
一、热Key发现
发现热Key的方法主要包括如下几个：
1. 凭借业务经验，进行预估哪些是热key
其实这个方法还是挺有可行性的。比如某商品在做秒杀，那这个商品的key就可以判断出是热key。缺点很明显，并非所有业务都能预估出哪些key是]]></description><category></category></item><item><title><![CDATA[面试题：Spring的 IOC和DI 的本质理解]]></title><link>https://blog.csdn.net/Wisimer/article/details/115619276</link><guid>https://blog.csdn.net/Wisimer/article/details/115619276</guid><author>Wisimer</author><pubDate>Mon, 12 Apr 2021 14:00:35 +0800</pubDate><description><![CDATA[反转控制（Inverse of Control, IOC）思想最核心的地方就是：资源不由提供方和使用方管理，而是通过不使用资源的第三方管理。这样的好处是：

资源集中管理，实现资源的可配置和易管理。
降低了使用资源双方的依赖程度，也就是我们说的耦合度。

依赖注入（Dependency Injection）则是使用方开放接口，在它需要的时候，能够将资源传递进来(注入)。

反转控制是目的，依赖注入是手段。

通常我们在编程的时候是面向接口编程，也就是不需要关注具体的实现类。这个时候只要通过依赖注入，将需要的]]></description><category></category></item><item><title><![CDATA[面试题：Java程序中 try，catch和finall 的执行顺序以及方法返回值]]></title><link>https://blog.csdn.net/Wisimer/article/details/115618114</link><guid>https://blog.csdn.net/Wisimer/article/details/115618114</guid><author>Wisimer</author><pubDate>Mon, 12 Apr 2021 13:25:05 +0800</pubDate><description><![CDATA[1. try,catch,finally中都有return值
执行下面的程序：
import java.util.*;
public static class Test1 {
    public static void main(String []args) {
        System.out.println("Output : "+test());
    }

    public static String test(){
        try{
            System.out]]></description><category></category></item><item><title><![CDATA[Redis 中的文件事件]]></title><link>https://blog.csdn.net/Wisimer/article/details/115607692</link><guid>https://blog.csdn.net/Wisimer/article/details/115607692</guid><author>Wisimer</author><pubDate>Mon, 12 Apr 2021 11:32:35 +0800</pubDate><description><![CDATA[1. 事件
Redis服务器是一个事件驱动程序，服务器需要处理以下两种事件：

文件事件（file event）：Redis服务器通过套接字与客户端（或其他Redis服务器）连接，而文件事件就是服务器对套接字操作的抽象。服务器与客户端（或其他Redis服务器）的通信会产生相应的文件事件，而服务器则通过监听并处理这些事件来完成一系列网络通信操作。
时间时间（time event）：Redis服务器中的一些操作需要在给定的时间点执行，而时间事件就是Redis对这类操作的抽象。

2. 文件事件处理器
Redis]]></description><category></category></item></channel></rss>