<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Kieran_s的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Kieran_s</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Kieran_s]]></copyright><item><title><![CDATA[解决postGis无法打开的问题]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/141017455</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/141017455</guid><author>Kieran_s</author><pubDate>Thu, 08 Aug 2024 09:21:23 +0800</pubDate><description><![CDATA[解决postgis无法解决的问题]]></description><category></category></item><item><title><![CDATA[nohub与java -jar的区别]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/137719968</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/137719968</guid><author>Kieran_s</author><pubDate>Sat, 13 Apr 2024 17:23:20 +0800</pubDate><description><![CDATA[nohup跟java -jar的区别]]></description><category></category></item><item><title><![CDATA[Redis提供两种持久化机制RDB和AOF机制]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/137711706</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/137711706</guid><author>Kieran_s</author><pubDate>Sat, 13 Apr 2024 11:47:47 +0800</pubDate><description><![CDATA[redis的ROB、与AOF]]></description><category></category></item><item><title><![CDATA[redis的缓存击穿、缓存穿透、缓存雪崩]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/137695164</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/137695164</guid><author>Kieran_s</author><pubDate>Fri, 12 Apr 2024 21:44:13 +0800</pubDate><description><![CDATA[解决redis的缓存击穿、缓存雪崩、缓存雪崩]]></description><category></category></item><item><title><![CDATA[3、Redis底层原理（持久化+分布式锁）]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/131710847</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/131710847</guid><author>Kieran_s</author><pubDate>Thu, 13 Jul 2023 20:21:11 +0800</pubDate><description><![CDATA[redis的持久化及分布式锁]]></description><category></category></item><item><title><![CDATA[2、Redis高级特性和应用(发布 订阅、Stream)]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/131710817</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/131710817</guid><author>Kieran_s</author><pubDate>Thu, 13 Jul 2023 20:19:35 +0800</pubDate><description><![CDATA[redis的高级特性和应用]]></description><category></category></item><item><title><![CDATA[1、Redis入门与应用]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/131710797</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/131710797</guid><author>Kieran_s</author><pubDate>Thu, 13 Jul 2023 20:18:35 +0800</pubDate><description><![CDATA[1970 年布隆提出了一种布隆过滤器的算法，用来判断一个元素是否在一个集合中。这种算法由一个二进制数组和一个 Hash 算法组成。本质上布隆过滤器是一种数据结构，比较巧妙的概率型数据结构（probabilistic data structure），特点是高效地插入和查询，可以用来告诉你 “某样东西一定不存在或者可能存在”。相比于传统的 List、Set、Map 等数据结构，它更高效、占用空间更少，但是缺点是其返回的结果是概率性的，而不是确切的。]]></description><category></category></item><item><title><![CDATA[Spring设计模式及部分技术讲解]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/131710728</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/131710728</guid><author>Kieran_s</author><pubDate>Thu, 13 Jul 2023 20:17:03 +0800</pubDate><description><![CDATA[spring设计模式及一些技术点]]></description><category></category></item><item><title><![CDATA[简述synchronized与volatile]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/124392340</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/124392340</guid><author>Kieran_s</author><pubDate>Sun, 24 Apr 2022 22:31:52 +0800</pubDate><description><![CDATA[简述synchronized与volatile]]></description><category></category></item><item><title><![CDATA[二分查找法]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/122488718</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/122488718</guid><author>Kieran_s</author><pubDate>Fri, 14 Jan 2022 11:01:04 +0800</pubDate><description><![CDATA[一、使用前提

数据已经按照升序排列！

二、基本原理

将要查找的元素（key）与数组的中间元素比较

  如果key小于中间元素，只需要在数组的前一半元素中继续查找
	  如果key和中间元素相等，匹配成功，查找结束
	  如果key大于中间元素，只需要在数组的后一半元素中继续查找key
三、实践（low+high）/2

low：最小值
mid：中位数
high：最大值
数据如下图所示：


查找的元素：key = 5；
key=5 与中位数 数组下标为[6]的元素比较，5&l...]]></description><category></category></item><item><title><![CDATA[kafka基本命令]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/121858787</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/121858787</guid><author>Kieran_s</author><pubDate>Fri, 10 Dec 2021 16:30:02 +0800</pubDate><description><![CDATA[1、启动服务器


	启动zookeeper
	
    Kafka 使用ZooKeeper如果你还没有ZooKeeper服务器，你需要先启动一个ZooKeeper服务器。 您可以通过与kafka打包在一起的便捷脚本来快速简单地创建一个单节点ZooKeeper实例。


 bin/zookeeper-server-start.sh config/zookeeper.properties
[2013-04-22 15:01:37,495] INFO Reading configuration fr...]]></description><category></category></item><item><title><![CDATA[tomcat实现https]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/120842016</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/120842016</guid><author>Kieran_s</author><pubDate>Tue, 19 Oct 2021 11:02:21 +0800</pubDate><description><![CDATA[1、创建证书

    进入tomcat的conf文件夹


cd /usr/share/tomcat9/conf

//创建证书
keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/tomcat.keystore -validity 36500

//(参数简要说明：“D:\home\tomcat.keystore”含义是将证书文件的保存路径，证书文件名称是tomcat.keystore ；“-validity...]]></description><category></category></item><item><title><![CDATA[nginx 实现负载均衡]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/120561146</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/120561146</guid><author>Kieran_s</author><pubDate>Thu, 30 Sep 2021 10:14:48 +0800</pubDate><description><![CDATA[一、环境
   server1，安装nginx、tomcat
   server2，安装tomcat

二、nginx配置


	upstream  backend {   
	    server    192.168.60.233 weight=1;  
	    server    192.168.40.215 weight=2;
	}     

	server {  
	    listen       80;
            listen       [::]:80;
 ...]]></description><category></category></item><item><title><![CDATA[MySQL MVCC机制解析]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/119924460</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/119924460</guid><author>Kieran_s</author><pubDate>Thu, 26 Aug 2021 15:51:49 +0800</pubDate><description><![CDATA[1、MVCC机制

多版本并发控制机制，专门控制多个事物并发运行的时候，互相之间会如何影响。

MVCC机制 = undo log多本本链条+ReadView机制

1）ReadView：执行一个事务，会生成一个ReadView

关键的四个字段

m_ids：有哪些事务在MySQL里执行还没提交
	min_trx_id：m_ids里最小的值
	max_trx_id：mysql下一个要生成的事务id，最大的事务id
	creator_trx_id：现在事务的id
假设原来数据库有一行数据，事务id是32，他]]></description><category></category></item><item><title><![CDATA[MySQL undo版本链解析]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/119924156</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/119924156</guid><author>Kieran_s</author><pubDate>Thu, 26 Aug 2021 09:29:31 +0800</pubDate><description><![CDATA[数据库的每条字段都有两个隐藏字段，一个是trx_id，一个是roll_pointer，trx_id是最近一次更新事务的id，roll_pointer指向更新这个事务之前生成的undo log。

举例：假设有一个事务A（id=50），插入一条数据，此时这条数据的隐藏字段以及指向的undo log 如下图所示，插入的这条数据的值是值A，因为事务A的id是50，所以这条数据的txr_id就是50，roll_pointer指向一个空的undo log，因为在id=50之前是没有数据的。



如果有一个事务B修.]]></description><category></category></item><item><title><![CDATA[事务的4个隔离级别]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/119912022</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/119912022</guid><author>Kieran_s</author><pubDate>Wed, 25 Aug 2021 15:28:11 +0800</pubDate><description><![CDATA[1、RU（read uncommitted）：读未提交

不允许发生脏写，可能发生脏读、不可重复读，幻读。两个事务不可能没提交的情况下更新同一行数据。

2、RC（read committed）：读已提交

不允许发生脏写，脏读，可能发生不可重复读，幻读。事务没提交的情况下修改的值，绝对读不到。

3、RR（rpeatable read）：可重复读

不允许发生脏写、脏读，不可能重复读，可能发生幻读。事务一单开始，多查询一个值，会一直读到同一个值。

4、serializable：串行化

不允许事务并发执]]></description><category></category></item><item><title><![CDATA[MySQL的脏写、脏读、不可重复读、幻读 解读]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/119910733</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/119910733</guid><author>Kieran_s</author><pubDate>Wed, 25 Aug 2021 15:03:58 +0800</pubDate><description><![CDATA[1、脏写

两个事务没提交的状况下，都修改统一条数据，结果一个事务回滚了，把另外一个事务修改的值也撤销了，所谓脏写就是两个事务没提交状态下修改同一个值。

示例：事务A和事务B同事在更新一条数据，事务A先把他更新为A值，事务B紧接着就把他更新为B值，如下图所示：



事务A先更新数据值为A，事务B再更新数据值为B，此时事务A突然回滚，回滚为A之前的数据



因为事务A回滚数据导致事务B的值也变回了A之前的数据

2、脏读

你修改了一条数据的值，还没有提交，另一个事务就读到了你修改的值，然后你回滚了，.]]></description><category></category></item><item><title><![CDATA[MySQL的free、flush、LRU链表]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/119892684</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/119892684</guid><author>Kieran_s</author><pubDate>Tue, 24 Aug 2021 17:26:24 +0800</pubDate><description><![CDATA[1、各个链表的作用

free链表：存放空的缓存页
	flush链表：存放使用到的缓存页
	LRU（least recently uesd）链表：存放所有缓存页，将缓存页的使用次数进行排序，当缓存页不够的时候，不常用的缓存也刷入磁盘，清理出的缓存页也供使用
2、free链表的使用

当数据库启动的时候，mysql会去操作系统申请一块内存空间用来做buffer pool，将磁盘中的数据页缓存在buffer pool中，也就是缓存页，这个时候，缓存页都是空的，因为还没有对数据库进行crud操作，这些缓存页会储存]]></description><category></category></item><item><title><![CDATA[mysql Buffer Pool内存结构]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/119891960</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/119891960</guid><author>Kieran_s</author><pubDate>Tue, 24 Aug 2021 16:08:42 +0800</pubDate><description><![CDATA[1、Buffer pool核心组件

buffer pool是mysql的一个核心组件，数据的curd都是用到了它，视同配合了redo log，undo log，bin log，刷磁盘等机制的运行


2、数据库的核心数据模型

数据库的核心数据模型是表+字段+行的概念，也就是说数据库中有一个个的表，一个表有很多字段，并且有很多行数据，每行数据都有对应的字段值，例如：name = "Lucry"



很多行数据在一个数据页中，当buffer pool从磁盘中缓存数据时，也是缓存的一个个数据页。这些数据页经]]></description><category></category></item><item><title><![CDATA[MySQL的binlog]]></title><link>https://blog.youkuaiyun.com/Kieran_s/article/details/119890795</link><guid>https://blog.youkuaiyun.com/Kieran_s/article/details/119890795</guid><author>Kieran_s</author><pubDate>Tue, 24 Aug 2021 15:43:56 +0800</pubDate><description><![CDATA[1、biglog是什么

 redo log属于InnoDB存储引擎特有的log，而binlog叫做归档日志，里面记录的是偏向于逻辑性的日志，类似“对users表中的id=10的一行数据做了更新操作，更新以后的值是什么”

binlog不是InnoDB储存引擎特有的日志文件，是属于mysq server自己的日志文件

2、提交事务写入binlog

提交事务的时候会将redo log日志写入磁盘文件中，同时还会将这次更新对应的binlog日志写入到磁盘文件中。如图所示：



从磁盘加载数据—&gt;..]]></description><category></category></item></channel></rss>