- 博客(133)
- 资源 (14)
- 收藏
- 关注
翻译 4.1.2 在Windows环境使用.zip文件安装ES
翻译地址:Install Elasticsearch with .zip on Windows | Elasticsearch Guide [8.1] | Elastic声明:由于大部分使用场景都是在Linux或者MacOS上,在Windows的环境上使用的叫上,次长内容不做翻译了,内容大概跟4.1.1类似,大家可以自行查看。另外,接下来几节分别是在Debian包安装,RPM安装,Docker容器安装ES,具体链接如下:Install Elasticsearch with Debian P
2022-08-28 16:09:34
241
翻译 4 创建ES
翻译地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html这个部分包含如下信息,如何安装ES以及让它运行,包括:下载 安装 启动 配置支持的平台
2022-07-17 16:21:07
383
翻译 3 快速入门
这个手册帮助初学者如何开始:在测试环境安装和运行ES 添加数据到ES 查询和排序数据 在查询期间从非结构内容中抽取字段运行ES安装ES最简单的方式
2022-06-12 21:36:43
1370
翻译 2 在8.1版本有什么新的变化
翻译地址:What’s new in 8.1 | Elasticsearch Guide [8.1] | Elastic这里有ES8.1版本的新的和改进的亮点。其他的版本:8.0
2022-06-05 15:18:31
132
翻译 1.3 可扩展的和有弹性的:集群,节点和分片
翻译地址:Scalability and resilience: clusters, nodes, and shards | Elasticsearch Guide [8.1] | ElasticES被构建的总是可用的,并且可以伴随着你的需要去进行扩展。它做这个是通过天生的分布式特性。对于一个集群你可以添加服务器(节点)去增加容量,以及ES会自动的分布你的数据到所有的节点上和查询加载你的数据在你的所有节点上。不需要改造你的应用,ES知道如何...
2022-05-24 14:21:12
171
翻译 1.2 信息:查询和解析
翻译地址:Information out: search and analyze | Elasticsearch Guide [8.1] | Elastic当你使用ES作为一个文档存储以及检索文档和他们的元数据的时候,这个真正的实力来自于能够简单的访问全套的查询能力,这个是构建在Apache Lucene的查询引擎包上的。ES提供了一个简单的,条理清晰的REST API去管理你的集群和索引以及查询你的数据。为了测试的目的,你可以简单的直接通过命令行或者在Kibana上通过开发者平台去提交你的请求。通
2022-05-14 22:13:57
118
翻译 1.1 ES是什么
这里有ES8.0新增加的和改进的内容的强调。为了得到这个版本的最详细的信息,看这个Release notes和Migration guide。7.x REST API 的兼容8.0对于ES REST APIs引入了几个突发性的变化。
2022-05-09 13:29:37
623
翻译 1 数据输入:文档和索引
ES是一个分布式的文档存储。代替存储列式数据行,ES存储复杂数据结构,内容已经被JSON文档序列化了。当你在一个集群中有多个ES节点的时候,存储的文档会被分布到整个集群中并且可以立刻被任何一个节点访问到。当一个文档被存储的时候,它被索引了并且可以近实时(一秒以内)的检索到。ES使用一个称为倒排索引的数据结构,可以支持非常快的全文检索。一个倒排索引列出了出现在任何一个文档中的每一个唯一的词,并且可以识别出每一个词对应的所有的文档。一个索引可以认为是一个被优化的文档集合,并且每一个文档都是一个字段集合,
2022-05-02 14:37:32
117
原创 缓存设计总结
常见的缓存实现方式有:FIFO,LRU,LFU。使用顺序推荐:FIFO<LRU<LFUFIFO先进先出,所谓的先进先出就是对于先进入缓存中的数据进行优先淘汰的策略。这种策略虽然使用起来非常简单,实际上会导致命中率很低,效率很低。举个例子:有一个非常热门的数据,第一个进入队列的,然后先进先出淘汰的策略就会把这个热门的数据给淘汰掉,这样实际上是很不合理的,不推荐使用。LRU...
2022-02-28 14:55:23
126
原创 分布式锁介绍
众所周知,JVM的并发包中提供了大量的锁工具类,比如说像:synchronized,volatile,lock等等来帮助我们实现线程的安全,但是随着技术和架构的日益发展,现在面临的问题并不只是JVM的线程安全问题,现在的系统架构基本上都是分布式部署的,那就相当于会有多个JVM进程,因此如何保证分布式系统中线程安全性又是一个问题,不过很幸运的是,当今很多开源的框架都可以帮我们实现分布式锁,比...
2019-09-22 13:40:17
272
原创 桐桐百天了
窗外老树长新芽,院里枯木又开花;春夏交替,桐桐已经一百天了,此刻的她正躺在我旁边的小推车里面睡的正香,可爱极了。 感谢天感谢地让桐桐平安快乐的度过了人生的100天。在这100天里,桐桐的脸六月的天,时而大哭,时而欢笑,让人捉摸不透;在这100天里,桐桐也有了很大的变化,体重和身高都增加了,体重已经7.2kg了,身高也达到了68cm,这得得益于母乳的营养啊,感谢老婆,老婆辛苦了;小桐桐...
2019-09-07 20:47:19
341
原创 满月啦
2019年2月26日桐桐正式满月了,时光荏苒,亦如白驹过隙,在不知不觉间春回大地,万物复苏,桐桐满月,时间都去哪儿了?正如歌词一样,记忆中的小脚丫,肉嘟嘟的小嘴巴,满脑子都是孩子哭了笑了。这一个月的时间,桐桐也慢慢的长大了,身长有59.5cm了,体重都5.12公斤了,长得还挺快的,更希望她能健康长大。 回忆这一个月的过往,我们由最初的不适应变的逐渐的适应了起来,也得心...
2019-09-07 20:46:32
238
原创 桐桐出生啦
经过十多个月的漫长等待,终于在2019年1月27日23点20分(阴历腊月二十二)于北京迎来了一个七斤二两的小棉袄,老婆太辛苦了,也终于解脱了,感谢,感恩。 女儿出生之后,自然就要取名字,根据生辰八字来算,命里喜水和木,忌火与金,因此名为王羽桐,小名桐桐,寓意为希望她能展翅高飞,又不至于飞得太高无处落地,又取自家有梧桐树,自有凤凰来的典故,有屋栖金凤之意。 名字就是一个代号,...
2019-09-07 20:32:24
1327
原创 ApplicationContextAware和BeanFactoryAware使用理解
1.Spring容器会自动把上下文环境对象调用ApplicationContextAware接口中的setApplicationContext方法;当一个类实现了这个接口之后,这个类就可以非常方便的获取到ApplicationContext中的所有的bean;简而言之,言而总之,此类可以获取到spring配置文件中所有的bean对象。2.基本原理见如下代码,核心类:ApplicationCon...
2019-07-07 14:09:41
6785
原创 CAP理论
什么是CAPcap理论是在2000年7月份由Eric Brewer教授在ACM会议上提出的。两年后,麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了CAP。从此,CAP理论成为了分布式计算领域的非常重要的理论。cap分别代表的含义是:一致性(Consistency),可用性(Availability),分区容错性(Partition tolerance)。C...
2019-04-02 20:37:10
526
原创 synchronized关键字原理解析
引言了解synchronized关键字原理之前首先简单了解下JVM的工作内存和主内存的一个概念,这也是导致线程安全性问题的原因所在;线程在操作变量的时候首先会从主内存读取到自己的工作内存中,然后进行各种操作,操作完成后再load到主内存中完成数据共享,此时在这个工程中如果出现另外一个线程也在操作同样的数据,就会出现线程安全性的问题了,如下图所示:基于上面的问题,JVM提供了大量的非常好...
2019-03-03 20:47:36
738
原创 MySql索引字段为NULL值答疑解惑
引言此处就不详细的谈测试的过程了,只说结论,大家平常设计开发的过程中就可以以此为标准就OK了。结论当在创建的索引的字段上出现空值的时候,所创建的索引是起作用有效果的,去谷歌或者百度的时候出现各种言论,其中有很多说不起作用的,这种说法是不正确的。下面摘自《高性能mysql第三版》关于表设计的优化论述:尽量避免NULL,应该指定列为NOT NULL,除非你就想存储NULL。在MySQL中...
2019-01-19 18:41:57
2913
翻译 25.堵塞队列(Blocking Queues)
一个堵塞队列是这样的一个队列,当你尝试着从队列中出列的时候,这个队列是空的,或者当你入队列的时候,队列已经满了。一个线程尝试着从一个空的队列中读取数据的时候被堵塞了一些其他的线程写入一些元素到这个队列中。一个线程尝试着往一个满的队列中写入元素被堵塞了直到一些其他的线程读取数据制造一些空间,或者通过出列一个或者更多的元素,或者清空整个队列。这里有一个图示,显示两个线程是如何通过一个堵塞队列进行合...
2019-01-12 19:09:58
225
原创 高性能Java缓存----Caffeine
简单介绍Caffeine是新出现的一个高性能的Java缓存,有了它完全可以代替Guava Cache,来实现更加高效的缓存;Caffeine采用了W-TinyLFU回收策略,集合了LRU和LFU的优点,提供了一个最佳的命中率,在效率上可以秒杀Guava Cache,下面盗取一个来自网络的性能比较的截图:如何使用Caffeine使用非常简单,跟Guava Cache的API使用几乎一...
2019-01-12 18:51:45
4397
原创 SimpleDateFormat并发问题原理分析与正确使用
SimpleDateFormat在多线程场景下会出现问题,JDK中类注释也给出了明确说明,: * Date formats are not synchronized. * It is recommended to create separate format instances for each thread. * If multiple threads access a format ...
2018-12-02 19:03:41
720
4
原创 CompletableFuture实现异步获取结果并且等待所有异步任务完成
对于的使用可以参照这篇文章:https://blog.youkuaiyun.com/jianjun200607/article/details/83996833下面主要用代码的方式描述下通过CompletableFuture实现异步获取结果并且等待所有异步任务完成:/** * CompletableFuture的AllOf功能测试,等待所有任务执行完 * */public class Co...
2018-11-13 23:28:32
36133
原创 使用Future实现异步回调的方式
在JDK5中增加了Future异步获取结果的功能,但是这种方式在获取的时候是阻塞的,在正常场景下这种实现方式肯定是不太友好的,当然可以通过轮询的方式去获取异步结果,但是这种方式比较消耗CPU并且获取结果也不会太及时,所以也不提倡使用;在jdk7中提供了CompletionService的take和pool方法,来获取执行的结果;jdk8中的CompletableFuture也是非常强大的实现了异步...
2018-11-12 22:46:40
3743
原创 非正常空格,trim不掉的空格(用正常空格replace不掉)
正常空格的Ascii值为32,这种的可以通过replace或者trim可以替换掉或者删除掉。但是最近在项目中发现会出现Ascii值为160的空格,这种是无法通过replace或者trim处理的,那么怎么处理呢?这种的确实不太好处理。处理方案:"中 国".replaceAll("\\u00A0","")各种特殊含义的字符如下图所示:备注:怎么打出来上面的那种空格呢?ctrl+sh...
2018-09-17 22:52:15
5488
3
原创 查看Linux系统是32位 or 64位
为什么要知道系统是32位还是64位的,因为这个涉及到了JVM堆内存设置的问题,一般32位,限制在1.5G到2G;对于64位,一般是无限制的,但是并不是越大越好,想具体了解这块的具体可以谷歌了解;那么,怎么查看Linux系统是32位还是64位?可以通过命令uname -m ,进行查看,x64、amd64、x86_64、x86-64一般表示64位系统,i386、i486、i586、i686、x86...
2018-08-23 08:11:06
928
翻译 24.信号量(Semaphores)
一个信号量是线程同步的概念,它可以用来在线程之间发送信号去为了避免丢失标志,或者去监控像你使用锁的一个临界区域。Java 5在java.util.concurrent包中带来了信号量的实现,以至于你不需要实现你自己的。当然,知道它背后的原理并且去使用它是有用的。Java 5带来了内建的Semaphore,以至于你不需要去实现它。你可以在java.util.concurrent.Semaphore类...
2018-04-21 17:57:34
2618
原创 遍历当前路径下目录并移动shell脚本
#!/bin/bashstr="scm_image"function mvfile(){ for file in `ls $1` do if [ -d $1"/"$file ] then if [ $file != $str ] then len=${#str} substr=${file:$len} echo $s...
2018-04-21 11:20:30
1858
翻译 23.重入锁死(Reentrance Lockout)
重入锁死是跟死锁和嵌套的监控程序锁死相似的一个场景。重入锁死也在读写锁中提到过了。重入锁死可能会发生在如果一个线程重入一个锁中,ReadWriteLock或者一些其他的同步器不是可重入的。可重入的意味着已经持有一个锁的线程可以再一次持有它。Java的同步块是可重入的,因此下面的代码将会没有问题的工作:public class Reentrant{ public synchronized ou...
2018-04-15 22:03:08
391
翻译 22.Java中的读写锁
一个读写锁是一个比在上一篇文章中的Lock实现来说更加复杂的锁。想想下你有一个应用读写一些资源,但是写没有和读一样完成。两个线程读相同的资源不会互相引起问题,以至于想读这个资源的多个线程同时授予访问权限。但是,如果一个线程想写这个资源,那么读和写都必须不能同时在进行中。为了解决这个允许多个读一个写的问题,你需要一个读写锁。Java 5在java.util.concurrent包中提供了读写锁的实现...
2018-04-15 18:51:08
422
翻译 21.Java中的锁
一个锁是一个线程同步机制,像同步块除了锁可以是更复杂的比java的同步块。锁(以及其他的更先进的同步机制)都是使用同步块被创建的。从Java 5开始这个java.util.concurrent.locks包包含了几个锁的实现,以至于翻译地址:http://tutorials.jenkov.com/java-concurrency/locks.html
2017-12-10 17:53:08
228
原创 java中double计算精度问题
最近在工作中碰到一个关于double精度的问题,记录下。首先见如下代码,最终的计算结果是不相等的,因为最终invoiceItemMoneyAmount的值变成了168.82000000000002double money= 168.82;List itemMoneyList = Lists.newArrayList();itemMoneyList.add("23.80");itemM
2017-11-05 15:12:11
1923
原创 eclipse导入maven模块项目步骤以及问题处理
目前很多的maven项目都是分模块开发的,例如一个项目分为:web模块,biz模块,service模块,api模块,job模块等等,这种情况在导入到eclipse的时候可能会有很多编译错误,下面就教给大家如何处理在eclipse中导入maven模块项目以及处理编译问题。
2017-10-13 18:27:08
15786
原创 工作中常用命令总结
1.确切查看文件容量:du -sh *2.Ctrl+a 行首;Ctrl+e 行尾;Ctrl+u 清空在命令行上的命令3.解压缩:tar -zxvf x.lib;unzip *.zip4.压缩:tar -zcvf lib.tgz lib;zip test.zip test5.sort -t:-k2 | uniq6.替换文件内容:sed -i "/a/s/21/1/
2017-07-23 10:56:26
293
原创 eclipse的maven工程缺少Maven Dependencies解决办法
修改.classpath文件,增加如下内容: 如果src目录也不对,修改src内容如下:
2017-06-29 13:11:23
2474
1
原创 Java实现快速排序算法
快排算法思想:首先找一个值作为基准,一般是第一个值作为基准,假设基准值为key,然后分别定义start为i,end为j,将基准值key与j比较,如果比j小则j--继续比较;如果比j大则swap进行交换;接着将基准值key与i比较,如果比i大则i++继续比较;如果比i小则swap进行交换,直到i=j位置,第一次比较结束;然后递归将分开的两段进行比较,这样就可以排好序了。时间复杂度:理想为O(nl
2017-06-16 15:57:13
604
翻译 20.滑倒的条件(Slipped Conditions)
滑倒的条件是什么?滑倒的条件意味着,那个来自于特定的时间的一个线程检查一个特定的条件直到这个条件作用于它之上,但是这个条件已经被另外一个线程改变了以至于对于第一个线程是错误的。这里有一个简单的例子:public class Lock { private boolean isLocked = true; public void lock(){ synchron
2017-06-16 15:56:32
763
翻译 19.嵌套的监控程序锁死
嵌套的监控程序锁死是怎么样发生的嵌套的监控程序锁死跟死锁的问题类似。一个嵌套的监控程序锁死像下面这样发生:Thread 1 synchronizes on AThread 1 synchronizes on B (while synchronized on A)Thread 1 decides to wait for a signal from another thread befor
2017-06-16 15:55:52
936
翻译 18.饥饿和公平(Starvation and Fairness)
如果一个线程没有被授予CPU时间,因为其他的线程全部获取到了,它称之为“饥饿”。这个线程“会饿死的”,因为其他的线程被允许这个CPU时间代替他。饥饿的解决方案就是公平----那就是所有的线程公平的获取一个机会去执行。在Java中的饥饿的原因下面三个公共的原因将会导致在Java中的线程的饥饿:翻译地址:http://tutorials.jenkov.com/java-concur
2017-06-04 16:17:59
819
redis作为服务服务启动的需要的两个文件之redis.conf文件
2017-01-24
redis作为服务服务启动的需要的两个文件之redis文件
2017-01-24
非常实用的截取字符串的代码
2009-08-13
C# 文本编辑器 任意使用各种格式
2009-08-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人