收藏 / 列表

軟件求生 - 面試官問我:Redis內存滿了會怎樣?我笑着講了一個真實事故

你以為Redis只是個簡單的緩存?不,它吃內存的速度堪比我深夜點外賣的速度。今天我們就通過一個真實的“線上事故”,聊聊Redis的物理資源消耗、內存滿了會發生什麼、以及我們該怎麼優雅地做內存優化。 引言 那天,我正愜意地泡着咖啡,準備開個早會。結果Slack上一個紅色警告信息像驚雷一樣炸響: “Redis節點內存使用率100%,應用開始大量超時!”

redis , yyds乾貨盤點 , 數據 , 緩存 , 數據庫

老污的貓 - Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and……

問題描述 執行SQL聯表查詢,原始報錯信息 (1267, "Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '='") 這是由於不同表使用了不一致的字符集導致的衝突 解決方案 修改表或字段的格式至同一結構 使用轉格式命令單獨執行本次S

MySQL

大廠碼農老A - 凌晨零點,一個TODO,差點把我們整個部門抬走

那晚杭州的悶熱,至今記憶猶新。 2021年,我剛來到杭州這座“卷城”,入職了一家夢想中的互聯網大廠。作為一名電商新人,我一頭扎進了促銷和會場的研發中。 那晚,我們正為一個S級的“會員閃促”活動做最後的護航,它將在零點準時生效。作戰室裏燈火通明,所有人都盯着大盤,期待着活動上線後,GMV曲線能像火箭一樣發射。 然而,我們等來的不是火箭,而是雪崩。 剛過0點,登登登登… 告警羣裏的消息開始瘋狂刷屏,聲

springboot , JAVA , 故障 , 後端 , 前端

悲傷的鴨蛋 - dependencies、dependencyManagement區別

對比項 dependencyManagement dependencies 功能 聲明版本(不引入依賴) 實際引入依賴到項目 作用 統一管理版本,避免衝突 決定項目運行時依賴 生效範圍 當前項目及子項目 僅當前項目 版本控制 子項目默認繼承 可覆蓋父項目版本 總結: dependencyManagement:定規矩(版本),不幹活(不引入)。 dependenc

maven , dependencies , dependency-management

打盹的猴子 - 策略模式(Strategy Pattern)深度解析教程

一、模式定義 策略模式屬於行為型設計模式,通過定義算法族並將其封裝為獨立的策略類,使得算法可以動態切換且與使用它的客户端解耦。該模式通過組合替代繼承,符合開閉原則(對擴展開放,對修改關閉)。 二、核心角色 Strategy(策略接口) 定義所有支持的算法的公共接口 ConcreteStrategy(具體策略) 實現策略接口的具體算法

設計模式 , JAVA , 策略模式

vivo互聯網技術 - vivo Pulsar 萬億級消息處理實踐(2)-從0到1建設 Pulsar 指標監控鏈路

作者:vivo 互聯網大數據團隊- You Shuo 本文是《vivo Pulsar萬億級消息處理實踐》系列文章第2篇,Pulsar支持上報分區粒度指標,Kafka則沒有分區粒度的指標,所以Pulsar的指標量級要遠大於Kafka。在Pulsar平台建設初期,提供一個穩定、低時延的監控鏈路尤為重要。 系列文章: 《vivo Pulsar萬億級消息處理實踐-數據發送原理解析和性能調優

大數據 , 消息隊列 , kafka , pulsar

牛肉燒烤屋 - TCP 真的存在“粘包”問題嗎?

引言 許多開發者都曾面對過這樣一個的問題:明明分別調用兩次send()發送了"Hello"和"World",接收方卻可能在一個recv()調用中讀到完整的"HelloWorld";或是發送了一個完整的 JSON 對象,接收端卻需要多次讀取才能拼湊出完整數據。這種現象被中文技術社區廣泛稱為“TCP 粘包” 然而,若我們深入 TCP 協議的設計本質,會發現一個令人困惑的矛盾——RFC 文檔中從未定義過

tcp , 計算機網絡 , 後端

seazhan - 【Java多線程】斷點續傳 如何使用Java多線程下載網絡文件

如何使用Java多線程下載網絡文件,並實現斷點續傳 在現代網絡應用中,多線程下載是一種常見的技術,它可以顯著提高下載速度並提供更好的用户體驗。本篇文章將介紹如何使用Java實現多線程下載,並結合項目中的代碼作為示例進行講解。 1. 多線程下載的基本原理 多線程下載的基本思想是將一個文件分成多個部分,每個部分由一個線程獨立下載,最後將這些部分合併成完整的文件。這樣可以充分利用帶寬和計算資源,提高下載

