原创 centos6上RPM方式安裝MySQL5.6

在64位的centos6上以RPM方式安裝MySQL5.6 a. 檢查MySQL及相關RPM包,是否安裝,如果有安裝,則移除 rpm -qa | grep -i mysql 若存在通過如下命令刪除: rpm

原创 多任務併發之生產者消費者模式應用

簡介 生產者-消費者模式大家都很熟悉,生產者負責生產數據,並存放到隊列中,消費者負責從隊列中取出數據來消費。可以看出生產者和消費者之間不直接通訊,是通過隊列來通訊的。 生產者和消費者是抽象的概念,可以是線程、進程、系統模塊,而隊列也可以

原创 Java中定時任務的實現:Timer與ScheduledExecutorService的不同

前言 在做後臺任務的時候經常需要實現各種各種的定時的,週期性的任務。比如每隔一段時間更新一下緩存之類的。通常週期性的任務都可以使用如下方式實現: class MyTimerThread extends Thread { @Over

原创 Java中關於字符編碼的一些思考

字符編碼 首先必須瞭解一下計算機中字符編碼的概念。衆所周知,計算機只認識二進制的內容,而人閱讀則依賴於字符的內容,於是纔有了諸如ASCII、utf-8、gbk和unicode等字符編碼的產生。每一種字符編碼都有一張映射表,分別記錄了二進制

原创 linux下mysql的簡單配置及監控

配置文件路徑 mysql啓動的時候便會按照一定的順序尋找配置文件my.cnf,若找到便會加載my.cnf。那怎麼知道當前mysql服務使用的my.cnf文件的路徑呢? 可通過執行命令: mysql --help | grep my.cnf

原创 centos上安裝及配置單臺redis

安裝redis 首先當然是要檢查系統是否安裝了gcc,可通過命令查看:rpm -qa | grep -i mysql 若沒有安裝,那麼可以通過yum安裝,輸入命令: yum -y install gcc  在Linux下安裝Redis非常

原创 VirtualBox常用配置

聽說VirtualBox比wmvare省資源,我試了一下,確實比較小巧,特別是它的啓動方式中有無界面啓動,然後我用xshell遠程連,真的很不錯啊。這裏我記一下幾個常用配置。 安裝64位虛擬機 當我安裝完VirtualBox之後,在選擇

原创 centos上安裝配置tomcat

由於經常要在測試環境上配置tomcat,所以這裏就寫篇博客記一下,免得要用的時候到處搜。 (1)到官網下載tomcat並上傳到目錄 /usr/local 下,解壓,如下圖所示 (2)配置tomcat目錄下的 conf/server.x

原创 GuavaCache簡介(一)

前言 在多線程高併發場景中往往是離不開cache的,需要根據不同的應用場景來需要選擇不同的cache,比如分佈式緩存如redis、memcached,還有本地(進程內)緩存如ehcache、GuavaCache。之前用spring cac

原创 centos上安裝及配置redis cluster

介紹 在沒有redis cluster之前,比較流行的redis集羣方案是基於lvs->twemproxy->redis的,這個方案部署起來比較複雜,一個請求要經過兩層路由纔到redis,而且爲了作高可用還很浪費機器,另外還不支持動態擴容

原创 Java中的類反射與泛型信息

Java中的泛型設計 Java中的泛型類型(geneic type),它只在程序源碼中存在,在編譯後的字節碼中就已經替換爲對應的原始類型(raw type)。既然類文件的泛型信息都已經被擦除,那JVM中就不可能存在泛型這種類型。如JVM中

原创 Java線程池ThreadPoolExecutor簡介(二)

由於ThreadPoolExecutor實在太常用了,以致於我不得不將一些常用的例子與心得記下來。在上一篇《Java線程池ThreadPoolExecutor簡介》中沒講完,這篇繼續。 生產者-消費者模式 在使用了那麼多次線程池後,我

原创 Java線程池ThreadPoolExecutor簡介(一)

在多任務併發的應用場景,線程池ThreadPoolExecutor是必不可少的。使用線程池最主要的好處就是能夠限制系統最大線程併發數、空餘線程複用、線程統一管理、維護一些統計數據如活躍線程數等等。但我感觸最深的是它特別適用於生產者_消費者

原创 java併發庫中的LockSupport介紹及使用

在沒有接觸到LockSupport類之前,我一直很疑惑jdk併發庫中的很多工具類到底是怎麼實現讓線程阻塞的呢?最典型的就是futureTask,主線程調用get()方法會一直阻塞直到結果返回。據我所知,能讓線程阻塞(注意不是休眠)的實現方