Nov 14 2025
sevencoding -
微服務/分佈式 基礎面試題
算法/協議
説下paxos算法
Paxos 有點類似 2PC,3PC,但比這兩種算法更加完善。在很多多大廠都得到了工程實踐,比如阿里的 OceanBase 的 分佈式數據庫, Google 的 chubby 分佈式鎖 。
Paxos算法是什麼? Paxos 算法是 基於消息傳遞 且具有 高效容錯特性 的一致性算法,目前公認的解決 分佈式一致性問題 最有效的算法之一。
Paxos算法的工作流程?
在
後端
Nov 13 2025
sevencoding -
劍指offer-37、數字在升序數組中出現的次數
題目描述
統計⼀個數字在升序數組中出現的次數。
示例1
輸⼊:[1,2,3,3,3,3,4,5],3
返回值:4
思路及解答
線性遍歷
順序遍歷數組,遇到目標值就計數
public class Solution {
public int GetNumberOfK(int[] array, int k) {
if (array == null || array.
後端
Nov 10 2025
sevencoding -
MyBatis 常見面試題
Mybatis基礎
Mybatis是什麼?
MyBatis框架是一個開源的數據持久層框架。
它的內部封裝了通過JDBC訪問數據庫的操作,支持普通的SQL查詢、存儲過程和高級映射,幾乎消除了所有的JDBC代碼和參數的手工設置以及結果集的檢索。
MyBatis作為持久層框架,其主要思想是將程序中的大量SQL語句剝離出來,配置在配置文件當中,實現SQL的靈活配置。
這樣做的好處是將SQL與程序
後端
Nov 07 2025
sevencoding -
Redis支持事務嗎?瞭解Redis的持久化機制嗎?
Redis 支持事務嗎?與關係型數據庫事務的區別?
Redis 支持事務,但它的事務與 MSQL中的事務有所不同,MSOL中的事務主要支持 ACID 的特性,而 Redis中的事務主要保證的是多個命令執行的原子性,即所有的命令在一個原子操作中執行,不會被打斷。還有一個很重要的點,就是 MySQL 中的事務是支持回滾的,而 Redis 中的事務是不支持回滾的。
Redis事務是指將多條命令加入隊列,
nosql
Sep 12 2025
sevencoding -
Redis容量評估模型
計算Redis容量,並不只是僅僅計算key佔多少字節,value佔多少字節,因為Redis為了維護自身的數據結構,也會佔用部分內存,本文章簡單介紹每種數據類型(String、Hash、Set、ZSet、List)佔用內存量,供做Redis容量評估時使用。當然,大多數情況下,key和value就是主要佔用,能解大部分問題
在看這裏之前,可以先看一下底層 - 數據結構 這篇文章
jemalloc內存分
nosql
Sep 09 2025
sevencoding -
Redis是如何高效管理有限內存的?
過期刪除策略的深度剖析
Redis 可以對 key 設置過期時間的,為了防止過期的key長期佔用內存,需要相應的過期刪除策略將過期的key刪除
基礎操作
Redis設置過期時間
setex key1 5 value1:創建記錄的時候指定過期時間,設置key1在5秒後過期
其實Redis這是一種基於創建時間來判定是否過期的機制,也即常規上説的TTL策略,當設定了過期時間之後不管有沒有被使用都會
nosql
Sep 01 2025
sevencoding -
Redis有哪些部署方案?瞭解哨兵機制嗎?
Redis有哪些部署方案?
*單機版**:單機部署,單機redis能夠承載的 QPS 大概就在上萬到幾萬不等。這種部署方式很少使用。存在的問題:1、內存容量有限 2、處理能力有限 3、無法高可用。
主從模式:一主多從,主負責寫,並且將數據複製到其它的 slave 節點,從節點負責讀。所有的讀請求全部走從節點。這樣也可以很輕鬆實現水平擴容,支撐讀高併發。master 節點掛掉後,需要手動指定新
nosql
Feb 12 2025
sevencoding -
Netty高級使用與源碼詳解
粘包與半包
粘包現象
粘包的問題出現是因為不知道一個用户消息的邊界在哪,如果知道了邊界在哪,接收方就可以通過邊界來劃分出有效的用户消息。
服務端代碼
public class HelloWorldServer {
static final Logger log = LoggerFactory.getLogger(HelloWorldServer.class);
void start
netty
,
JAVA
,
後端