收藏 / 列表

軟件求生 - 面試官笑了:我用這套方案搞定了“2000w vs 20w”的Redis難題!

那天我在一家互聯網大廠面試,被問了一個看似簡單、實則殺傷力極強的問題: “小米,假如MySQL裏有2000萬條數據,Redis裏只能存20萬條,你該怎麼保證Redis中的數據都是熱點數據?” 當場我笑出了聲,心想這題是“送命題”吧!但笑歸笑,能不能答好,真能看出你是不是一個“實戰派”的程序員。 今天這篇文章,就帶你把這道題拆開、揉碎、講

訪問量 , redis , yyds乾貨盤點 , 數據 , 數據庫

老污的貓 - Java 二分法查詢

public static void main(String[] args) { Integer target = 7; // 初始化數據 ListInteger data = Arrays.asList(0, 1, 3, 5, 7, 9, 2, 4, 6, 8, 10); // 排序 Collections.sort(data); // 輸出

JAVA

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

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

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

悲傷的鴨蛋 - Maven、測試、Junit依賴

Maven的作用 管理依賴:通過pom.xml管理項目依賴的資源(jar包)。(不再需要每次都手動導入jar包) 項目構建(標準化跨平台的項目構建方式):complie,test,package,install(編譯,測試,打包,發佈)等項目構建流程 統一項目結構:提供標準、統一的項目結構(主程序,測試程序) 倉庫:用於存儲資源,管理各種jar包。 本地倉庫:自己計算機上的

junit , maven , 測試 , JAVA

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

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

設計模式 , JAVA , 策略模式

vivo互聯網技術 - 高性能無鎖隊列 Disruptor 核心原理分析及其在i主題業務中的應用

作者:來自 vivo 互聯網服務器團隊- Li Wanghong 本文首先介紹了 Disruptor 高性能內存隊列的基本概念、使用 Demo、高性能原理及源碼分析,最後通過兩個例子介紹了 Disruptor 在i主題業務中的應用。 一、i主題及 Disruptor 簡介 i主題是 vivo 旗下的一款主題商店 app,用户可以通過下載主題、壁紙、字體等,實現對手機界面風格的一鍵更換和自定義。 D

內存 , 緩存 , 隊列

牛肉燒烤屋 - 超時時間應該設置多長?長尾請求和重試風暴又該如何解決?打造高效穩定的網絡請求!

超時時間 概念 超時時間指系統在等待某個操作響應時設定的最大容忍時間閾值。當操作未在指定時間內完成,系統將主動終止等待並觸發預設處理邏輯 超時可以看做是一種降級手段。因為假設服務永遠能正常運行,我們並不需要超時時間,來保證服務的可用性和穩定性 常見需要依賴超時時間的場景 網絡層:TCP 協議的 connect timeout(Linux 默認 120 秒)、HTTP 請求的 socket ti

微服務 , rpc , 高可用 , 計算機網絡 , 後端

seazhan - 【手寫 RPC】手寫一個RPC框架 使用Netty + java虛擬線程

【手寫RPC框架】如何使用netty手寫一個RPC框架 結合新特性 虛擬線程 什麼是RPC框架 RPC(Remote Procedure Call)遠程過程調用,是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。RPC框架是一種遠程調用的框架,它可以讓你像調用本地方法一樣調用遠程方法。 避免了開發人員自己去封裝網絡請求、連接管理、序列化、反序列化等操作,提高了開發效率。 N

框架學習 , 協程 , rpc , JAVA

王中陽講編程 - 基於 Code 開源版二次開發流程:DDD 架構落地用户模型管理全流程

最近有基於coze開源版做二次開發,踩了不少坑,我把花了幾天時間梳理出來的開發流程分享給大家。 下面以自定義用户接入的模型舉例: coze開源版的模型是在配置文件中配置的,不夠靈活,我們希望讓用户能夠在網站直接配置自己的模型,類似下面這種效果: 大家理解清楚需求之後,看下面的實現思路,你們開發別的功能也可以參考我的開發流程,能讓你少踩很多坑: 一、領域層(Domain - 核心層,聚焦純業

程序員 , 後端

字節幺零二四 - 併發編程: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

我不是碼農 - spring security oauth2.0 sso流程分析

現在我們系統使用的是spring security oauth2.0 sso單點登錄方案,偶爾出現會話失效,經過分析比對看了下日誌,出現會話失效時會出現一個警告, Could not fetch user details: class org.springframework.security.oauth2.client.resource.UserRedirectRequiredException,

oauth2.0 , spring , springsecurity , springboot , JAVA

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

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

JAVA , Jwt

Java架構師 - IO:阻塞和非阻塞、同步和異步

阻塞和非阻塞 阻塞的時候線程會被掛起 阻塞: 當數據還沒準備好時,調用了阻塞的方法,則線程會被掛起,會讓出CPU時間片,此時是無法處理過來的請求,需要等待其他線程來進行喚醒,該線程才能進行後續操作或者處理其他請求。 非阻塞: 意味着,當數據還沒準備好的時候,即便我調用了阻塞方法,該線程也不會被掛起,後續的請求也能夠被處理。 同步 同步和異步跟串行和並行非常形似。 假設在一個場景下:完成一個大任務需

阻塞 , JAVA , io , 異步 , 後端

wx690f565d7bc78 - java文檔註釋

Java 文檔註釋(JavaDoc)是一種特殊的註釋格式,用於生成標準化的 API 文檔。它以 /** 開頭,以 / 結尾,通常用於類、方法、字段、接口等元素上方,描述其功能、參數、返回值、異常等信息。 基本格式 文檔註釋通常包含以下部分: java 運行 /* 類/方法/字段的簡要描述(單行) 詳細描述(可選,多行)

文檔註釋 , 字段 , MySQL , 數據庫 , JAVA

呀哈哈kk - 【詳解】HadoopMapReduce實現從海量數字信息中獲取最大值

Hadoop MapReduce實現從海量數字信息中獲取最大值 在大數據處理領域,Hadoop是一個非常重要的工具。它通過MapReduce編程模型來處理和生成大規模數據集。本文將介紹如何利用Hadoop的MapReduce框架從海量數字信息中找出最大值。 1. 環境準備 1.1 安裝Hadoop 確保你的環境中已經安裝了Hadoop。如果還沒有安裝,可以

hadoop , text , 後端開發 , JAVA , apache

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

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

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

mb61c46a7ab1eee - 實用指南:HCL設備啓動失敗

經歷了HCL設備無法創建的風波,最後設備啓動時又啓動不了,嘗試了N個方法,終於找到了幾個好的方法分享給大家 其實最主要的目的就是把下面圖片裏的部分修改為未啓用狀態才可以 如果你這裏的基於虛擬化的安全性就是未啓用,那麼可能就是別的原因了(大部分都是因為這個) 注意下面每一個方法完成後都要在系統信息裏面查看基於虛擬化的安全性是否修改為未啓用(可以點擊查看裏的

虛擬化 , PowerShell , 重啓 , 前端開發 , Javascript

鴿鴿程序猿 - 【項目】【抽獎系統】獎品創建

一、圖片上傳功能 1.1 配置 application.properties 配置上傳⽂件路徑 ## 圖⽚服務 ## pic: local-path: D:/PIC # spring boot3 升級配置名 spring: web: resources: static-locations: classpath:/static/,file:

spring , yyds乾貨盤點 , 後端開發 , JAVA , Css

資深程序設計 - 基於微信小程序的民宿預定系統

1、研究背景 隨着互聯網技術的飛速發展以及移動設備的普及,人們的生活方式和消費習慣發生了深刻變化。在旅遊出行領域,微信小程序作為一種新興的應用形式,憑藉其便捷性、無需下載安裝的特點,迅速成為用户獲取服務的重要渠道。民宿作為一種個性化、多樣化的住宿選擇,受到越來越多遊客的青睞。它不僅提供了一種不同於傳統酒店的住宿體驗,更能讓遊客深入當地生活,感受獨特文化氛圍。民宿預訂過程中仍

微信小程序 , yyds乾貨盤點 , MySQL , 管理系統 , 後端開發 , JAVA

g天命風流 - 併發編程之常見線程安全類以及一些示例的詳細解析

常見線程安全類 String Integer StringBuffer Random Vector Hashtable java.util.concurrent 包下的類 這裏説它們是線程安全的是指,多個線程調用它們同一個實例的某個方法時,是線程安全的。也可以理解為 Hashtable table = new Hashtable()

項目代碼 , 線程安全 , JAVA , 前端開發 , Javascript

Turbo_K - ThreadLocal有什麼缺點?

ThreadLocal 是 Java 中一個用於為每個線程提供獨立變量副本的類,它允許每個線程都能獨立地訪問和修改變量,避免了多線程間的競爭和同步問題。它是通過在每個線程中維護一個 線程局部變量 來實現的,通常用於線程間的數據隔離。 然而,ThreadLocal 並不是完美的,它有一些缺點和潛在的問題,特別是在多線程和資源管理方面。以下是 ThreadLocal 的一些主要

線程池 , 後端開發 , 多線程 , JAVA , 解決方案