1. 程式人生 > >Redis原理知識點集錦

Redis原理知識點集錦

1、Redis有哪些資料結構?

字串String、字典Hash、列表List、集合Set、有序集合SortedSet。

高階資料結構

HyperLogLog:基數統計

GEO:地理位置

PUB/SUB:訂閱釋出

2、Redis是單程序單執行緒的嗎?

是的。Redis是基於記憶體的單程序單執行緒KV資料庫,基於C語言編寫,不比單程序多執行緒的Memcached差。快的原因:

(1)完全基於記憶體。(2)資料結構簡單、對資料的操作也簡單。

(3)使用多路複用I/O模型(多個網路連線複用同一個執行緒)。利用select、poll、epoll同時觀察多個網路流。Redis實現了一個輕量級的對select、poll、epoll進行呼叫的通用介面,linux下預設實現為epoll。

3、假如Redis裡面有1億個key,其中有10w個key是以某個固定的已知的字首開頭的,如果將它們全部找出來?

keys + 正則表示式。會阻塞伺服器

scan  模糊查詢。不會阻塞伺服器

4、如果有大量的key需要設定同一時間過期,一般需要注意什麼?

key過期時間太集中會導致系統在那個時間卡頓,因此一般在時間上加一個隨機值,使其分散。

5、Redis如何做持久化?

(1)bgsave做映象全量持久化,耗時長,停機時會導致大量資料丟失,因此要配合aof。fork & cow。redis通過fork建立子程序來進行bgsave操作,父子程序共享資料段,父程序繼續提供讀寫服務,寫髒的頁面逐漸和子程序分離開來。

(2)aof做增量持久化,與磁碟的同步取決於sync屬性的配置,可以寫一條同步一次。

6、Redis的同步機制?

主從剛連線時做全量同步,在全量同步後開始做增量同步。

全量同步:在連線後,從伺服器發出同步請求,主伺服器執行BGSave生成快照,將快照發送給從伺服器,同時將這段時間執行的指令快取起來,從伺服器接收快照後,丟棄所有舊資料,載入快照,主伺服器將緩衝區的命令傳送給從伺服器執行。

增量同步:主伺服器執行的命令都會發送給從伺服器執行。

相關推薦

Redis原理知識點集錦

1、Redis有哪些資料結構?字串String、字典Hash、列表List、集合Set、有序集合SortedSet。高階資料結構HyperLogLog:基數統計GEO:地理位置PUB/SUB:訂閱釋出2

memcache、redis原理對比

只需要 4.4 產品 內置 虛擬 方式 clu 解決方案 比較 一、問題: 數據庫表數據量極大(千萬條),要求讓服務器更加快速地響應用戶的需求。 二、解決方案: 1.通過高速服務器Cache緩存數據庫數據 2.內存數據庫

Redis學習知識點記錄

NoSQL: not only SQL 非關係型的資料(例如:redis、mongodb) 用來解決               1.高併發讀寫         &

開發中常用的JS知識點集錦

索引 1、物件深拷貝 2、網路圖片轉base64, 線上圖片點選下載 3、物件深拷貝 4、物件深拷貝 5、物件深拷貝 6、物件深拷貝 1、物件的深拷貝(一級屬性拷貝和多級屬性巢狀拷貝) //深拷貝函式(滿足屬

C++筆試和麵試知識點集錦(二)

1、常物件的基本知識:常物件只能呼叫它的常成員函式,而不能呼叫非const函式,常物件的成員函式不一定都是常成員函式,只需保證其資料成員即可。 2、this作用域是在類內部;當在類的非靜態成員時,編譯器會自動將物件本身的地址作為一個隱含引數傳遞給函式,另外,全域性函式和靜態函式都不能使用th

C++筆試和麵試知識點集錦(一)

1、const是一個C++語言的關鍵字,它限定一個變數不允許被改變。使用const在一定程度上可以提高程式的安全性和可靠性。限定宣告變數只能被讀,必須初始化; 2、指向常量的指標,定義時初始化與否均可; 3、給指標賦值有三種情況: 用取地址運算子“&”將變數地址賦給指標

Redis 原理

