原创 Redis優點

Redis是內存型的數據庫,也就是說Redis中的key-value對是存儲在內存中的,因而效率比磁盤型的快 Redis的工作模式爲單線程,不需要線程間的同步操作。Redis採用單線程的原因是因爲其瓶頸在內存和帶寬上,而不是CP

原创 java使用validator進行校驗

html頁面表單提交的對象數據或者接口對接,都需要對接收到的數據進行校驗(非空、長度、格式等等),jdk或hibernate都提供了對object對象的校驗,只需加上相應的註解即可。 引入pom <dependency> <gr

原创 Spring獲取應用上下文通用類SpringContextHolder

獲取應用上下文通用類(以靜態變量保存SpringApplicationContext,可在任何代碼任何地方任何時候中取出ApplicaitonContext) import java.util.Locale; import or

原创 RSA驗籤

RSA簽名驗籤通用類 import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; i

原创 利用反射實現MapStr、MapObj與bean之間的轉換

import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.lang.

原创 MySQL表存儲引擎

存儲引擎時MqSQL區別於其他數據庫的一個最重要特性。每個存儲引擎都有各自的特點,能夠根據具體的應用建立不通的存儲引擎表。MySQL的核心是存儲引擎。 MySQL是開源的,可以根據MySQL預定義的存儲引擎接口編寫自己的存儲引擎,

原创 MySQL體系結構

MySQL體系結構圖 MySQL由以下幾部分組成 連接池組件 管理服務和工具組件 SQL接口組件 查詢分析器組件 優化器組件 緩衝(Cache)組件 插件式存儲引擎 物理文件 MySQL區別於其他數據庫的最重要的特點是其插件

原创 mysql數據庫和實例

數據庫(database) 物理操作系統文件或其他形式文件的集合。MySQL中,數據庫文件可以是 frm、myd、myi、ibd結尾的文件。使用NDB引擎時,數據庫的文件可能不是操作系統上的文件,而是存在於內存中的文件,但是定義不

原创 mandatory和immediate

mandatory和immediate是channel.basicPublish方法中的兩個參數,他們都有當消息傳遞過程中不可達目的地時將消息返回給生產者的功能。RabbitMQ提供的備份交換器(Alternate Exchang

原创 RabbitMQ相關概念

RabbitMQ模型架構 生產者和消費者 Producer:生產者,投遞消息的一方 生產者創建消息,然後發佈到RabbitMQ中。消息包含消息體和標籤。消息體也稱爲payload,實際應用中,消息體一般是一個帶有業務邏輯結構的

原创 AMQP協議介紹

AMQP協議本身包括三層: Module Layer:協議最高層,主要定義了一些供客戶端調用的命令,客戶端可以利用這些命令實現自己的業務邏輯。例如,客戶端可以使用Queue.Declare命令聲明一個隊列或者使用Basic.Co

原创 InnoDB存儲引擎

第一個完整支持ACID事務的MySQL存儲引擎,行鎖設計,支持MVCC,提供類似Oracle風格的一致性非鎖定讀,支持外鍵,被設計用來最有效的利用內存和CPU。 InnoDB體系結構 InnoDB有多個內存塊,可以認爲這些內存塊組

原创 RabbitMQ死信隊列

DLX,Dead-Letter-Exchange,死信交換器。當消息在一個隊列中變成死信,能被重新發送到另一個交換器中,這個交換器就是DLX,綁定DLX的隊列就稱之爲死信隊列。 消息變成死信一般由以下幾種情況: 消息被拒絕(Ba

原创 RabbitMQ簡介

起源 RabbitMQ是採用Erlang語言實現的AMQP(Advanced Message Queuing Protocol,高級消息隊列協議)的消息中間件。 2006年6月,由Cisco、Redhat、iMatix等聯合制定了

原创 RabbitMQ延遲隊列

延遲隊列存儲的對象是對應的延遲消息,所謂延遲消息是指當消息被髮送後,並不想讓消費者立刻拿到消息,而是等待特定時間後,消費者才能拿到這個消息進行消費。 延遲隊列的使用場景有很多,比如: 訂單系統,用戶下單30分鐘內進行支付,30分