<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Cgy25的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Cgy25</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Cgy25]]></copyright><item><title><![CDATA[什么是nginx]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105797576</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105797576</guid><author>Cgy25</author><pubDate>Fri, 18 Sep 2020 14:51:55 +0800</pubDate><description><![CDATA[Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器；同时也是一个IMAP、POP3、SMTP代理服务器；Nginx可以作为一个HTTP服务器进行网站的发布处理，另外Nginx可以作为反向代理进行负载均衡的实现。
Nginx虚拟主机
虚拟主机，就是把一台物理服务器划分成多个“虚拟”的服务器，每一个虚拟主机都可以有独立的域名和独立的目录。
nginx虚拟主机的配置：nginx的虚拟...]]></description><category></category></item><item><title><![CDATA[乐观锁 CAS]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105937405</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105937405</guid><author>Cgy25</author><pubDate>Tue, 05 May 2020 20:15:06 +0800</pubDate><description><![CDATA[悲观锁与乐观锁的区别
悲观锁会把整个对象加锁占为已有后才去做操作，Java中的Synchronized属于悲观锁。悲观锁有一个明显的缺点就是：它不管数据存不存在竞争都加锁，随着并发量增加，且如果锁的时间比较长，其性能开销将会变得很大。
乐观锁不获取锁直接做操作，然后通过一定检测手段决定是否更新数据，这种方式下，已经没有所谓的锁概念了，每条线程都直接先去执行操作，计算完成后检测是否与其他线程存在共享...]]></description><category></category></item><item><title><![CDATA[Cookie和Session的区别]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105870410</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105870410</guid><author>Cgy25</author><pubDate>Thu, 30 Apr 2020 22:03:51 +0800</pubDate><description><![CDATA[Cookie
1、服务器通过Set-Cookie头信息指示客户端保存Cookie
2、客户端通过Cookie头信息传送cookie到服务器
Cookie是客户端的存储空间，由浏览器来维持。具体来说Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器，是一种在客户端保持状态的方案。
Cookie指某些网站为了辨别用户身份、进行session跟踪而存储在用户本地终端上的数据...]]></description><category></category></item><item><title><![CDATA[HTTP的介绍]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105869908</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105869908</guid><author>Cgy25</author><pubDate>Thu, 30 Apr 2020 21:56:29 +0800</pubDate><description><![CDATA[定义：超文本传输协议（HTTP，HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
什么是Http协议无状态协议？怎么解决Http协议无状态协议？
无状态协议对于事务处理没有记忆能力。
无状态是指没有对本次客户端在和服务器会话设置一个缓存区，用来记录这次...]]></description><category></category></item><item><title><![CDATA[TCP三次握手和四次挥手]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105868319</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105868319</guid><author>Cgy25</author><pubDate>Thu, 30 Apr 2020 20:59:27 +0800</pubDate><description><![CDATA[TCP三次握手
所谓三次握手(Three-way Handshake)，是指建立一个TCP连接时，需要客户端和服务器总共发送3个包。
三次握手的目的是连接服务器指定端口，建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中，客户端执行connect()时。将触发三次握手。

第一次握手:
客户端发送一个TCP的SYN标志位置1的包指明客户打算连接的服务器...]]></description><category></category></item><item><title><![CDATA[SQL的连接查询]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105821803</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105821803</guid><author>Cgy25</author><pubDate>Tue, 28 Apr 2020 20:27:09 +0800</pubDate><description><![CDATA[01 内连接inner join
作用：查询两张表的共有部分

02 左连接  left join
作用：把左边表的内容全部查出,右边表只查出满足条件的记录

03 右连接  right join
作用：把右边表的内容全部查出,左边表只查出满足条件的记录

04 完全外连接  full outer join
完全外连接包含full join左右两表中所有的行，如果右表中某行在左表中没有匹配，则结果...]]></description><category></category></item><item><title><![CDATA[Linux常用命令]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105821293</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105821293</guid><author>Cgy25</author><pubDate>Tue, 28 Apr 2020 19:12:03 +0800</pubDate><description><![CDATA[查看当前所在的工作目录的全路径 ：pwd
查看当前系统的时间： date
清屏 ： clear
查看目录信息 ： ls
切换工作目录 ： cd
创建文件夹 ： mkdir
删除文件夹 ： rmdir / rm
创建文件 : touch
拷贝/删除/移动 : cp / rm / mv
解压压缩 : tar -zcvf  tar -zcvf
查看ip : ifconfig
网络统计信息 : netst...]]></description><category></category></item><item><title><![CDATA[SpringMVC的工作流程和常用注解]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105821123</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105821123</guid><author>Cgy25</author><pubDate>Tue, 28 Apr 2020 18:49:36 +0800</pubDate><description><![CDATA[SpringMvc处理流程
具体步骤：
第一步：发起请求到前端控制器(DispatcherServlet)
第二步：前端控制器请求HandlerMapping查找 Handler （可以根据xml配置、注解进行查找）
第三步：处理器映射器HandlerMapping向前端控制器返回Handler，HandlerMapping会把请求映射为HandlerExecutionChain对象，通过这种策略...]]></description><category></category></item><item><title><![CDATA[Redis的过期策略和内存淘汰策略]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105766898</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105766898</guid><author>Cgy25</author><pubDate>Sun, 26 Apr 2020 13:09:27 +0800</pubDate><description><![CDATA[Redis的过期策略
过期策略通常有以下三种：
定时过期：每个设置过期时间的key都需要创建一个定时器，到过期时间就会立即清除。该策略可以立即清除过期的数据，对内存很友好；但是会占用大量的CPU资源去处理过期的数据，从而影响缓存的响应时间和吞吐量。
惰性过期：只有当访问一个key时，才会判断该key是否已过期，过期则清除。该策略可以最大化地节省CPU资源，却对内存非常不友好。极端情况可能出现大量的...]]></description><category></category></item><item><title><![CDATA[redis的持久化方案]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105766674</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105766674</guid><author>Cgy25</author><pubDate>Sun, 26 Apr 2020 13:01:45 +0800</pubDate><description><![CDATA[持久化，就是将数据保存到磁盘，机器宕机或者重启数据不丢失，如果存储到内存中的数据，会丢失。
Redis支持两种方式的持久化，一种是RDB方式，一种是AOF方式。可以单独使用其中一种或将二者结合使用。
RDB
RDB持久化是通过快照方式来完成的。当达到触发条件时，Redis会自动将内存中所有数据以二进制方式生成一份副本并存储在硬盘上。
  RDB是Redis默认采用的持久化方式，在redis.con...]]></description><category></category></item><item><title><![CDATA[布隆过滤器]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105756684</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105756684</guid><author>Cgy25</author><pubDate>Sat, 25 Apr 2020 21:10:01 +0800</pubDate><description><![CDATA[布隆过滤器（Bloom Filter）是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多，缺点是有一定的误识别率和删除困难。
优点
相比于其它的数据结构，布隆过滤器在空间和时间方面都有巨大的优势。布隆过滤器存储空间和插入/查询时间都是常数。另外,Hash函数相互之间没有关系...]]></description><category></category></item><item><title><![CDATA[redis的分布式锁]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105756076</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105756076</guid><author>Cgy25</author><pubDate>Sat, 25 Apr 2020 21:03:02 +0800</pubDate><description><![CDATA[分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统   中，常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源，那么访问这些资源的时候，往往需要互斥来防止彼此干扰来保证一致性，在这种情况下，便需要使用到分布式锁。
分布式锁的由来
在传统单机部署的情况下，可以使用Java并发处理相关的API(如ReentrantLcok或synchronized...]]></description><category></category></item><item><title><![CDATA[Redis介绍]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105755485</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105755485</guid><author>Cgy25</author><pubDate>Sat, 25 Apr 2020 20:29:39 +0800</pubDate><description><![CDATA[Redis是以键值对存储数据的NoSQL数据库。
一、redis的数据类型，以及每种数据类型的使用场景


String
这个其实没啥好说的，最常规的set/get操作，value可以是String也可以是数字。一般做一些复杂的计数功能的缓存。


hash
这里value存放的是结构化的对象，比较方便的就是操作其中的某个字段。博主在做单点登录的时候，就是用这种数据结构存储用户信息，以cookie...]]></description><category></category></item><item><title><![CDATA[HashMap的数据结构，哈希冲突，JDK1.7和JDK1.8 HashMap的区别]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105739498</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105739498</guid><author>Cgy25</author><pubDate>Fri, 24 Apr 2020 21:16:53 +0800</pubDate><description><![CDATA[HashMap的底层主要是基于数组和链表来实现的，它之所以有相当快的查询速度主要是因为它是通过计算散列码来决定存储的位置。HashMap中主要是通过key的hashCode来计算hash值的，只要hashCode相同，计算出来的hash值就一样。如果存储的对象对多了，就有可能不同的对象所算出来的hash值是相同的，这就出现了所谓的hash冲突。
解决hash冲突的方法有很多，HashMap底层是通...]]></description><category></category></item><item><title><![CDATA[CAP 理论与BASE理论]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105739352</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105739352</guid><author>Cgy25</author><pubDate>Fri, 24 Apr 2020 20:44:28 +0800</pubDate><description><![CDATA[CAP定理
CAP 理论为：一个分布式系统最多只能同时满足一致性（Consistency）、可用性（Availability）和分区容错性（Partition tolerance）这三项中的两项。
一致性(Consistency)： 一致性指 (all nodes see the same data at the same time)，即更新操作成功并返回客户端完成后，所有节点在同一时间的数据完全...]]></description><category></category></item><item><title><![CDATA[各种形态的分布式事务：2PC，TCC以及基于消息的最终一致性]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105739298</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105739298</guid><author>Cgy25</author><pubDate>Fri, 24 Apr 2020 20:37:08 +0800</pubDate><description><![CDATA[分布式事务是为了解决微服务架构（形式都是分布式系统）中不同节点之间的数据一致性问题。这个一致性问题本质上解决的也是传统事务需要解决的问题，即一个请求在多个微服务调用链中，所有服务的数据处理要么全部成功，要么全部回滚。当然分布式事务问题的形式可能与传统事务会有比较大的差异，但是问题本质是一致的，都是要求解决数据的一致性问题。
而分布式事务的实现方式有很多种，最具有代表性的是由Oracle Tuxed...]]></description><category></category></item><item><title><![CDATA[数据库的锁分类]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105716461</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105716461</guid><author>Cgy25</author><pubDate>Thu, 23 Apr 2020 21:10:20 +0800</pubDate><description><![CDATA[数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时，在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据，破坏数据库的一致性。
一、按锁的粒度分

表锁
表锁就是一锁锁一整张表，在表被锁定期间，其他事务不能对该表进行操作，必须等当前表的锁被释放后才能进行操作。表锁响应的是非索引字段，即全表扫描，全表扫描时锁定整张表，sql语句可以通过执行计...]]></description><category></category></item><item><title><![CDATA[什么是分布式事务，什么是本地事务]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105715954</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105715954</guid><author>Cgy25</author><pubDate>Thu, 23 Apr 2020 20:26:24 +0800</pubDate><description><![CDATA[1、什么是分布式事务
分布式事务就是指事务的资源分别位于不同的分布式系统的不同节点之上的事务；
指一次大的操作由不同的小操作组成的，这些小的操作分布在不同的服务器上，分布式事务需要保证这些小操作要么全部成功，要么全部失败。从本质上来说，分布式事务就是为了保证不同数据库的数据一致性。
2、分布式事务产生的原因
2.1、数据库分库分表
在单库单表场景下，当业务数据量达到单库单表的极限时，就需要考虑分库...]]></description><category></category></item><item><title><![CDATA[数据库结构的优化]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105690070</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105690070</guid><author>Cgy25</author><pubDate>Wed, 22 Apr 2020 20:05:51 +0800</pubDate><description><![CDATA[1、选择合适的数据类型
数据类型的选择，重点在于“合适”二字，如何确定选择的数据类型是否合适了？
1、使用可以存下你的数据的最小的数据类型。（时间类型数据：可以使用varchar类型，可以使用int类型，也可以使用时间戳类型）
2、使用简单的数据类型，int要比varchar类型在mysql处理上简单。（int类型存储时间是最好的选择）
3、尽可能的使用not null定义字段。（innodb的特...]]></description><category></category></item><item><title><![CDATA[什么是索引]]></title><link>https://blog.youkuaiyun.com/Cgy25/article/details/105665444</link><guid>https://blog.youkuaiyun.com/Cgy25/article/details/105665444</guid><author>Cgy25</author><pubDate>Tue, 21 Apr 2020 21:02:15 +0800</pubDate><description><![CDATA[索引的作用相当于图书的目录，可以根据目录中的页码快速找到所需的内容。
数据库使用索引以找到特定值，然后顺指针找到包含该值的行。在表中建立索引，然后在索引中找到符合查询条件的索引值，最后通过保存在索引中的ROWID（相当于页码）快速找到表中对应的记录。索引的建立是表中比较有指向性的字段，相当于目录，比如说行政区域代码，同一个地域的行政区域代码都是相同的，那么给这一列加上索引，避免让它重复扫描，从而达...]]></description><category></category></item></channel></rss>