收藏 / 列表

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

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

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

老污的貓 - Java 爬樓梯

題目 假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢? 原題地址 解題 每一步只能走1階或2階,因此每一步可拆分為2個分支,f(n)=f(n-1)+f(n-2) 遞歸 public static int climbStairs(int n) { if (n == 1) { return

算法 , JAVA

大廠碼農老A - CR被批“寫得像坨屎”,我三句話讓他當場閉嘴

這坨屎山,我接了 大家好,我是老A。 我想很多程序員有過這種經歷,新接手一個項目,打開工程一看,妥妥的一大坨🤦,內心OS:好嘛,又要“屎山雕花”了。。。 我這兩年在做電商業務,所以業務上經常會搞大促,3天一小促,5天一大促,作為技術早就習慣了這種研發節奏(倒排)。今年6月是我們業務年中的一次大型大促,所以5月份的需求爆炸多,基本都是倒排,業務天天拿着大喇叭在我們屁股後喊📢:這個需求不做就

segmentfault , springboot , JAVA , 程序員 , 後端

悲傷的鴨蛋 - Mybatis常見運行報錯(持續更新...)

報錯一: Caused by: org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1 解決辦法: setting - Editor - File Encodings,編碼方式都選擇UTF-8 報錯二: Cause: java.sql

MySQL , JAVA , Mybatis , Web

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

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

設計模式 , JAVA , 策略模式

vivo互聯網技術 - 基於 Three.js 的 3D 模型加載優化

作者:來自 vivo 互聯網前端團隊- Su Ning 作為一個3D的項目,從用户打開頁面到最終模型的渲染需要經過多個流程,加載的時間也會比普通的H5項目要更長一些,從而造成大量的用户流失。為了提升首屏加載的轉化率,需要儘可能的降低loading的時間。這裏就分享一些我們在模型加載優化方面的心得。 一、前言 近段時間,我們使用three.js完成了vivo擬我形象的開發工作,大家可以在vivo賬號

rust , three.js , webassembly , 3d

牛肉燒烤屋 - 詳解分佈式緩存不一致性的所有情況!除了分佈式緩存外,其它場景又是如何解決緩存一致性的呢?

[toc] 引言 持久化層和緩存層的一致性問題也通常被稱為「雙寫一致性問題」,“雙寫”意為數據既在數據庫中保存一份,也在緩存中保存一份。對於一致性來説,包含強一致性和弱一致性,強一致性保證寫入後立即可以讀取,弱一致性則不保證立即可以讀取寫入後的值,而是儘可能的保證在經過一定時間後可以讀取到,在弱一致性中應用最為廣泛的模型則是最終一致性模型,即保證在一定時間之後寫入和讀取達到一致的狀態。 我們一般會

redis , 緩存 , JAVA , 一致性

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

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

多線程 , JAVA

王中陽講編程 - 靈活分庫分表,面試的時候這麼説,加分!

最近收到一位粉絲的提問,關於分庫分表在面試中如何結合業務邏輯舉例的問題。 他提到之前使用 serverless 數據庫時沒涉及分庫分表,現在遇到了具體場景,想請教合適的方案。 這其實是面試中很常見的考點,既要看技術思路,更要看能否結合業務落地,今天就藉着這個問題展開聊聊。 前言 怕有些朋友沒有了解過這方面的知識點,先來解釋一下這些概念: 分庫分表的核心目標:解決單庫單表因數據量過大(如千萬 /

分庫分表 , 面試 , 分表 , 分庫 , 後端

字節幺零二四 - 併發編程:Java常用線程調度方法及實現原理

本文將介紹Java常用線程調度方法及實現原理,包括sleep、wait¬ify、join、parkunpark。 線程方法 方法 説明 start() 用於啓動線程,讓線程進入就緒狀態 ; RUNNABLE 多次調用拋 IllegalThreadStateException 異常 run() 線程運行

JAVA , 併發 , juc

Awbeci - SpringCloud-解決WebFlux異步線程無法獲取ThreadLocal中的用户信息

前言 之前閲讀《Spring微服務實戰》這本書時,裏面提供了微服務如何存儲用户的信息,但是最近升級到了Java17以及SpringCloud2022.0.0之後,異步編程是官方推薦的主流寫法,而之前的寫法是同步的,所以在存儲和解析用户信息時導致獲致不到用户信息情況,下面我們來解決這個問題。 操作 我們先看看之前的寫法: UserContext.java @Component public clas

webflux , springcloud , springboot , JAVA

lindsay_bubble - Leetcode 84_柱狀圖中最大的矩形

給定 n 個非負整數,用來表示柱狀圖中各個柱子的高度。每個柱子彼此相鄰,且寬度為 1 。 求在該柱狀圖中,能夠勾勒出來的矩形的最大面積。 想法:感覺這個題考的是數學,是邏輯。 怎麼找矩形呢?就是當前位置的最高點,向左和向右畫矩形,找他比他矮的點left, right,就停止。 高度就是height[i] 寬度就是(right-left+1)-2,因為找到的那兩個點是不能算進

leetcode , , JAVA

wasdquiop - Linux服務器ARM架構安裝Mysql(aarch64)

一、卸載舊版本 查詢是否存在舊版本 rpm -qa | grep mysql rpm -qa | grep mariadb 如果存在,挨個刪除已有版本: yum -y remove 版本 查看etc/目錄下是否存在my.cnf文件 ls etc/my.cnf # 刪除 rm my.cnf 卸載MySQL後殘留數據保存路徑 find / -name mysql # 刪除 rm -rf 查找的路徑名

MySQL , arm64 , arm , centos7 , Linux

我不是碼農 - mybatis和mybatis-plus的json字段類型失效以及處理原理解析

最近接手一個老項目,進行json類型字段的對象映射,使用的是老版本的mybatis-plus(2.1.8),出現了一些問題 1、@TableFiled註解沒有typeHandler屬性,只能通過@TableField(el = "filed, typeHandler=xxx.TypeHandler")這種方式來配置 2、配置了@TableField(el = "filed, typeH

mybatis-plus , springboot , JAVA , Json , Mybatis

江南一點雨 - 手把手教小夥伴們使用 Nginx 部署 TienChin 項目!

今天我就來手把手教小夥伴們部署 TienChin 項目,一起把這個項目跑起來,看看到底是個什麼樣的項目。 小夥伴們知道,對於這種前後端分離的項目,我們在實際部署的時候,可以按照前後端分離的方式來部署,也可以按照前後端不分的方式來部署。接下來兩種不同的部署方式我都和小夥伴們來分享一下。 1. 前後端分離部署 1.1 部署架構圖 前後端分離部署的話,我們一般是需要一個 Nginx 服務器,我先畫一個簡

前後端分離 , Nginx

Java架構師 - 吹爆Alibaba自研的Spring全能筆記,建議人手一份!

Spring 這個技術棧,想必大家都知道,這玩意麪試必考工作必用,對於每位 Java 程序員來説都是至關重要的;俗話説 Java 開發不學習 Spring 就像士兵上戰場不帶槍,我認為這個比喻很形象。Spring 幾乎佔據了 Java web 的半壁江山,其重要性不言而喻,它跟它後面誕生的一系列解決方案被我們親切的稱為“Spring 全家桶”。 在當下毫不誇張地説,若是不會 Spring 就去面試

spring , spring-mvc , springboot , JAVA , 程序員

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

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

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

呀哈哈kk - 【詳解】Python獲取系統性能信息

Python獲取系統性能信息 在開發和維護應用程序的過程中,瞭解系統的性能狀態是至關重要的。這不僅可以幫助我們優化程序的運行效率,還可以及時發現並解決潛在的問題。Python 作為一種強大的編程語言,提供了多種方式來獲取系統的性能信息。本文將介紹如何使用 psutil 庫來獲取包括CPU、內存、磁盤和網絡在內的系統性能數據。 安裝 psutil psutil(P

sed , 後端開發 , 磁盤分區 , JAVA , 網絡接口

清醒的人最荒唐 - SpringBoot實現自定義路由覆蓋

背景 公司最近有一個項目二期需要對一些功能進行改造,涉及部分框架內置業務接口個性化定製,兼容老接口功能並且增加一部分新的數據返回,由於前端調用這些接口分佈較多且較為零碎,修改測試成本較大,所以打算在框架層面提供路由覆蓋功能,加快項目進度減少無技術含量的修改帶來的系統風險 設計 提供自定義註解指定需要覆蓋的路由及新路由地址 系統啓動時掃描所有註解

系統啓動 , List , 自定義 , 後端開發 , JAVA

mb61c46a7ab1eee - C語言入門(十):函數的深入認識 - 實踐

一:庫函數 1.庫函數的介紹 我們前⾯內容中學到的 printf 、 scanf 都是庫函數 庫函數相關頭⽂件:https://zh.cppreference.com/w/c/header 2.庫函數的使⽤⽅法 C/C++官⽅的鏈接:https://zh.cppreference.com/w/c/header cplusplus.com:https:

庫函數 , 數組 , 後端開發 , 函數返回 , Python

g天命風流 - 併發編程之Java 對象頭的詳細解析

Java 對象頭 以 32 位虛擬機為例 普通對象 |--------------------------------------------------------------| | Object Header (64 bits) | |------------------------------------|-------------------------|

word , 項目代碼 , JAVA , 前端開發 , Javascript

Turbo_K - 如何實現數據庫的不停服遷移?

數據庫不停服遷移 是指在不影響現有系統正常運行的情況下,進行數據庫的遷移操作。這對於保障系統的高可用性、減少停機時間以及提高業務連續性至關重要。以下是幾種常見的實現數據庫不停服遷移的方式和步驟。 1. 數據庫遷移的需求與挑戰 在進行數據庫遷移時,常見的挑戰包括: 業務不中斷:遷移過程中必須確保業務正常進行,避免影響客户或用户。 數據一致性:源數

數據同步 , 數據 , 數據庫 , 後端開發 , JAVA

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

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

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

xiongood - Vue 中 slot 的使用方法

Vue 中 slot 的使用方法 在 Vue 組件化開發中,slot(插槽)就像組件預留的 “靈活接口”,讓父組件能向子組件的指定位置插入自定義內容,既保留了子組件的結構複用,又賦予了內容定製的靈活性,避免了組件過於僵硬。無論是簡單的文本插入,還是複雜的組件嵌套,slot 都能輕鬆應對,是組件複用與定製的核心工具。 最基礎的是默認插槽,子組件中預留一個未命名的插槽,父組件在使用子

數據 , 自定義 , 插槽 , 後端開發 , JAVA