<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[AmbHowie的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/AmbHowie</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; AmbHowie]]></copyright><item><title><![CDATA[Redis应用场景，线程模型，数据类型，持久化方式概述]]></title><link>https://blog.youkuaiyun.com/AmbHowie/article/details/106594076</link><guid>https://blog.youkuaiyun.com/AmbHowie/article/details/106594076</guid><author>AmbHowie</author><pubDate>Sat, 06 Jun 2020 21:47:08 +0800</pubDate><description><![CDATA[博客链接：Cs XJH’s Blog

简介
Redis属于Nosql数据库，即非关系型数据库，以key-value形式将数据缓存到服务器内存中，线程安全且支持高并发。其他Nosql数据库还有MongoDB，MemCache等
大家或许会有疑问，为什么要使用非关系型数据库？
因为基于内存的数据库对数据的存取速度远快于基于硬盘的存取速度，也就是说，io操作会严重影响数据的存取速度
另外，还有其他工具可以实行缓存，那么它们与Redis的区别是什么？
其中，JVM缓存框架就属于这一类工具，有EhCache，Ca.]]></description><category></category></item><item><title><![CDATA[Java爬虫之Htmlunit，HttpClient的使用]]></title><link>https://blog.youkuaiyun.com/AmbHowie/article/details/105943915</link><guid>https://blog.youkuaiyun.com/AmbHowie/article/details/105943915</guid><author>AmbHowie</author><pubDate>Wed, 06 May 2020 09:25:43 +0800</pubDate><description><![CDATA[博客地址：https://blog.csxjh.vip


由于最近接手一个项目需要爬取网页数据，故学习了下爬虫的相关知识。
都说Python是专业的爬虫工具，但奈何项目是用Java写的，所以从Maven的仓库中找到了Htmlunit和HttpClient这两个工具。熟悉之后发现，其实他们也是很强大好用的。

首先，说明下环境：
&lt;parent&gt;
        &lt;groupI...]]></description><category></category></item><item><title><![CDATA[关于文件上传的见解]]></title><link>https://blog.youkuaiyun.com/AmbHowie/article/details/105576053</link><guid>https://blog.youkuaiyun.com/AmbHowie/article/details/105576053</guid><author>AmbHowie</author><pubDate>Fri, 17 Apr 2020 11:13:51 +0800</pubDate><description><![CDATA[原文链接：Cs XJH’s Blog

当下的业务中往往有文件上传等需求，那么笔者今天就来谈谈文件上传服务器的相关操作。
文件的存储路径
你或许对这个标题感觉到奇怪，不是随便找个合适目录下存储文件就完事了么，难道存储路径也有门道？
是的，网上有很多关于文件上传存储的教程。其中，大部分推荐的文件存储路径都类似2020/1/31/qwertyuiopasdf.jpg。那么，你想过为什么要以这样的路径...]]></description><category></category></item><item><title><![CDATA[Lucene核心之搜索]]></title><link>https://blog.youkuaiyun.com/AmbHowie/article/details/105575939</link><guid>https://blog.youkuaiyun.com/AmbHowie/article/details/105575939</guid><author>AmbHowie</author><pubDate>Fri, 17 Apr 2020 11:10:44 +0800</pubDate><description><![CDATA[原文链接：Cs XJH’s Blog

Lucene近实时搜索
近实时搜索用于对数据有实时性要求的场景。Lucene和数据库类似，也有隔离性，即IndexWriter写入的数据，只有commit之后，对搜索端来说才是可见的。并且，如果搜索端持有IndexWriter，那么即使commit之后，搜索端对于新的数据也是不可见的。
而且，在数据可见性上，与数据库不同的是，IndexReader对于索引...]]></description><category></category></item><item><title><![CDATA[Lucene基础之核心概念及数据类型]]></title><link>https://blog.youkuaiyun.com/AmbHowie/article/details/105575815</link><guid>https://blog.youkuaiyun.com/AmbHowie/article/details/105575815</guid><author>AmbHowie</author><pubDate>Fri, 17 Apr 2020 11:08:12 +0800</pubDate><description><![CDATA[原文链接：Cs XJH’s Blog
接触Lucene也有一段时间了，刚接触时应用起来难度不高，但里面的很多东西还是陌生的。经过一段熟悉之后，觉得大致了解了一些主要的东西，于是写篇博客记录下。

三个概念
Lucene和数据库类似，这里也有字段的概念。不同之处在于，这里的字段之间除了数据类型不同之外，对于索引、分词、存储的选择也各有不同。

索引
如果字段需要搜索，那么应该建立索引
分词
只有字...]]></description><category></category></item><item><title><![CDATA[LeetCode题解：最长最快乐前缀（KMP字符串匹配）]]></title><link>https://blog.youkuaiyun.com/AmbHowie/article/details/105575656</link><guid>https://blog.youkuaiyun.com/AmbHowie/article/details/105575656</guid><author>AmbHowie</author><pubDate>Fri, 17 Apr 2020 11:02:55 +0800</pubDate><description><![CDATA[原文链接：Cs XJH’s Blog
LeetCode题解：最长最快乐前缀

