周末没事看北京尚学堂之前的公开课视频,发现了白贺翔老师有一节课讲redis 3.0的视频教程,还不错,以下是学习笔记。
一、单机版搭建
首先是下载地址:http://redis.io/download,假设我们下载是redis-3.0.0-rc2.tar.gz
安装步骤:
1. 把我们下载好的redis-3.0.0-rc2.tar.gz放到Linux的/usr/local文件夹下
2. 解压tar -xzvf redis-3.0.0-rc2.tar.gz -C /usr/local/
3. 进入到redis-3.0.0-rc2目录下,进项make
4. 进入到src下[……]
Read more
公司项目的rpc服务基于阿里巴巴的dubbo架构,开发dubbo项目的时候测试只能跑junit test,但实际工作中由于很多时候junit test写的不全,出了问题只能再加日志分析原因(典型的没事找事型),这次和公司移动端的推送联调IM服务,发现他们已经把老夫之前听说的远程debug用在了实际工作中,刚好趁此机会实验了一把,以下是笔记,以待自己和需要的朋友参考。
1. dubbo服务的设置
我们自己观察dubbo的start.sh和start.bat这两个脚本会发现有如下两端代码
①. start.sh
JAVA_DEBUG_OPTS=""[......]
Read more
我们都知道多线程是为了加快数据处理的,但至于怎么用,因为在工作中,我一直很少用,所以对多线程不是很了解。之前处理一个功能时,由于没有经验,导致速度很慢,前一段时间经老大提示,可以用多线程解决,突然发现原来多线程可以这么用可以来处理这一类问题,今天记录一下,作为笔记也作为一个给读者的参考,好了先说一下问题:公司的业务的业务不仅分模块而且是分库分表的,这样就导致一个问题,当我们要查询一个数据时,不能连表查询,不能只通过一个接口获得数据,最容易想到的常规做法就是:
public List<Data> queryDatas() {
List<Data> d[......]
Read more
经过前面几篇文章的努力,我们的solr服务终于跑起来了,可以对外提供服务了,虽然有一点小瑕疵(对中文支持不是很好,但可以通过IK分词来解决,示例可以看老夫之前的这篇文章),但还是存在一个致命的问题:单点!对于现代互联网公司,这个一个不可忍受的缺点,所以本节我们就来解决这个问题,在搭建集群之前,我们先看看要搭建的集群的目标:
从这张图上,我们可以清晰看到我们需要三台zookeeper服务器和四台solr服务器,一共七台服务器(实际上老夫去哪找那么多集群,所以使用伪分布式的方式搭建集群,即在同一台服务器上创建多个实例模拟集群),确定了目标之后,我们就开始搭建我们的集群。
四. zookee[……]
Read more
三. 使用solrJ和spring集成
再上一篇和上上一篇文章中我们先搭建了一个solr服务器和学习了solr服务器后台的使用,这一次我们将直接进入实战:和spring集成,在继承之前我们先看看所需要的solr的jar文件都是那些(spring的那些大家就自己玩吧,我相信都知道的)
1. 所需的jar文件
直接上图片,就是图上的这些图片,当然大家可以自己找maven依赖(jar文件这个最简单了,没有的话一定会报classnotfoundException,加上就好了)
2. spring的配置
<?xml version="1.0" encodin[......]
Read more
二. 认识solr管理后台
上一篇文章中我们搭建起来的其实就是一个solr管理后台,这节课我们就是来简单认识他,具体的操作当然由大家自己试验了。下面我们先直接选择左侧的默认collection1你会看到下面出来很多东西,其中有几个比较重要:Analyzer、Documents、Query,下面我们认识第一个:Analyzer。
1. 认识Analyzer
查看当前索引库中的字段列表,及分词效果。
①. 域、字段列表:所有的域都是定义在schema.xml配置文件中。在solr中域必须是先定义后使用。
如果想修改域的定义及自定义域需要修改schema.xml。
②. 查看域的分词效果[……]
Read more
一直对全文索引很感兴趣,但由于工作上一直没用到,所以就没有上心去看,有一次闲着无聊,偶然发现传智播客的公开课上有一节讲这个的,听了一下还不错,于是整理成笔记,供老夫和其他朋友需要的时候参考。
老夫相信看这篇文章的人对solr一定有所了解,不了解的请用Google百度一下,所以虽然是一个系列,但这里老夫只会讲怎么用,争取让看了这个系列文章的人能里面先跑起来,好了,下面直接切入主题。
一. solr的安装与配置
1. solr的运行环境
① . 需要安装jdk,要求jdk的版本为1.7.0以上版本。
② . Tomcat要求7以上版本。
③ . 操作系统:linux、windows都可以。[……]
Read more
公司在做一个社区应用,由于我朝特色,众所周知社区应用有一个很重要的就是要进行敏感词的过滤,这块由一个同事负责,听他说,有一个算法叫DFA,可以做这个,个人比较感兴趣,就到网上查了一些资料,有一篇文章写的特别好,老夫的这篇文章就是把其核心的部分(就是怎么应用,老夫一直有一个观点,理论弱于实践,理论懂得再多不会用一点用没有,所以老夫认为应用是核心)摘出来,留作笔记,如果有想了解其原理的,请点击下方的参考资料,好了,既然是应用那么就直接上代码了:
package cn.bridgeli.dfa;
import java.util.HashSet;
import java.util.Itera[......]
Read more
身为程序猿,可以说天天都会遇到bug,今天没为什么记下这次bug呢?说来惭愧,因为这次bug是由于自己不仔细没有仔细检查没有测试就对线上数据下手造成的,一方面是记下这个bug的由来,修复方法和犯下的失误的地方,另一方面也是留下记录警示自己操作线上数据一定要小心再小心,还有就是不要对自己过于自信,测试很重要。
先说一下bug的缘由,19号晚上我们上线了一个新功能,有一个功能模块是另外一个同事负责的,所以对其实现不是很了解,但数据导入有老夫负责,所以数据导入的时候,有一个结束时间没有考虑清楚,只有日期没有时间(产品经理和另一位同事当时也没有给我说),所以数据库里面结束时间变成了默认的“00:00:[……]
Read more
在上篇中,我们已经实现了websocket,但还有一个核心的业务实现类没有实现,这里我们就实现这个业务核心类,因为老夫参与的这个系统使用websocket发送消息,所以其实现就是如何发送消息了。
7. NewsListenerImpl的实现
package cn.bridgeli.websocket;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import cn.bridgeli.DateUtil;
import cn.bridgeli.enumeration.PlatNewsCategoryTy[......]
Read more
近期评论