原创 java獲取某個月最後一天

代碼如下: public static String getLastDayOfMonth(int year,int month) { Calendar calendar = Calendar.getInst

原创 談談自定義註解及相關開發實踐

說道自定義註解,可能大家都不太陌生,實際開發過程中可能多多少少也會用到,今天這邊就通過自定義註解結合反射,分享一些實際開發經驗。 好吧,關於什麼是自定義註解,以及元註解什麼什麼的我這邊就不一一介紹了,大家自行百度,內容也都比較簡單

原创 談談mysql locate函數

大家都知道,當我們mysql需要使用模糊查詢的時候,往往會使用like去做相關查詢條件的模糊匹配,但是很多場景下,使用locate會獲取同樣的效果 create table user( id int primary key au

原创 談談redis的持久化機制

說道redis的持久化機制,相信有經驗的開發人員可能都知道,rdb,aof。但是不知道大家有沒有仔細的去想過幾個問題: (1)rdb和aof到底是如何工作的? (2)既然有了rdb爲什麼還要有aof呢? (3)如果我既設置了rdb

原创 spring中的事件編程模型

最近一直忙於業務開發實現,很少有機會做一些技術沉澱,這可能對一個技術工作者來說,未必是一件好事。之前就一直想寫一篇關於spring事件驅動模型相關技術博客,主要還是想給自己做一個技術總結,同時也好和大家做一做分享交流。 好吧,下面

原创 談談redis的過期刪除策略與內存淘汰機制

今天這邊主要說說redis內存的過期刪除策略與內存淘汰機制。 1,刪除策略 對於redis中設置了過期時間的key,我們知道對於時間到期了,這個key就會被 “刪除”,但是這個key真的是一到期就會馬上被刪除嗎? 定時刪除

原创 談談redis緩存三大問題(三)- 緩存擊穿

首先還是先看下緩存擊穿的一個基本概念: 如上圖,這個圖應該在其他博文中出現過很多次了,同樣,緩存擊穿就是在某個時刻。當某個熱點key失效的瞬間,大批量請求進來,造成數據庫壓力太大導致數據庫服務宕機。 當然關於緩存擊穿也是有對應的

原创 從源碼角度聊聊spring中的FactoryBean

說到spring,相信對於BeanFactory大家肯定都不陌生,百度上隨便一搜,99都會說什麼字如其意:bean工廠啊,容器,管理bean的。。。對於BeanFactory其實就是這樣子的,這裏我說的肯定沒有別人好,這邊就不一一

原创 linux安裝zookeeper詳細步驟

安裝前首先當然是下載安裝包了。我們進入,zookeeper官網: https://zookeeper.apache.org/releases.html 前提:由於zookeeper是使用java語言開發的,所以,在安裝zookee

原创 談談redis緩存三大問題(二)- 緩存雪崩

今天抽時間和大家聊聊redis的雪崩以及redis集羣的演變過程。 首先來說說什麼是redis的緩存雪崩。 如圖是一個比較常見的業務流程圖,先去看緩存是否存在,如果存在返回,如果不存在直接查數據庫,並更新緩存。 一般在設置緩存的

原创 談談redis緩存三大問題(一)- 緩存穿透

這幾天抽時間和大家一起聊聊redis緩存在生產環境使用中的幾大問題,以及如何去優化代碼去避免他! 首先我們來看看緩存使用過程的一個問題:緩存穿透 何爲緩存穿透? 如下是一個正常的業務流程圖:比如我一個正常的中國移動用戶(非廣告)進

原创 redis配置詳解

關於redis配置,詳細解釋如下: # 配置大小單位,開頭定義了一些基本的度量單位,只支持bytes,不支持bit 對大小寫不敏感 # 1k => 1000 bytes # 1kb => 1024 bytes # 1m => 1

原创 java8 stream的多字段排序(踩坑)

關於java8 的stream排序用法這裏不做多說,這裏介紹下曾經在多字段排序時遇到過的一個坑。 需求:需要根據id去分組,然後取出每組中行號最大的一個對象值。 想到可以利用stream的多字段排序,先按id去排,再看行號去排,d

原创 centos 開放端口

(1)獲取活動的區域 [[email protected] run]# firewall-cmd --get-active-zones (2)開啓某個端口 [[email protected] run]# firewall-c

原创 docker容器常用操作

輸入 docker 可以查看Docker的命令用法,輸入 docker COMMAND --help 查看指定命令詳細用法。 運行容器 docker run --name 容器名 -i -t -p 主機端口:容器端口 -d -v 主機