<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[架构师必备技能]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hukaijun</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hukaijun]]></copyright><item><title><![CDATA[Mysql数据库导入导出，含docker操作命令]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/105838535</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/105838535</guid><author>hukaijun</author><pubDate>Wed, 29 Apr 2020 14:05:32 +0800</pubDate><description><![CDATA[MySQL导出数据库
#5.7.8之前的版本：
mysqldump --no-defaults -uroot -h192.168.1.30 -P3306 -pdev#123 --default-character-set=utf8 --hex-blob --add-drop-table --force -R --single-transaction --set-gtid-purged=OFF --...]]></description><category></category></item><item><title><![CDATA[solr数据导入和添加中文分词器]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81196419</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81196419</guid><author>hukaijun</author><pubDate>Wed, 25 Jul 2018 09:39:39 +0800</pubDate><description><![CDATA[首先修改solrConfig.xml文件

备份_default文件夹



修改solrconfig.xml



加入如下内容

 


官方示例：
&amp;lt;requestHandler name=&quot;/dataimport&quot; class=&quot;org.apache.solr.handler.dataimport.DataImportHandler&quot;&amp;gt;
  &amp;lt;lst name=&quot;defa...]]></description><category></category></item><item><title><![CDATA[Solr --faceting]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81196231</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81196231</guid><author>hukaijun</author><pubDate>Wed, 25 Jul 2018 09:31:38 +0800</pubDate><description><![CDATA[在Apache Solr中的构面或分组(faceting)指的是将搜索结果分类到各种类别中。在本章中，我们将讨论Apache Solr中可用的faceting类型 -

查询faceting - 返回当前搜索结果中与给定查询匹配的文档数。
	日期faceting - 它返回在特定日期范围内的文档数。
构面或分组(faceting)命令被添加到任何正常的Solr查询请求，并且faceting计数在同...]]></description><category></category></item><item><title><![CDATA[solr介绍和项目示例]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81085366</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81085366</guid><author>hukaijun</author><pubDate>Tue, 17 Jul 2018 17:35:31 +0800</pubDate><description><![CDATA[什么是Solr

Lucene复习：

1、什么是lucene：全文检索工具包

2、Lucene的工作原理：

索引数据的创建

从原始文件中提取一些可以用来搜索的数据（封装成各种Field），把各field再封装成document，然后对document进行分析（对各字段分词），得到一些索引目录写入索引库，document本身也会被写入一个文档信息库；

索引数据的查询

根据关键词解析（qu...]]></description><category></category></item><item><title><![CDATA[设计模式（适配器模式）]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81067377</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81067377</guid><author>hukaijun</author><pubDate>Mon, 16 Jul 2018 16:31:49 +0800</pubDate><description><![CDATA[适配器模式（Adapter Pattern）是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式，它结合了两个独立接口的功能。这种模式涉及到一个单一的类，该类负责加入独立的或不兼容的接口功能。举个真实的例子，读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器，再将读卡器插入笔记本，这样就可以通过笔记本来读取内存卡。我们通过下面的实例来演示适配器模式的使用。其中，音频播放器设...]]></description><category></category></item><item><title><![CDATA[设计模式（原型模式）]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81066787</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81066787</guid><author>hukaijun</author><pubDate>Mon, 16 Jul 2018 16:03:47 +0800</pubDate><description><![CDATA[原型模式（Prototype Pattern）是用于创建重复的对象，同时又能保证性能。这种类型的设计模式属于创建型模式，它提供了一种创建对象的最佳方式。这种模式是实现了一个原型接口，该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时，则采用这种模式。例如，一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象，在下一个请求时返回它的克隆，在需要的时候更新数据库，以此来减少数据库...]]></description><category></category></item><item><title><![CDATA[设计模式（建造者模式）]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81066570</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81066570</guid><author>hukaijun</author><pubDate>Mon, 16 Jul 2018 15:54:34 +0800</pubDate><description><![CDATA[建造者模式（Builder Pattern）使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式，它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。介绍意图：将一个复杂的构建与其表示相分离，使得同样的构建过程可以创建不同的表示。主要解决：主要解决在软件系统中，有时候面临着&quot;一个复杂对象&quot;的创建工作...]]></description><category></category></item><item><title><![CDATA[设计模式（单例模式）]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81026778</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81026778</guid><author>hukaijun</author><pubDate>Fri, 13 Jul 2018 10:05:00 +0800</pubDate><description><![CDATA[单例模式（Singleton Pattern）是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式，它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类，该类负责创建自己的对象，同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式，可以直接访问，不需要实例化该类的对象。注意： 1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有...]]></description><category></category></item><item><title><![CDATA[设计模式（抽象工厂模式）]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81026436</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81026436</guid><author>hukaijun</author><pubDate>Fri, 13 Jul 2018 09:50:01 +0800</pubDate><description><![CDATA[抽象工厂模式（Abstract Factory Pattern）是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式，它提供了一种创建对象的最佳方式。在抽象工厂模式中，接口是负责创建一个相关对象的工厂，不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。介绍意图：提供一个创建一系列相关或相互依赖对象的接口，而无需指定它们具体的类。主要解决：主...]]></description><category></category></item><item><title><![CDATA[设计模式（工厂模式）]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81026205</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81026205</guid><author>hukaijun</author><pubDate>Fri, 13 Jul 2018 09:36:47 +0800</pubDate><description><![CDATA[工厂模式（Factory Pattern）是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式，它提供了一种创建对象的最佳方式。在工厂模式中，我们在创建对象时不会对客户端暴露创建逻辑，并且是通过使用一个共同的接口来指向新创建的对象。介绍意图：定义一个创建对象的接口，让其子类自己决定实例化哪一个工厂类，工厂模式使其创建过程延迟到子类进行。主要解决：主要解决接口选择的问题。何时使用：...]]></description><category></category></item><item><title><![CDATA[设计模式（设计模式简介）]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81026085</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81026085</guid><author>hukaijun</author><pubDate>Fri, 13 Jul 2018 09:31:18 +0800</pubDate><description><![CDATA[设计模式（Design pattern）代表了最佳的实践，通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问，设...]]></description><category></category></item><item><title><![CDATA[Redis使用总结（四、处理延时任务）]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81010575</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81010575</guid><author>hukaijun</author><pubDate>Fri, 13 Jul 2018 09:12:32 +0800</pubDate><description><![CDATA[引言在开发中，往往会遇到一些关于延时任务的需求。例如生成订单30分钟未支付，则自动取消生成订单60秒后,给用户发短信对上述的任务，我们给一个专业的名字来形容，那就是延时任务。那么这里就会产生一个问题，这个延时任务和定时任务的区别究竟在哪里呢？一共有如下几点区别定时任务有明确的触发时间，延时任务没有定时任务有执行周期，而延时任务在某事件触发后一段时间内执行，没有执行周期定时任务一般执行的是批处理操作...]]></description><category></category></item><item><title><![CDATA[Redis使用总结（三、缓存击穿问题）]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81010528</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81010528</guid><author>hukaijun</author><pubDate>Thu, 12 Jul 2018 09:45:04 +0800</pubDate><description><![CDATA[什么是缓存击穿在谈论缓存击穿之前，我们先来回忆下从缓存中加载数据的逻辑，如下图所示因此，如果黑客每次故意查询一个在缓存内必然不存在的数据，导致每次请求都要去存储层去查询，这样缓存就失去了意义。如果在大流量下数据库可能挂掉。这就是缓存击穿。场景如下图所示:我们正常人在登录首页的时候，都是根据userID来命中数据，然而黑客的目的是破坏你的系统，黑客可以随机生成一堆userID,然后将这些请求怼到你的...]]></description><category></category></item><item><title><![CDATA[Redis使用总结（二、缓存和数据库双写一致性问题）]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81010475</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81010475</guid><author>hukaijun</author><pubDate>Thu, 12 Jul 2018 09:42:46 +0800</pubDate><description><![CDATA[首先，缓存由于其高并发和高性能的特性，已经在项目中被广泛使用。在读取缓存方面，大家没啥疑问，都是按照下图的流程来进行业务操作。但是在更新缓存方面，对于更新完数据库，是更新缓存呢，还是删除缓存。又或者是先删除缓存，再更新数据库，其实大家存在很大的争议。目前没有一篇全面的博客，对这几种方案进行解析。于是博主战战兢兢，顶着被大家喷的风险，写了这篇文章。文章结构本文由以下三个部分组成1、讲解缓存更新策略2...]]></description><category></category></item><item><title><![CDATA[Redis使用总结（一、几点使用心得）]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81010279</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81010279</guid><author>hukaijun</author><pubDate>Thu, 12 Jul 2018 09:36:33 +0800</pubDate><description><![CDATA[本文围绕以下几点进行阐述1、为什么使用redis2、使用redis有什么缺点3、单线程的redis为什么这么快4、redis的数据类型，以及每种数据类型的使用场景5、redis的过期策略以及内存淘汰机制6、redis和数据库双写一致性问题7、如何应对缓存穿透和缓存雪崩问题8、如何解决redis的并发竞争问题1、为什么使用redis分析:博主觉得在项目中使用redis，主要是从两个角度去考虑:性能和...]]></description><category></category></item><item><title><![CDATA[Java 使用 Redis]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81009685</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81009685</guid><author>hukaijun</author><pubDate>Thu, 12 Jul 2018 08:49:19 +0800</pubDate><description><![CDATA[安装开始在 Java 中使用 Redis 前， 我们需要确保已经安装了 redis 服务及 Java redis 驱动，且你的机器上能正常使用 Java。 Java的安装配置可以参考我们的  Java开发环境配置  接下来让我们安装 Java redis 驱动： 首先你需要下载驱动包 下载 jedis.jar，确保下载最新驱动包。 在你的 classpath 中包含该驱动包。本站提供了 2.9.0...]]></description><category></category></item><item><title><![CDATA[Redis命令（Redis 服务器）]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81009678</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81009678</guid><author>hukaijun</author><pubDate>Thu, 12 Jul 2018 08:48:13 +0800</pubDate><description><![CDATA[Redis 服务器命令主要是用于管理 redis 服务。实例以下实例演示了如何获取 redis 服务器的统计信息：redis 127.0.0.1:6379&amp;gt; INFO

# Server
redis_version:2.8.13
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:c2238b38b1edb0e2
redis_mo...]]></description><category></category></item><item><title><![CDATA[Redis 命令（Redis 连接）]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81009669</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81009669</guid><author>hukaijun</author><pubDate>Thu, 12 Jul 2018 08:47:12 +0800</pubDate><description><![CDATA[Redis 连接命令主要是用于连接 redis 服务。实例以下实例演示了客户端如何通过密码验证连接到 redis 服务，并检测服务是否在运行： redis 127.0.0.1:6379&amp;gt; AUTH &quot;password&quot;
OK
redis 127.0.0.1:6379&amp;gt; PING
PONGRedis 连接命令下表列出了 redis 连接的基本命令：序号命令及描述1AUTH passwor...]]></description><category></category></item><item><title><![CDATA[Redis 命令 （脚本）]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81009660</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81009660</guid><author>hukaijun</author><pubDate>Thu, 12 Jul 2018 08:45:57 +0800</pubDate><description><![CDATA[Redis 脚本使用 Lua 解释器来执行脚本。 Reids 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为 EVAL。 语法Eval 命令的基本语法如下： redis 127.0.0.1:6379&amp;gt; EVAL script numkeys key [key ...] arg [arg ...]实例以下实例演示了 redis 脚本工作过程：redis 127.0.0.1:637...]]></description><category></category></item><item><title><![CDATA[Redis 命令（Redis 事务）]]></title><link>https://blog.youkuaiyun.com/hukaijun/article/details/81009650</link><guid>https://blog.youkuaiyun.com/hukaijun/article/details/81009650</guid><author>hukaijun</author><pubDate>Thu, 12 Jul 2018 08:45:04 +0800</pubDate><description><![CDATA[Redis 事务可以一次执行多个命令， 并且带有以下两个重要的保证：批量操作在发送 EXEC 命令前被放入队列缓存。 收到 EXEC 命令后进入事务执行，事务中任意命令执行失败，其余的命令依然被执行。在事务执行过程，其他客户端提交的命令请求不会插入到事务执行命令序列中。一个事务从开始到执行会经历以下三个阶段： 开始事务。命令入队。执行事务。实例以下是一个事务的例子， 它先以 MULTI 开始一个事...]]></description><category></category></item></channel></rss>