<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xiaxiaomao1981的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xiaxiaomao1981</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xiaxiaomao1981]]></copyright><item><title><![CDATA[高薪Offer收割机之聚集索引和非聚集索引]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/132160801</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/132160801</guid><author>xiaxiaomao1981</author><pubDate>Tue, 08 Aug 2023 10:07:56 +0800</pubDate><description><![CDATA[什么是聚集索引，非聚集索引，回表查询，覆盖索引本文会详细讲解]]></description><category></category></item><item><title><![CDATA[高薪Offer收割机之索引及索引的数据结构]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/132059127</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/132059127</guid><author>xiaxiaomao1981</author><pubDate>Wed, 02 Aug 2023 11:56:17 +0800</pubDate><description><![CDATA[索引是面试常考热点，索引底层的数据结构到底长啥样，文章会为你详细解析！]]></description><category></category></item><item><title><![CDATA[高薪Offer收割机之MySql如何定位慢查询]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/131903417</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/131903417</guid><author>xiaxiaomao1981</author><pubDate>Mon, 24 Jul 2023 19:33:16 +0800</pubDate><description><![CDATA[当系统中存在执行很慢的sql语句时可能会导致页面加载过慢，接口压测响应时间过长，数据库中sql语句的执行速度往往会成为整个系统的瓶颈，执行耗时很长的查询我们称之为慢查询，如何定位和分析慢查询呢,本文详细进行了讲解]]></description><category></category></item><item><title><![CDATA[高薪Offer收割机之redis集群]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/131805583</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/131805583</guid><author>xiaxiaomao1981</author><pubDate>Wed, 19 Jul 2023 11:52:41 +0800</pubDate><description><![CDATA[单节点的redis并发能力是有限的，如果需要进一步提高redis的并发能力，就需要搭建集群。
Redis中的集群分为三种：
主从复制，哨兵模式，分片集群
本篇文章详细的介绍了这几种集群的机制和原理]]></description><category></category></item><item><title><![CDATA[高薪Offer收割机之Redis分布式锁]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/131752191</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/131752191</guid><author>xiaxiaomao1981</author><pubDate>Sun, 16 Jul 2023 16:54:58 +0800</pubDate><description><![CDATA[redis的一个重要的用途就是作为分布式锁，本篇文章详细介绍了redis作为分布式锁锁的用法。]]></description><category></category></item><item><title><![CDATA[高薪Offer收割机之Redis数据过期和淘汰策略]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/131666207</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/131666207</guid><author>xiaxiaomao1981</author><pubDate>Tue, 11 Jul 2023 18:04:49 +0800</pubDate><description><![CDATA[内存空间是有限的，Redis数据存满以后如何保证新的数据能够存入，这就需要数据过期和淘汰策略，本篇文章详细讲解了这两种策略。]]></description><category></category></item><item><title><![CDATA[高薪Offer收割机之Redis的数据持久化]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/131628409</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/131628409</guid><author>xiaxiaomao1981</author><pubDate>Sun, 09 Jul 2023 22:19:04 +0800</pubDate><description><![CDATA[Redis的持久化是使用Redis缓存中必然会碰到的问题也是面试的a热点问题，本文详细介绍了Redis的两种持久化方式RDB和AOF]]></description><category></category></item><item><title><![CDATA[高薪offer收割机之-双写一致性]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/131590472</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/131590472</guid><author>xiaxiaomao1981</author><pubDate>Fri, 07 Jul 2023 09:53:12 +0800</pubDate><description><![CDATA[双写一致性也就是在更新数据库的时候如何保证缓存中的数据与数据库中的一致是一个让人头疼的问题也是面试官爱问的问题，本文会结合各个场景给出相应的方案。]]></description><category></category></item><item><title><![CDATA[高薪offer收割面试题之缓存穿透，击穿，雪崩]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/131542488</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/131542488</guid><author>xiaxiaomao1981</author><pubDate>Tue, 04 Jul 2023 20:47:16 +0800</pubDate><description><![CDATA[从布隆过滤器查询某个key是否存在时，先用添加key时的hash函数对这个key进行计算，查看布隆过滤器的位数组中对应的位置是否都为 1，只要有一个位为零，那么说明布隆过滤器中这个 key 不存在.如果这几个位置全都是 1，那么说明极有可能存在.因为这些位置的 1 可能是因为其他的 key 存在导致的。也就是虽然在数据库中查找不到该id的文章，也把该文章的信息缓存起来，只是缓存的为空值，这样以后每次查询这个id的文章就可以在缓存中命中，虽然值为空。这个过期时间不是真正的过期时间只是逻辑上的因此叫逻辑过期。]]></description><category></category></item><item><title><![CDATA[高薪offer收割面试题之-Comparable和Comparator]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/130400135</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/130400135</guid><author>xiaxiaomao1981</author><pubDate>Thu, 27 Apr 2023 10:00:51 +0800</pubDate><description><![CDATA[1.如果要按照年龄升序排序， 则o1.getAge()大于o2.getAge()返回正整数，o1.getAge()与o2.getAge()相等返回0，o1.getAge()小于o2.getAge()返回负整数。2.如果要按照年龄降序排序， 则o1.getAge()小于o2.getAge()返回正整数，o1.getAge()与o2.getAge()相等返回0，o1.getAge()大于o2.getAge()返回负整数。Comparable后缀是able说明它代表的是一种能力，什么能力呢，排序的能力。]]></description><category></category></item><item><title><![CDATA[Spring Security七:授权]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104568763</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104568763</guid><author>xiaxiaomao1981</author><pubDate>Sat, 29 Feb 2020 07:58:33 +0800</pubDate><description><![CDATA[授权的方式包括web授权和方法授权,web授权是通过url拦截进行授权，方法授权是通过方法拦截进行授权,他们都会调用accessDecisionManager进行授权决策，若为web授权则拦截器为：FilterSecurityIntecepter,若为方法授权则拦截器为:MethodSecurityIntecepter,如果同时通过web授权和方法授权则先进行web授权再执行方法授权，最后决策通过...]]></description><category></category></item><item><title><![CDATA[Spring Security六：自定义认证]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104510047</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104510047</guid><author>xiaxiaomao1981</author><pubDate>Wed, 26 Feb 2020 07:57:28 +0800</pubDate><description><![CDATA[通过前面的学习我们可以使用spring security完成简单的认证和授权，但是实际项目中用户的数据往往都是存在数据库中，登录页面也需要可以自由定制，下面我们就来学习使用spring security如何完成



创建mavean项目选择模板 mavean-archetype-webapp




	自定义登录页面：
	


创建登录页面，结构如下：





在WEBCONFIG.j...]]></description><category></category></item><item><title><![CDATA[Spring Security五:Spring security原理]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104489994</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104489994</guid><author>xiaxiaomao1981</author><pubDate>Tue, 25 Feb 2020 07:51:09 +0800</pubDate><description><![CDATA[Spring security可以进行认证和授权，认证和授权需要针对每一个请求，所以这个功能，可以用过滤器来实现，spring security正是通过一系列过滤器来实现认证和授权功能的。

我们来看看其中几个比较重要的过滤器，类和接口。


	
		UserDetails： 
		
	
public interface UserDetails extends Serializable {Coll...]]></description><category></category></item><item><title><![CDATA[SpringSecurity四:Springboot集成SpringSecurity]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104471427</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104471427</guid><author>xiaxiaomao1981</author><pubDate>Mon, 24 Feb 2020 07:37:45 +0800</pubDate><description><![CDATA[Spring security也是spring家族中的一员，使用spring boot集成spring security非常的方便，下面就通过一个例子来讲解一下如何在spring boot中集成spring security


	
		创建mavean工程springboot_security
		
	
Pom.xml

&lt;parent&gt; &lt;groupId&gt;org....]]></description><category></category></item><item><title><![CDATA[Spring Security三:Spring Security介绍]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104454394</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104454394</guid><author>xiaxiaomao1981</author><pubDate>Sun, 23 Feb 2020 06:59:05 +0800</pubDate><description><![CDATA[Spring Security是企业中使用广泛的认证授权框架，它也是spring家族中的一员，特别是它和spring boot结合开发非常的简单，能够极大的提高我们的生产力

1创建一个mavean工程：SpringSecurity02

2pom中在上一个案例的基础上增加spring Security的依赖：

&lt;dependency&gt;
&lt;groupId&gt;...]]></description><category></category></item><item><title><![CDATA[Spring Security二：Session的认证方式]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104438639</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104438639</guid><author>xiaxiaomao1981</author><pubDate>Sat, 22 Feb 2020 07:55:05 +0800</pubDate><description><![CDATA[下面来通过一个实例讲解Session认证的方式

创建工程：



引入依赖：


&lt;dependencies&gt;

 &lt;dependency&gt;

 &lt;groupId&gt;org.springframework&lt;/groupId&gt;

 &lt;artifactId&gt;spring-webmvc&lt;/artifa...]]></description><category></category></item><item><title><![CDATA[SpringSecurity一：认证和授权]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104422155</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104422155</guid><author>xiaxiaomao1981</author><pubDate>Fri, 21 Feb 2020 07:42:07 +0800</pubDate><description><![CDATA[什么是认证？

认证就是取得合法身份，比如京东需要用户登录以后才能才能下订单，这里的登录就是认证。登录成功以后就具有了合法身份可以继续进行下一步的操作。

常用的认证方式

常用的认证方式有基于session的认证和基于token的认证。

先来看一下基于session的认证：

用户登录成功后服务器会将用户的信息保存在session(当前会话)当中，每个session对应有一个sessionid...]]></description><category></category></item><item><title><![CDATA[MySql优化之索引优化]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104404664</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104404664</guid><author>xiaxiaomao1981</author><pubDate>Thu, 20 Feb 2020 08:05:33 +0800</pubDate><description><![CDATA[索引是数据库优化最重要的手段，当我们遇到数据库性能问题的时候首先想到的就应该是索引优化，我们通过一个例子来看看索引对查询效率的影响究竟有多大：

我们还是沿用上一讲的数据库里面有一百万条数据:

根据id查询index_test表看一下它的查询计划：





查询速度很快，因为id上有主键索引，这里是索引查询

再来根据user字段查询一下：



花了0.57秒，

如果在user字段上加上...]]></description><category></category></item><item><title><![CDATA[MySql优化之show profile分析SQL]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104387114</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104387114</guid><author>xiaxiaomao1981</author><pubDate>Wed, 19 Feb 2020 07:43:31 +0800</pubDate><description><![CDATA[Mysql从5.0.3版本开始增加了对show profiles和show profile的支持，show profile能够帮我们了解在sql语句执行过程中时间耗费在了哪些地方

以下操作都是session级别的

我们可以通过 select @@have_profiling来显示当前mysql是否支持profile:





通过 select @@profiling查看profile是否...]]></description><category></category></item><item><title><![CDATA[MySql优化之分析执行计划]]></title><link>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104368964</link><guid>https://blog.youkuaiyun.com/xiaxiaomao1981/article/details/104368964</guid><author>xiaxiaomao1981</author><pubDate>Tue, 18 Feb 2020 07:50:29 +0800</pubDate><description><![CDATA[explain分析执行计划

通过以上步骤定位到有问题的sql语句以后我们可以通过explain来分析一下该select语句的执行计划,包括该语句如何连接和连接的顺序

Explain select * from user where id = 1;

这个命令可以显示select * from user where id = 1这个查询语句的执行计划





Id:select查询的序列号,...]]></description><category></category></item></channel></rss>