多線程 , JAVA

王中陽講編程 - 高階面經:Spring框架全析

在 Java 開發的浩瀚世界裏,Spring 框架無疑是一顆璀璨耀眼的明珠。無論是初涉編程領域的新手,還是經驗豐富的資深開發者,都難以忽視它的強大與實用。它宛如一把萬能鑰匙,為諸多複雜的企業級應用開發難題解鎖,那麼 Spring 框架究竟是什麼呢?下面就帶你一探究竟。 一、Spring 框架 是什麼? Spring 是輕量級的控制反轉(IoC)和麪向切面(AOP)的容器框架,可以很方便地對數據庫進

spring , 框架 , java框架 , JAVA , 後端

字節幺零二四 - 源碼解讀 | Java中ReentrantLock的實現原理

ReentrantLock 依賴關係如下圖所示 非公平鎖實現原理 ReentrantLock 默認採用非公平鎖。 // ReentrantLock public ReentrantLock() { sync = new NonfairSync(); } 加鎖流程 ReentrantLock 的 lock 方法通過同步器的 lock 方法實現。 // ReentrantLock publi

JAVA , 併發 , juc , 併發編程

Awbeci - Next.js-Cookie鑑權+續期+退出登錄

前言 之前寫過關於next.js鑑權操作cookie的文章,Next.js-cookie鑑權+續期1和Next.js-cookie鑑權+續期2,最近chatgpt非常火,於是我問它next.js鑑權最佳實踐,下面是它的回答: 設置合理的 cookie 有效期:合理的 cookie 有效期應該根據網站的特點來確定,通常建議將其設置為一定時間內(如 30 分鐘)。 定時刷新 cookie

next.js , cookie

lindsay_bubble - Leetcode 46&47_Permutations_全排列

一、不重複全排列 給定一個不含重複數字的數組 nums ,返回其 所有可能的全排列 。你可以 按任意順序 返回答案。 https://leetcode.cn/problems/permutations/description/ 1、dfs + boolean[] 通過boolean[]記錄 public ListListInteger permute(int[] nums

leetcode , 排列 , JAVA , 回溯法

wasdquiop - centos7 安裝 nginx

centos7 安裝 nginx 安裝包 鏈接: https://pan.baidu.com/s/1kpAYYX_yy-vXX-1vsCPhoA 提取碼: qrtb 上傳 新創建usr/local/nginx文件夾,放到文件夾下 解壓 tar -zxvf nginx-1.9.9.tar.gz 安裝編譯環境 安裝gcc,源碼編譯依賴 gcc 環境 yum -y install gcc-c+

centos7 , Linux , JAVA , Nginx

我不是碼農 - jpa之hibernate和jackson踩坑記錄

在做的項目採用的是spring jpa,底層默認使用的是orm是hibernate,通過hibernate查詢出來的實體對象實際上都是代理對象,在序列化的時候,我們可能會遇到懶加載導致jackson無法正確解析對象的問題,這個可以通過導入maven包 dependency groupIdcom.fasterxml.jackson.datatype/groupId artifactI

jackson , hibernate , jpa , Json

江南一點雨 - 什麼是 JWT?它是如何工作的?

鬆哥最近輔導了幾個小夥伴秋招,有小夥伴在面小紅書時遇到這個問題,這個問題想回答全面還是有些挑戰,鬆哥結合之前的一篇舊文和大夥一起來聊聊。 一 無狀態登錄 1.1 什麼是有狀態 有狀態服務,即服務端需要記錄每次會話的客户端信息,從而識別客户端身份,根據用户身份進行請求的處理,典型的設計如 Tomcat 中的 Session。例如登錄:用户登錄後,我們把用户的信息保存在服務端 session 中,並且

JAVA , Jwt

Java架構師 - 騰訊架構師極力推薦:Java多線程與Socket實戰微服務框架

在這個技術不斷更新的年代,跟不上時代變化的速度就會被刷掉,特別是咱們程序員這一羣體,技術不斷更新的同時也要同時進步,不然長江後浪推前浪,前浪...... 一個程序員從一個什麼都不懂的小白在學到有一定的Java基礎的時候肯定是要學習更多的技術充實自己,甚至還要往架構師方向靠。但是一個優秀的架構師必須要有紮實的編程功底和豐富的理論知識,不光要能完成架構設計,更要有能力將設計轉換為實際的產品。不會寫代碼

socket , 微服務 , 多線程 , JAVA , 程序員

wx690f565d7bc78 - java代碼可接受感應信號

