博客 / 列表

sevencoding - SpringCloud 常見面試題(一)

概念 什麼是微服務?你是怎麼理解微服務的? 微服務架構是一種架構模式或者説是一種架構風格,它提倡將單一應用程序劃分為一組小的服務,每個服務運行在其獨立的自己的進程中,服務之間相互協調、互相配合,為用户提供最終價值。服務之間採用輕量級的通信機制互相溝通(通常是基於HTTP的RESTful API),每個服務都圍繞着具體的業務進行構建,並且能夠被獨立的構建在生產環境、類生產環境等。另外,應避免統一的、

後端

sevencoding - 微服務/分佈式 基礎面試題

算法/協議 説下paxos算法 Paxos 有點類似 2PC,3PC,但比這兩種算法更加完善。在很多多大廠都得到了工程實踐,比如阿里的 OceanBase 的 分佈式數據庫, Google 的 chubby 分佈式鎖 。 Paxos算法是什麼? Paxos 算法是 基於消息傳遞 且具有 高效容錯特性 的一致性算法,目前公認的解決 分佈式一致性問題 最有效的算法之一。 Paxos算法的工作流程? 在

後端

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.

後端

sevencoding - MyBatis 常見面試題

Mybatis基礎 Mybatis是什麼? MyBatis框架是一個開源的數據持久層框架。 它的內部封裝了通過JDBC訪問數據庫的操作,支持普通的SQL查詢、存儲過程和高級映射,幾乎消除了所有的JDBC代碼和參數的手工設置以及結果集的檢索。 MyBatis作為持久層框架,其主要思想是將程序中的大量SQL語句剝離出來,配置在配置文件當中,實現SQL的靈活配置。 這樣做的好處是將SQL與程序

後端

sevencoding - Redis支持事務嗎?瞭解Redis的持久化機制嗎?

Redis 支持事務嗎?與關係型數據庫事務的區別? Redis 支持事務,但它的事務與 MSQL中的事務有所不同,MSOL中的事務主要支持 ACID 的特性,而 Redis中的事務主要保證的是多個命令執行的原子性,即所有的命令在一個原子操作中執行,不會被打斷。還有一個很重要的點,就是 MySQL 中的事務是支持回滾的,而 Redis 中的事務是不支持回滾的。 Redis事務是指將多條命令加入隊列,

nosql

sevencoding - Redis是如何進行內存管理的?緩存中有哪些常見問題?如何實現分佈式鎖?

Redis內存管理 Redis的內存用完了會怎樣? 如果達到設置的上限,Redis的寫命令會返回錯誤信息(但是讀命令還可以正常返回)。 也可以配置內存淘汰機制,當Redis達到內存上限時會沖刷掉舊的內容。 Redis如何做內存優化? 可以好好利用Hash,list,sorted set,set等集合類型數據,因為通常情況下很多小的Key-Value可以用更緊湊的方式存放到一起。儘可能使用散列表(h

nosql

sevencoding - Redis容量評估模型

計算Redis容量,並不只是僅僅計算key佔多少字節,value佔多少字節,因為Redis為了維護自身的數據結構,也會佔用部分內存,本文章簡單介紹每種數據類型(String、Hash、Set、ZSet、List)佔用內存量,供做Redis容量評估時使用。當然,大多數情況下,key和value就是主要佔用,能解大部分問題 在看這裏之前,可以先看一下底層 - 數據結構 這篇文章 jemalloc內存分

nosql

sevencoding - Redis是如何高效管理有限內存的?

過期刪除策略的深度剖析 Redis 可以對 key 設置過期時間的,為了防止過期的key長期佔用內存,需要相應的過期刪除策略將過期的key刪除 基礎操作 Redis設置過期時間 setex key1 5 value1:創建記錄的時候指定過期時間,設置key1在5秒後過期 其實Redis這是一種基於創建時間來判定是否過期的機制,也即常規上説的TTL策略,當設定了過期時間之後不管有沒有被使用都會

nosql

sevencoding - Redis有哪些部署方案?瞭解哨兵機制嗎?

Redis有哪些部署方案? *單機版**:單機部署,單機redis能夠承載的 QPS 大概就在上萬到幾萬不等。這種部署方式很少使用。存在的問題:1、內存容量有限 2、處理能力有限 3、無法高可用。 主從模式:一主多從,主負責寫,並且將數據複製到其它的 slave 節點,從節點負責讀。所有的讀請求全部走從節點。這樣也可以很輕鬆實現水平擴容,支撐讀高併發。master 節點掛掉後,需要手動指定新

nosql

sevencoding - 用過redis哪些數據類型?Redis String 類型的底層實現是什麼?

Redis 數據類型有哪些? 詳細可以查看:數據類型及其應用場景 基本數據類型: String:最常用的一種數據類型,String類型的值可以是字符串、數字或者二進制,但值最大不能超過512MB。一般用於 緩存和計數器 Hash:Hash 是一個鍵值對集合。存儲商品的各個屬性 Set:無序去重的集合。Set 提供了交集、並集等方法,對於實現共同好友、共同關注等功能特別方便。 List:有

nosql

sevencoding - Netty高級使用與源碼詳解

粘包與半包 粘包現象 粘包的問題出現是因為不知道一個用户消息的邊界在哪,如果知道了邊界在哪,接收方就可以通過邊界來劃分出有效的用户消息。 服務端代碼 public class HelloWorldServer { static final Logger log = LoggerFactory.getLogger(HelloWorldServer.class); void start

netty , JAVA , 後端