通信 讀寫 方法 -s 時間 epo 外網 復雜 linux 線程IO模型 Redis 是個單線程程序!(對外網絡請求服務) 對於那些時間復雜度為 O(n) 級別的指令,一定要謹慎使用,一不小心就可能會導致 Redis 卡頓。 使用緩沖區,事件輪詢 API(Linux操

redis原理及應用

redis原理及應用 一、redis來源 二、資料型別 三、主流的應用場景 四、特性 五、補充                          

redis原理解析與案例分享

1.jfinal RedisPlugin 使用的問題      Cache類對於Jedis做了又一次分封裝,如果用命令列或者用cache.getJedis().set() 方法儲存資料,就不能用cache.get();來取資料,因為Cache 方法預設的序列化的方式

NOIP初賽知識點集錦

知識點(by chs): 一個32位整型變數佔4位元組(一個位元組8位) 運算子優先順序表 !> & > ^ > | > && > || 與位運算結合優先順序:邏輯非(!,┐)=按位反(~)>位移運算(&l

計算機組成原理知識點 第一章 緒論

本章內容主要通過選擇題和填空題進行考察,在考試中總體佔比較小,本章將介紹計算機發展史, 計算機的分代 第一代   電子管計算機 第二代  電晶體計算機 第三代  小、中規模積體電路(SSI,MSI)計算機 第四代  大、超大規模積體電路(LSI,VLSI)計算機 計算機

計算機組成原理知識點梳理

第一章 計算機系統概論 1.1 計算機系統簡介 計算機系統結構:主要研究軟硬體功能的分配和對軟硬體介面的確定。 計算機組成是計算機系統結構的邏輯實現。 計算機實現是對計算機組成的物理實現。 計算機系統的層次結構 第三級: 虛擬機器器M4(高階語言機器) 用編譯程式翻譯成

微機原理知識點

知識點、重點、難點 第一章 微型計算機概述  微機的定義  微機效能指標   儲存容量、儲存容量單位   數制轉換 第二章 80x86微處理器及其系統結構  暫存器:通用暫存器、段暫存器、SP、BP、IP、FLAGS

高併發架構與分散式技術NoSQL -- Redis原理剖析

首先奉獻出微信 java後端技術 公眾號裡的學習腦圖,接下來的內容將會按照該圖進行自學梳理。redis原理剖析Redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫。它可以用作資料庫、快取和訊息中介軟體。 /* *

面試java中計算機組成原理知識點

計算機系統組成:計算機硬體系統和計算機軟體系統 計算機硬體系統:儲存器,運算器,控制器,輸入裝置,輸出裝置。 **計算機軟體系統:**作業系統,語言處理程式,標準庫程式,服務性程式,資料庫管理系統,計算機網路軟體。 儲存器:三級儲存結構:高速緩衝儲存器(cach

android 和 Java 知識點集錦

java 四種引用 強引用就是指在程式程式碼之中普遍存在的 軟引用是用來描述一些有用但並不是必需的物件,只有在記憶體不足的時候JVM才會回收該物件 弱引用也是用來描述非必需物件的,當JVM進行垃圾回收時,無論記憶體是否充足,都會回收被弱引用關聯的物件 虛引用和前面的軟

redis面試題集錦 Redis為什麼使用單程序單執行緒方式也這麼快

1為什麼Redis需要把所有資料放到記憶體中? Redis為了達到最快的讀寫速度將資料都讀到記憶體中,並通過非同步的方式將資料寫入磁碟。所以Redis具有快速和資料持久化的特性。如果不將資料放到記憶體中,磁碟的I/O速度會嚴重影響redis的效能。在記憶體越來越便宜的今天,redis將會越來越受歡迎。如果設

redis面試題集錦

logs 避免 復雜 csdn 面試題 解決方案 itl 定性 繼續 1為什麽Redis需要把所有數據放到內存中? Redis為了達到最快的讀寫速度將數據都讀到內存中,並通過異步的方式將數據寫入磁盤。所以Redis具有快速和數據持久化的特性。如果不將數據放到內存中,磁盤的I

Redis基礎知識點面試手冊

本文精心整理了書籍、部落格以及本人面試中遇到的基礎知識點,方便大家快速回顧知識。 基礎 概述 Redis 是速度非常快的非關係型(NoSQL)記憶體鍵值資料庫,可以儲存鍵和五種不同型別的值之間的對映。 鍵的型別只能為字串 值支援的五種型別資料型別為:字

Redis原理(Replication、Sentinel、Twemproxy、RedisCluster)

Redis的主從複製 Redis複製工作原理: 1.如果設定了一個Slave,無論是第一次連線還是重新連線到Master,它都會發出一個SYNC命令;設定Slave可以是在配置檔案新增slaveof 主IP 埠,然後帶上配置檔案啟動server,還可以是啟動服務後通過命令