<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xiaomimi1993的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xiaomimi1993</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xiaomimi1993]]></copyright><item><title><![CDATA[IOS崩溃文件符号化实践]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/129090979</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/129090979</guid><author>xiaomimi1993</author><pubDate>Sat, 18 Feb 2023 20:46:49 +0800</pubDate><description><![CDATA[实现稳定性分析功能，通过支持app崩溃信息实时采集、实时上报、实时自动解析并定位出代码问题，帮助研发同学及时定位崩溃原因并修复]]></description><category></category></item><item><title><![CDATA[TCP/IP相关拾遗]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/108589940</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/108589940</guid><author>xiaomimi1993</author><pubDate>Tue, 15 Sep 2020 08:57:15 +0800</pubDate><description><![CDATA[17-22章 TCP内部细节
IP是网络层上的主要协议，同时被TCP和UDP使用，TCP和UDP的魅族数据都通过端系统和每个中间路由器中的IP层在互联网中进行传输。
ping程序是对两个TCP/IP系统连通性性能测试的基本工具。它只利用ICMP回显请求和回显应答报文，而不用经过传输层（TCP/UDP）。ping服务器一般在内核中实现ICMP的功能。
IP路由操作对于运行TCP/IP的系统来说是基本的，不管是主机还是路由器。路由表项的内容很简单，包括：5bit标志、目的IP地址（主机、网络或默认）、下一站路由]]></description><category></category></item><item><title><![CDATA[服务器编程相关抱佛脚]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/108503184</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/108503184</guid><author>xiaomimi1993</author><pubDate>Wed, 09 Sep 2020 23:09:40 +0800</pubDate><description><![CDATA[TCP的连接建立和关闭-27
TCP 面向连接-字节流-可靠传输
TCP连接是全双工的，允许两个方向的数据传输被独立关闭。
如何保持可靠
1.建立连接
2.超时重传
3.确认机制保证数据的成功传输。每个TCP端都有一个序列号和数据完整性校验和。每个段的接收者接收到完好的段时，都会想发送者发会送小的确认分组。延迟确认算法会在一个特定的窗口时间内将输出确认存在缓冲区中，以寻找能够捎带它的输出数据分组。
TCP状态转移-40

TCP状态转移总图

TIME_WAIT状态
客户端收到结束报文之后，进入TIME_W]]></description><category></category></item><item><title><![CDATA[InnoDB存储引擎抱佛脚]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/108479669</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/108479669</guid><author>xiaomimi1993</author><pubDate>Wed, 09 Sep 2020 00:09:29 +0800</pubDate><description><![CDATA[InnoDB关键特性
插入缓冲
两次写
自适应哈希索引
异步IO
索引与算法
InnoDB存储引擎支持的常见索引：
B+树索引
目前关系型数据库系统中最常用的最为有效的索引。B+树索引并不能找到一个给定键值的具体行。能找到的是被查找数据行所在的页，然后数据库通过把页读入到内存中，再在内存中进行查找，最后得到想要查找的数据。
2.全文索引
哈希索引
InnoDB存储引擎会根据表的使用情况自动为表生成哈希索引，不能认为干预是否在一张表中生成哈希索引
B+树
B+树是为磁盘或其他直接存取辅助设备设计的一种平衡查找]]></description><category></category></item><item><title><![CDATA[redis临时抱佛脚]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/108478977</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/108478977</guid><author>xiaomimi1993</author><pubDate>Tue, 08 Sep 2020 23:18:03 +0800</pubDate><description><![CDATA[跳跃表
跳跃表节点结构定义
typedef struct zskiplistNode{
	//层
	struct zskiplistLevel{
		//前进指针
		struct zskiplistNode *forward;
		//跨度
		unsigned int span;
	} level[];
	//后退指针
	struct zskiplistNode *backward;
	//分值
	double score;
	//成员对象
	robj *obj;
}zskiplistNode;

层：]]></description><category></category></item><item><title><![CDATA[基本功能]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/108438164</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/108438164</guid><author>xiaomimi1993</author><pubDate>Sun, 06 Sep 2020 23:26:39 +0800</pubDate><description><![CDATA[链表
链表结构
typedef struct listNode{
	struct listNode *prev;
	struct listNode *next;
	void *value;
} listNode;

链表通过list定义，提供头，尾两个指针，分别指向头部的节点和尾部的阶段，提供三个函数指针，供用户窜入自定义函数，用于复制(dup)、释放（free)和匹配（match）链表中的结点的值（value）
typedef struct list{
	listNode *head;
	listNode]]></description><category></category></item><item><title><![CDATA[生产者]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/108420800</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/108420800</guid><author>xiaomimi1993</author><pubDate>Sat, 05 Sep 2020 23:27:15 +0800</pubDate><description><![CDATA[消息系统通常由生产者（producer）、消费者（consumer）和消息代理（broker）
分布式系统通常会自己实现一套负责不同节点之间数据传输的网络层通信机制，也叫做RPC框架。RPC框架会处理网络通信协议的编解码、客户端和服务端的请求发送和接收等。
新生产者客户端
生产者要发送消息，先在客户端吧消息放入队列中，然后由一个消息发送线程从队列中拉取消息，以批量的方式发送消息给服务端。kafka的记录收集器(RecordAccumulator)负责缓存生产者客户端产生的消息，发送线程（sender）负责读]]></description><category></category></item><item><title><![CDATA[kafka入门]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/108372542</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/108372542</guid><author>xiaomimi1993</author><pubDate>Wed, 02 Sep 2020 23:39:38 +0800</pubDate><description><![CDATA[同构和异构数据库
同构分布式数据库系统中，所有站点都是用相同的数据库管理系统软件，它们彼此了解，共同合作处理用户的请求。
在异构分布式数据库中，不同站点可能使用不同的模式和不同的数据库管理系统软件。站点之间彼此不了解，在合作处理事务的过程总，它们可能仅提供有限的功能。
分布式数据存储
一个要存储到数据库中的关系r。在分布式数据库中存储这个关系有两种方法：
1.复制：系统维护这个关系的几个相同的副本（拷贝），并把每个副本存储在不同的站点上。复制的替代方式是只存储关系r的一份拷贝。
2.分片：系统把关系划分为几]]></description><category></category></item><item><title><![CDATA[php基础总结]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/89766298</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/89766298</guid><author>xiaomimi1993</author><pubDate>Thu, 02 May 2019 23:37:10 +0800</pubDate><description><![CDATA[了解大部分数组处理函数
array()创建数组
array_change_key_case() 把数组中所有键更改为小写或大写
array_chunk() 把一个数组分割为新的数组块
array_column() 返回输入数组中某个单一列的值
array_combine() 通过合并两个数组来创建一个新数组
array_count_values() 用于统计数组中所有值出现的次数
array_di...]]></description><category></category></item><item><title><![CDATA[PHP开发高可用高安全APP后端 课程笔记（一）项目简介]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/88915012</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/88915012</guid><author>xiaomimi1993</author><pubDate>Sat, 30 Mar 2019 16:51:10 +0800</pubDate><description><![CDATA[高安全
授权码 sign算法
登录场景 access_user_token算法
token 唯一性支持
API 一次性请求支持
高可用
restful api开发全过程
web登录和APP登录一同簇
APP本地时间和服务器时间一致性解决方案
不可预知的API内部异常解决方案
APP版本升级解决方案
利用七牛云解决图片处理基础服务能力
基础类库的封装
部分php设计模式的穿透
部分模块提供多种解决方...]]></description><category></category></item><item><title><![CDATA[mac下安装yii]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/84885853</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/84885853</guid><author>xiaomimi1993</author><pubDate>Fri, 07 Dec 2018 19:11:58 +0800</pubDate><description><![CDATA[1.首先是安装Compose
curl -sS https://getcomposer.org/installer | php
2.下载后Compose的存放路径是/Users/apple/composer，需要把composer文件放到/usr/local/bin/下，执行下列命令完成此操作
sudo mv composer.phar /usr/local/bin/composer
安装好com...]]></description><category></category></item><item><title><![CDATA[leetcode为了准备面试系列]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/82391633</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/82391633</guid><author>xiaomimi1993</author><pubDate>Tue, 04 Sep 2018 22:29:43 +0800</pubDate><description><![CDATA[我的博客就是三天打鱼两天晒网了，最近比较幸运下周六有面试惹，下周六面试要手撕代码，我这个算法渣再抱几天佛脚了，每天刷5题，主要集中在链表、树和数组这三部分，加油鸭！ 
9.4号5题记录（晚上刚从北京回来，只写了3题）

19. 删除链表的倒数第N个节点

给定一个链表，删除链表的倒数第 n 个节点，并且返回链表的头结点。

示例：

给定一个链表: 1-&amp;amp;amp;amp;amp;amp;amp;gt;2-&amp;amp;amp;amp;amp;amp;amp;gt;3-&amp;amp;a]]></description><category></category></item><item><title><![CDATA[标准库提供的字符串处理函数]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/81977580</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/81977580</guid><author>xiaomimi1993</author><pubDate>Thu, 23 Aug 2018 11:18:05 +0800</pubDate><description><![CDATA[strlen

strlen()计算字符数组的字符数，以’\0’以标志结束，计算不为’\0’的数据元素个数。 
自定义函数实现strlen的功能是：



int strlen(const char* str){
    assert(str != NULL);
    int len = 0;
    while((*str++) != '\0')
        len++;
    retu...]]></description><category></category></item><item><title><![CDATA[leetcode 动态规划+滑动空间]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/81909500</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/81909500</guid><author>xiaomimi1993</author><pubDate>Tue, 21 Aug 2018 20:34:42 +0800</pubDate><description><![CDATA[为了能过笔试，为了能有offer，真的是拼了.感觉leetcode上题目的类型划分不是很精确呢，这个动态规划系列是A了一道上台阶的题目，按照下面联想的相关题目写的呢，可是感觉好像有的题目不是很动态规划呢。大概是我对动态规划理解不清晰吧。

523. Continuous Subarray Sum

Given a list of non-negative numbers and a target ...]]></description><category></category></item><item><title><![CDATA[leetcode 字符串匹配]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/81906724</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/81906724</guid><author>xiaomimi1993</author><pubDate>Tue, 21 Aug 2018 14:18:21 +0800</pubDate><description><![CDATA[792. Number of Matching Subsequences

Given string S and a dictionary of words words, find the number of words[i] that is a subsequence of S.

Example : 
Input:  
S = “abcde” 
words = [“a”, “bb”, “acd...]]></description><category></category></item><item><title><![CDATA[leetcode 贪心系列]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/81874329</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/81874329</guid><author>xiaomimi1993</author><pubDate>Mon, 20 Aug 2018 17:07:34 +0800</pubDate><description><![CDATA[啊，找工作快要虐死我了啊，笔试都过不了要死惹，我好不容易把BFS、DFS弄会了，后面遇到的笔试题全都是贪心啊，是要整死我啊，哭唧唧。

452. Minimum Number of Arrows to Burst Balloons

There are a number of spherical balloons spread in two-dimensional space. For each ...]]></description><category></category></item><item><title><![CDATA[查找]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/81783401</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/81783401</guid><author>xiaomimi1993</author><pubDate>Mon, 20 Aug 2018 15:45:30 +0800</pubDate><description><![CDATA[什么是文件系统

　　文件系统是结构化管理块设备上的数据的机制。它通过文件和目录等概念，使管理设备上的数据成为可能。 
　　在利用块设备的文件系统前需要对其进行挂载。



inode

文件用来管理块设备上的块集合，它由两部分构成，定义文件的inode和该文件包含的数据。inode管理文件大小、访问权限、保存数据的块设备的快编号等信息。系统内核将inode从块设备读取至内存时，为了便于操作，对其...]]></description><category></category></item><item><title><![CDATA[图遍历算法的应用]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/81810949</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/81810949</guid><author>xiaomimi1993</author><pubDate>Sat, 18 Aug 2018 17:24:05 +0800</pubDate><description><![CDATA[1.判断图的连通性

图的遍历算法可以用来判断图的连通性。如果一个无向图是联通的，如果无向图是联通的，则从任一节点出发，仅需一次遍历就可以访问图中的所有节点。如果无向图是非联通的，则从某一节点出发，一次遍历仅能访问到该顶点所在联通分量的所有顶点，而对于图中其他联通分量的顶点，则无法通过这次遍历访问。对于有向图来说，若从初始点到图中的每个顶点都有路径，则能够访问到图中的所有顶点，否则不能访问到所有顶...]]></description><category></category></item><item><title><![CDATA[B树]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/81780371</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/81780371</guid><author>xiaomimi1993</author><pubDate>Fri, 17 Aug 2018 17:10:21 +0800</pubDate><description><![CDATA[B树是为磁盘或其他直接存取的辅助设备而设计的一种平衡搜索树。



B树的定义

一颗B树T是具有以下性质的有根树（根为T.root): 
1.每个结点x有下面属性： 
a) x.n，当前存储在结点x中的关键字个数 
b）x.n个关键字本身x.key1, x.key2,…, 以非降序存放，使得x.key1≤x.key2≤…≤x.keyx.n 
c）x.leaf，一个布尔值，如果x是叶节点，则为TR...]]></description><category></category></item><item><title><![CDATA[排序算法总结]]></title><link>https://blog.youkuaiyun.com/xiaomimi1993/article/details/81711885</link><guid>https://blog.youkuaiyun.com/xiaomimi1993/article/details/81711885</guid><author>xiaomimi1993</author><pubDate>Thu, 16 Aug 2018 21:15:09 +0800</pubDate><description><![CDATA[算法的稳定性：如果待排序表中有两个元素Ri，Rj，其对应的关键字keyi = keyj，且排序前Ri在Rj前面，如果使用某一排序算法后，Ri仍然在Rj前面，则称这个排序算法是稳定的。

插入排序

其基本思想是每次将一个待排序的记录，按其关键字大小插入到前面已经排好序的子序列中，直到全部记录插入完成。 
插入排序的思想可以引申出两个重要的排序算法：直接插入排序和希尔排序

直接插入排序（稳定）

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