原创 Java多線程--阻塞隊列

如果隊列滿了,添加元素的線程將會陷入等待狀態,而隊列爲空,獲取元素的線程將會陷入等待。有了BlockingQueue,我們不需要關心什麼時候需要阻塞線程,什麼時候需要喚醒線程。這一切都交給了BlockingQueue。 Arra

原创 計算機網絡--Https

https解決了網絡傳輸數據不安全的問題。 用非對稱加密算法來傳輸密鑰,起到保密的作用。 而非對稱公鑰與私鑰的驗證就是通過認證服務商來保證的,每個瀏覽器都內置了大部分廠商的公鑰。而證書中包含域名、到期時間、客戶公鑰、以及上面信

原创 RabbitMQ-延遲隊列代碼實踐

延遲隊列的本質用的到時死信,如下情況下消息會變爲死信 1 被拒絕、nack並且沒有重新入隊的消息\color{#FF0000}{被拒絕、nack並且沒有重新入隊的消息}被拒絕、nack並且沒有重新入隊的消息 2 消息過期 3 隊列

原创 Redis--String和Hash

String類型 在Redis中value可以爲整數、浮點數、字符串,如果設置的爲整數、字符串,Redis會自動轉爲整數和浮點數, 可以執行自增自減操作,如果對一個字符串執行自增自減,那麼會返回異常。 set命令 做數據緩存,

原创 Redis--BitMap與HyperLogLog

set hello big big字符串在計算機中存儲爲 0110 0010 0110 1001 0110 0111 redis是可以直接獲取每個位,如下 得到的依次如下: 0110 0010 01 發現和推算的一樣。 這

原创 Java--定位問題工具

jps (JVM process status)可以查看Java虛擬機進程執行情況,-l顯示具體的啓動類,-m顯示具體的入參。-v顯示啓動配置的jvm參數 jps -l jstats(JVM statistic Monitor

原创 Redis--慢查詢

配置文件中配置慢查詢日誌相關的指標 slowlog-log-slower-than 10000 慢查詢命令的閥座值,單位爲微秒,10000即爲10毫秒。注意該閾值爲命令從命令隊列拉出來執行完成後的時間,如果爲負數, 那麼不開啓慢

原创 Redis--SET與ZSET

Set數據類型,存儲的數據不能重複,類似於Java中的HashSet。 SMEMBERS 獲取指定key中所有的成員,該命令執行會有一定的風險,如果集合中有很多個數據,返回大量的數據, 會有一定的網絡和內存開銷,會阻塞redi

原创 Redis--List

lpush 從左邊(隊頭)添加數據。 rpop 從右邊(隊尾)拉取數據 lpush+rpop可以實現隊列。\color{#FF0000}{ lpush+rpop可以實現隊列。}lpush+rpop可以實現隊列。 lpu

原创 方案設計--掃碼登陸

掃碼登陸實現方案 參考: https://mp.weixin.qq.com/s/i5Zp6nd0beCOHPEZUpmMNg 彈屏

原创 Java--1.8Optional

class User { private String name; public User(String name) { this.name = name; } public String

原创 ElasticSearch--自定義分詞器

PUT /fs { "settings": { "analysis": { "analyzer": { "paths": { "tokenizer": "path_hi

原创 數據庫-ACID即實現方式

ACID:原子性、持久性、一致性、獨立性 事務的原子性(Atomicity):是指一個事務要麼全部執行,要麼不執行,也就是說一個事務不可能只執行了一半就停止了。比如你從取款機取錢,這個事務可以分成兩個步驟:1劃卡,2出錢。不可能劃

原创 SpringBoot-日誌收集與設置調用鏈requestid到日誌中

log4j可以配置日誌打印的格式、輸出的位置,現在通過擴展,收集指定級別的日誌,比如做日誌監控什麼的。 log4j2.xml配置 <configuration type="off" packages="com.test.confi

原创 RabbitMQ--消費限流與重回隊列機制

Rabbitmq提供qos功能,在一定數量的信息未被ack或nack時,不消費新的消息。 void basicQos(int prefetchSize, int prefetchCount, boolean global) thr