<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[soup12的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/soup12</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; soup12]]></copyright><item><title><![CDATA[mysql 备份 还原]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/130371603</link><guid>https://blog.youkuaiyun.com/soup12/article/details/130371603</guid><author>soup12</author><pubDate>Tue, 25 Apr 2023 19:03:01 +0800</pubDate><description><![CDATA[方案1：pv -PETab 202301.sql | /usr/local/soft/3306/bin/mysql -uroot -p -h 127.0.0.1  --port=3306。: 在 CREATE TABLE 语句中添加所有的 CREATE 选项。: 在 SELECT 查询时，一次读取结果集的所有行，以便尽快释放表锁。: 在备份每个数据表时，执行 LOCK TABLES 操作。这个命令的话，要么是在sql所在目录下执行，或者是觉得路径。: 在每个创建的表语句前加上 DROP TABLE。]]></description><category></category></item><item><title><![CDATA[Linux 下 安装多个mysql8.0]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/130290548</link><guid>https://blog.youkuaiyun.com/soup12/article/details/130290548</guid><author>soup12</author><pubDate>Sat, 22 Apr 2023 13:25:40 +0800</pubDate><description><![CDATA[初始化完成后，会在data文件生成相关的信息，如果觉得不对的话，可以把date里面的内容删除掉，重新初始化。修改文件所属账户：chown -R mysql:mysql /usr/local/soft/mysql*vim my.cnf   这个文件的权限记得修改一下，因为它如果权限过大，在启动还是初始化的时候不行。在mysql用户组下添加mysql用户：useradd mysql -g mysql。1：因为要安装多个mysql，所以要修改文件名称，修改文件所属的账户和权限。2：解压下载的mysql压缩包。]]></description><category></category></item><item><title><![CDATA[Redis，Redis Sentinel ，集群]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/130181064</link><guid>https://blog.youkuaiyun.com/soup12/article/details/130181064</guid><author>soup12</author><pubDate>Sun, 16 Apr 2023 21:08:04 +0800</pubDate><description><![CDATA[Redis，Redis sentinel ，集群]]></description><category></category></item><item><title><![CDATA[linux 下 安装rabbitMQ]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/108616402</link><guid>https://blog.youkuaiyun.com/soup12/article/details/108616402</guid><author>soup12</author><pubDate>Wed, 16 Sep 2020 10:26:44 +0800</pubDate><description><![CDATA[安装任何软件包之前，建议使用以下命令更新软件包和存储库


yum -y update

由于RabbitMQ是基于Erlang（面向高并发的语言）语言开发，所以在安装RabbitMQ之前，需要先安装Erlang。在本教程中我们将安装最新版本的Erlang到服务器中。 Erlang在默认的YUM存储库中不可用，因此您将需要安装EPEL存储库。 运行以下命令相同。


yum -y install epel-release

yum -y update

安装Erlang


yum -y install e]]></description><category></category></item><item><title><![CDATA[如何在很短的时间内将大量数据插入到ConcurrentHashMap]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/108288686</link><guid>https://blog.youkuaiyun.com/soup12/article/details/108288686</guid><author>soup12</author><pubDate>Fri, 28 Aug 2020 23:44:09 +0800</pubDate><description><![CDATA[将大批量数据保存到map中有两个地方的消耗将会是比较大的：第一个是扩容操作，第二个是锁资源的争夺。第一个扩容的问题，主要还是要通过配置合理的容量大小和扩容因子，尽可能减少扩容事件的发生；第二个锁资源的争夺，在put方法中会使用synchonized对头节点进行加锁，而锁本身也是分等级的，因此我们的主要思路就是尽可能的避免锁等级。所以，针对第二点，我们可以将数据通过通过ConcurrentHashMap的spread方法进行预处理，这样我们可以将存在hash冲突的数据放在一个组里面，每个组都使用单线程进行pu]]></description><category></category></item><item><title><![CDATA[mysql 缓存池中缓存的数据页数据类型]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/108182580</link><guid>https://blog.youkuaiyun.com/soup12/article/details/108182580</guid><author>soup12</author><pubDate>Sun, 23 Aug 2020 14:17:48 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[Map用法]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/108015009</link><guid>https://blog.youkuaiyun.com/soup12/article/details/108015009</guid><author>soup12</author><pubDate>Fri, 14 Aug 2020 22:33:26 +0800</pubDate><description><![CDATA[Map用法



类型介绍

Java 自带了各种 Map 类，这些 Map 类可归为三种类型：

通用Map

用于在应用程序中管理映射，通常在 java.util 程序包中实现HashMap、Hashtable、Properties、LinkedHashMap、IdentityHashMap、TreeMap、WeakHashMap、ConcurrentHashMap

专用Map

通常我们不必亲自创建此类Map，而是通过某些其他类对其进行访问java.util.jar.Attributes、jav..]]></description><category></category></item><item><title><![CDATA[深入分析Java I/O的工作机制]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/107825299</link><guid>https://blog.youkuaiyun.com/soup12/article/details/107825299</guid><author>soup12</author><pubDate>Fri, 07 Aug 2020 21:41:06 +0800</pubDate><description><![CDATA[I/O是目前web应用主要的问题之一，大部分web应用系统的瓶颈是I/O瓶颈。

java 的I/O类可以分为如下4组：

基于字节操作的I/O接口：InputStream 和 OutputStream

基于字符操作的I/O接口：Writer 和 Reader

基于磁盘操作的I/O接口：File

基于网络操作的I/O接口：Socket



基于字节操作的I/O接口

待完善

基于字符操作的I/O接口

待完善

字节与字符的转化接口

待完善

磁盘I/O工作机制

1：标准访问文件的方式

标.]]></description><category></category></item><item><title><![CDATA[JVM 之 内存篇]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/107431518</link><guid>https://blog.youkuaiyun.com/soup12/article/details/107431518</guid><author>soup12</author><pubDate>Fri, 31 Jul 2020 18:33:36 +0800</pubDate><description><![CDATA[介绍完java虚拟机运行时数据区之后，本篇将介绍这些数据是如何创建，如何布局以及如何访问的。

1：对象的创建

2：对象的内存布局

3：对象的访问地位


]]></description><category></category></item><item><title><![CDATA[WEB 请求过程]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/107633997</link><guid>https://blog.youkuaiyun.com/soup12/article/details/107633997</guid><author>soup12</author><pubDate>Wed, 29 Jul 2020 22:31:05 +0800</pubDate><description><![CDATA[1：HTTP请求和建立一个Socket其实没有太大的区别，只不过outputStream.write的字节码写的数据格式，要符合HTTP，浏览器在创建socket连接之前，要通过DNS解析出ip地址，在通过这个IP地址和默认的端口80，与原创服务器建立socket连接。浏览器根据这个url组装成一个get类型的Http请求头。通过outputSream.write发送。远程服务器，通过inputStram.read读取，服务器等到返回结果，最后断开连接。

HttpClient 是一个很好的开源的发送Htt]]></description><category></category></item><item><title><![CDATA[JVM 之 内存篇]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/107431408</link><guid>https://blog.youkuaiyun.com/soup12/article/details/107431408</guid><author>soup12</author><pubDate>Sat, 25 Jul 2020 20:18:35 +0800</pubDate><description><![CDATA[本篇将从概念上阐述java虚拟机内存的各个区域，以及每个区域的作用，服务对象以及其中可能产生的问题

1：程序计数器

2：java虚拟机栈

3 ：本地方法栈

4：java堆

5：方法区

6：运行时常量池

7：直接内存


...]]></description><category></category></item><item><title><![CDATA[各类排序算法时间复杂度和空间复杂度对比表]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/107460485</link><guid>https://blog.youkuaiyun.com/soup12/article/details/107460485</guid><author>soup12</author><pubDate>Mon, 20 Jul 2020 11:51:18 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[系统优化分析 JVM JAVA]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/106834622</link><guid>https://blog.youkuaiyun.com/soup12/article/details/106834622</guid><author>soup12</author><pubDate>Thu, 18 Jun 2020 14:51:56 +0800</pubDate><description><![CDATA[1: ps -ef | grep java 查看对应的进程的PID：通过ps命令查询PID



2: jstat -gc pid 5000 :间隔5秒打印出来GC的具体情况

Options，选项，我们一般使用 -gcutil 查看gc情况
vmid，VM的进程号，即当前运行的java进程号
interval，间隔时间，单位为秒或者毫秒
count，打印次数，如果缺省则打印无数次



3：使用jinfo命令查询该进程的JVM参数设置

jinfo [PID]



字段说明：
显示内容说明如下（部...]]></description><category></category></item><item><title><![CDATA[linux采用scp命令拷贝文件到本地，拷贝本地文件到远程服务器]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/106540420</link><guid>https://blog.youkuaiyun.com/soup12/article/details/106540420</guid><author>soup12</author><pubDate>Thu, 04 Jun 2020 10:49:17 +0800</pubDate><description><![CDATA[1.从服务器复制文件到本地：

 远程服务器ip:192.168.1.111.

 root：是用户名


scp root@192.168.1.111:/home/mysql_3306.log /home/
补充：多文件拷贝
scp root@192.168.1.111:/home/\{mysql_3306.log,mysql2_3306.log,test3.bin,test.*\} /localhome/



2.从服务器复制文件夹到本地：


scp -r root@192.168.1....]]></description><category></category></item><item><title><![CDATA[Java内存模型----Java Memory Model]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/104600573</link><guid>https://blog.youkuaiyun.com/soup12/article/details/104600573</guid><author>soup12</author><pubDate>Sun, 01 Mar 2020 22:10:17 +0800</pubDate><description><![CDATA[Java的内存模型设置的想法是为了达到屏蔽各种硬件和操作系统访问内存的差异，以达到在各个平台统一的，一致的访问内存效果。因为之前的C/C++，直接使用物理硬件和操作系统内存的模型，这样的话，有可能这个程序在不同的硬件和平台就不能正常运行了。

1.1 工作内存和主内存

变量：实例变量，静态变量，构成数组对象的元素。不包括局部变量和方法参数。

java内存模型规定了，所有的变量都存储在主内存中（...]]></description><category></category></item><item><title><![CDATA[并发]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/104391149</link><guid>https://blog.youkuaiyun.com/soup12/article/details/104391149</guid><author>soup12</author><pubDate>Wed, 19 Feb 2020 13:00:56 +0800</pubDate><description><![CDATA[并发：将多核cpu的计算能力发挥到极致了。在实际业务中，将将任务进行了拆分。以多线程的方式完成任务。

当然这样也是有缺点的：多线程面临的是频繁的上下文的切花，这样会消耗cpu的性能。以及线程安全问题。

为了解决这一缺点，有四种方案：

1：锁分段技术

2：CAS，利用atomic的CAS算法，来避免不必要的锁竞争带来的上下文切换。

3：使用最少线程。

4：协程：在单线程里实现多任务的调度...]]></description><category></category></item><item><title><![CDATA[04 | 基础篇：经常说的 CPU 上下文切换是什么意思？（下）]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/104378212</link><guid>https://blog.youkuaiyun.com/soup12/article/details/104378212</guid><author>soup12</author><pubDate>Tue, 18 Feb 2020 17:15:15 +0800</pubDate><description><![CDATA[vmstat：是查看系统的整体上下文切换情况，想看具体的每一个进程的情况，需要pidstat工具。

如果不知道参数指令的意思，可以通过 man vmstat 查看具体的指令分析。

自愿上下文切换：是指由于系统资源不足，导致的上下文切花。这导致进程自动挂起，然后由系统进行管理进程的正常调度和运行。

非自愿上下文切换：是指由于时间片的时间到了，然后被系统强制调用，进而发生上下文切换。

pids...]]></description><category></category></item><item><title><![CDATA[03 | 基础篇：经常说的 CPU 上下文切换是什么意思？（上）]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/104361275</link><guid>https://blog.youkuaiyun.com/soup12/article/details/104361275</guid><author>soup12</author><pubDate>Mon, 17 Feb 2020 18:52:31 +0800</pubDate><description><![CDATA[cpu上下文：cpu寄存器和程序计数器

进程也可以在用户空间运行也可以在，内核空间运行，在用户空间运行的话，称之为进程的用户态，在内核空间运行的话，称之为进程的内核态。

cpu的上下文切换对应三种情况：

进程上下文切换，线程上下文切换，中断上下文切换

用户态到内核态只能通过系统调用。系统调用将用户态的进程，陷入到内核态。

系统调用：是特殊的上下文切换，特权模式的切换。他是在进程内的上下...]]></description><category></category></item><item><title><![CDATA[02 | 基础篇：到底应该怎么理解“平均负载”？]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/104360478</link><guid>https://blog.youkuaiyun.com/soup12/article/details/104360478</guid><author>soup12</author><pubDate>Mon, 17 Feb 2020 16:55:33 +0800</pubDate><description><![CDATA[平均负载：load average

是单位时间内可运行进程+不可中断进程的平均数。

cpu使用率：是单位时间内统计cpu的繁忙程度。

分析平均负载的三种工具：

mpstat：用于分析当前每个cpu的性能和所有cpu的平均性能。

ipstat：用于分析实时进程的cpu，内存，i/o,上下文切换等性能指标

iostat：用于统计分析cpu和磁盘I/O的信息。
...]]></description><category></category></item><item><title><![CDATA[深度优先-广度优先]]></title><link>https://blog.youkuaiyun.com/soup12/article/details/104239965</link><guid>https://blog.youkuaiyun.com/soup12/article/details/104239965</guid><author>soup12</author><pubDate>Sat, 15 Feb 2020 19:50:23 +0800</pubDate><description><![CDATA[广度优先：

1：定义起点，标记已到达

2：循环起点相邻能到达的且未被标记已读的端点，找到后标记为已读，并将这个端点定义为起点。

3：回到第一步。



深度优先：

1：定义起点，标记已到达。

2：循环找到起点相邻的一个端点，然后标记已读，并将这个端点定义为起点。直到这个起点相邻的没有其它可达的端点。

3：循环返回上一层端点，返回第二步，找未读的端点。

4：回到第一步
...]]></description><category></category></item></channel></rss>