一、場景 1:接收硬件傳感器信號(最常用) 如果感應信號來自硬件設備(如温度傳感器、紅外感應器、運動傳感器等),通常通過以下方式與 Java 程序通信: 串口通信(RS-232/USB):傳感器通過串口線或 USB 轉串口連接電腦,Java 用RXTX或jSerialComm庫讀取串口數據。 USB 直接通信:部分傳感器支持 USB HID 協議,可

System , 串口 , MySQL , 數據庫 , JAVA

呀哈哈kk - 【詳解】Kali安裝BCM43142802.11b/g/nLinux驅動

Kali安裝BCM43142802.11b/g/n Linux驅動 在使用Kali Linux時,有時會遇到無線網卡驅動不兼容的問題。本文將詳細介紹如何在Kali Linux上安裝Broadcom BCM43142 802.11b/g/n的Linux驅動。 環境準備 操作系統:Kali Linux 2023.1 硬件:帶有BCM43142無線網

驅動程序 , 加載 , 無線網卡 , 後端開發 , JAVA

清醒的人最荒唐 - ImportBeanDefinitionRegistrar與BeanDefinitionRegistryPostProcessor的區別

概述 如果想實現自定義註冊bean到spring容器中,常見的做法有兩種 @Import+ImportBeanDefinitionRegistrar BeanDefinitionRegistryPostProcessor BeanDefinitionRegistryPostProcessor與ImportBeanDefinitionRe

spring , 自定義 , 後端開發 , JAVA , ide

mb61c46a7ab1eee - 深入解析:自定義網絡協議與序列化/反序列化

自定義網絡協議與序列化/反序列化 如果你做過網絡編程,可能會遇到這樣的問題:用TCP發了一個“1+1”的計算請求,對方卻只收到了“1”;或者一次收到了“1+12+3”這種拼接的內容——這時候怎麼判斷哪個是完整的請求?又怎麼把這些字符串解析成能計算的操作數和運算符?這篇文章就從TCP的“天生缺陷”説起,帶你搞懂自定義協議的必要性、序列化與反序列化的核心邏輯,最後通過一個網絡計

oracle , 序列化 , 字符串 , 數據庫 , 反序列化

g天命風流 - 併發編程之變量的線程安全分析的詳細解析

4.4 變量的線程安全分析 成員變量和靜態變量是否線程安全? 如果它們沒有共享,則線程安全 如果它們被共享了,根據它們的狀態是否能夠改變,又分兩種情況 如果只有讀操作,則線程安全 如果有讀寫操作,則這段代碼是臨界區,需要考慮線程安全 局部變量是否線程安全? 局部變量是線程安全的 但局部變量引用的對象則未必 如果該對象沒有逃離方法的作用訪問,它是

d3 , 線程安全 , JAVA , 前端開發 , Javascript

Turbo_K - mysql的查詢優化器如何選擇執行計劃

MySQL 查詢優化器(Query Optimizer)負責決定如何執行一個查詢,它通過選擇最優的 執行計劃 來實現查詢的高效執行。查詢優化器的目標是根據查詢的複雜性、表的大小、索引的可用性等因素選擇最優的執行路徑。下面將詳細介紹 MySQL 查詢優化器是如何選擇執行計劃的。 1. 執行計劃概述 執行計劃 是 MySQL 查詢優化器選擇的一系列操作步驟,指明如何掃描表

MySQL , 執行計劃 , 查詢優化 , 後端開發 , JAVA

自由的瘋 - 《分佈式 + 國產數據庫 + Docker:技術選型避坑指南》(十)

一、為什麼必須用 Docker Compose?手動啓動多容器的 “四宗罪” 1. 手動操作的痛點(開發 / 測試環境高頻踩坑) 命令繁瑣:啓動 5 個服務需執行docker run5 次,每次需配置端口映射、環境變量、數據卷,複製粘貼易出錯; 依賴混亂:若先啓用户服務再啓 Nacos,用户服務會因連接 Nacos 失敗反覆重啓; 數據丟失:

yyds乾貨盤點 , jar , 數據 , 後端開發 , JAVA , Docker

xiongood - Vue 中 provide 與 inject 的使用方法

Vue 中 provide 與 inject 的使用方法 在 Vue 組件樹中,當需要跨多層級傳遞數據時,一層層用 props 傳遞會變得繁瑣,就像接力賽要經過多個人傳遞一樣低效。這時候 provide 與 inject 就像一對 “數據快遞通道”,能讓父組件直接把數據 “發送” 給任意層級的子組件,跳過中間層,讓深層級通信更簡潔。 最基礎的用法是父組件通過 provide 提供

數據 , 默認值 , 後端開發 , JAVA , ide