题目简而言之就是，求字符串的最长真前后缀。而最佳解决方案来自KMP算法。但是，之前没有学懂KMP，这次正好碰到相关的题目，特此来恶补一下。
首先贴上本题目的题解
class Solution {
    // KMP求next数组算法
    public String longestPrefix(String s) ...]]></description><category></category></item><item><title><![CDATA[LeetCode题解：使用区间分治策略构建二叉树]]></title><link>https://blog.youkuaiyun.com/AmbHowie/article/details/105575601</link><guid>https://blog.youkuaiyun.com/AmbHowie/article/details/105575601</guid><author>AmbHowie</author><pubDate>Fri, 17 Apr 2020 11:00:46 +0800</pubDate><description><![CDATA[原文链接：Cs XJH’s Blog
今天在力扣上刷到两道法相似的题目，都是使用区间分治然后递归构造树的解决方法，感觉新有所得，于是决定记录下来。

LeetCode：将有序数组转换为二叉搜索树
题目描述
将一个按照升序排列的有序数组，转换为一棵高度平衡二叉搜索树。
本题中，一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。
示例
给定有序数组: [-10,-3...]]></description><category></category></item><item><title><![CDATA[springboot 自定义注解 + AOP]]></title><link>https://blog.youkuaiyun.com/AmbHowie/article/details/105575529</link><guid>https://blog.youkuaiyun.com/AmbHowie/article/details/105575529</guid><author>AmbHowie</author><pubDate>Fri, 17 Apr 2020 10:58:43 +0800</pubDate><description><![CDATA[原文链接：Cs XJH’s Blog

相信对springboot有一定了解的读者都知道，AOP是其中的一块很有分量的蛋糕。为什么说它很有分量呢？因为它可以处理一些很重要的业务逻辑，比如：事务管理，权限判断，日志记录等。笔者今天正好打算学习下它，特此写一篇博客记录之。
配置
&lt;dependency&gt;
     &lt;groupId&gt;org.springframework.bo...]]></description><category></category></item><item><title><![CDATA[《高性能Mysql》读书笔记（三）：索引类型和高性能索引策略]]></title><link>https://blog.youkuaiyun.com/AmbHowie/article/details/105575476</link><guid>https://blog.youkuaiyun.com/AmbHowie/article/details/105575476</guid><author>AmbHowie</author><pubDate>Fri, 17 Apr 2020 10:57:02 +0800</pubDate><description><![CDATA[原文链接：Cs XJH’s Blog

索引类型
B-Tree索引
B-Tree索引基于B-Tree结构实现，B-Tree是平衡多路查找树，该索引支持全键值、范围键值、键前缀匹配查找。为了清楚地了解数据库如何在磁盘中通过B-Tree索引精确地查找数据，接下来从磁盘层面了解下原理：
系统从磁盘读取数据到内存是以磁盘块为最小基本单位的，所以，初步查询是从磁盘块开始的。
InnoDB存储引擎有页的概念...]]></description><category></category></item><item><title><![CDATA[InnoDB聚集索引，辅助索引，覆盖索引，联合索引]]></title><link>https://blog.youkuaiyun.com/AmbHowie/article/details/105575370</link><guid>https://blog.youkuaiyun.com/AmbHowie/article/details/105575370</guid><author>AmbHowie</author><pubDate>Fri, 17 Apr 2020 10:52:57 +0800</pubDate><description><![CDATA[聚集索引
聚集索引就是按照每张表的主键id和指向叶子结点的偏移量作为B+树的非叶子结点，行记录数据作为叶子结点，叶子结点也称之为数据页，且叶子结点通过双向链表连接。
由于一张数据表只有一个主键，因此一张数据表也只能有一个聚集索引。
聚集索引结构是B+树且叶子结点通过双向链表连接，所以对于主键的排序查找和范围查找都非常快。
辅助索引
辅助索引，也称之为非聚集索引，一张表可以有多个。
辅助索引也是B+...]]></description><category></category></item><item><title><![CDATA[Mysql数据库备份Shell脚本]]></title><link>https://blog.youkuaiyun.com/AmbHowie/article/details/105575095</link><guid>https://blog.youkuaiyun.com/AmbHowie/article/details/105575095</guid><author>AmbHowie</author><pubDate>Fri, 17 Apr 2020 10:47:57 +0800</pubDate><description><![CDATA[原文链接：Cs XJH’s Blog

数据库数据又丢失了！！！
作为一个后端攻城狮，在维护线上数据库时，难免发生数据库被不法分子植入病毒导致数据全部丢失，或者自己手抽delete的时候没有加where条件将所有表清空…
这时，你心里一阵巴凉巴凉，“前端会不会把我祭天了…我还有后悔药可以吃么…”
这里提供一个简单数据库备份脚本，希望可以帮到大家
    # !/bin/bash 数据库数据备份
...]]></description><category></category></item><item><title><![CDATA[ubuntu搭载LNMP环境，并部署Laravel + react前后端分离项目]]></title><link>https://blog.youkuaiyun.com/AmbHowie/article/details/105574919</link><guid>https://blog.youkuaiyun.com/AmbHowie/article/details/105574919</guid><author>AmbHowie</author><pubDate>Fri, 17 Apr 2020 10:41:03 +0800</pubDate><description><![CDATA[很长时间没搭载过LNMP环境了，这一次搭载遇到些问题，故记录下

本次搭载过程的环境：

ubuntu 18.04

首先，更新apt列表并切换到root
apt update 
sudo su

Mysql

安装mysql

apt install mysql-server mysql-client

service mysql status # mysql安装后，默认开启


配置

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