Redis 基本概念(四)

2021-09-25 08:04:20 字數 2573 閱讀 3114

概念介紹

redis是遠端伺服器的縮寫,是目前最火熱的非關係型資料庫。單執行緒,預設埠6379

主要優點:

1.key-value儲存結構

2.持久化

3.可以設定過期時間

平時專案使用jedis連線,或使用redistemplate。

redis的主要資料型別?

string、hash、list、set及zset(sorted set:有序集合)

redis能夠做什麼?

redis能夠做快取、計數器、簡單的訊息佇列等等

為什麼要用redis?redis為什麼能這麼快?

速度快,完全基於記憶體,資料結構簡單,單執行緒,網路層使用非阻塞io解決高併發問題

(1) 使用c語言實現,速度快

(2) 完全基於記憶體,執行效率高

(3) 資料結構簡單,對資料操作也簡單

(4) 採用單執行緒,避免執行緒切換與多執行緒開銷問題

(5) 使用多路io復用模型,非阻塞io。採用的io多路復用的函式有:select/epoll等,優先選擇時間複雜度為o(1)的函式作為底層實現,以時間複雜度o(n)的select作為保底。

1、什麼是redis?簡述它的優缺點?

redis本質上是乙個key-value型別的記憶體資料庫,很像memcached,整個資料庫統統載入在記憶體當中進行操作,定期通過非同步操作把資料庫資料flush到硬碟上進行儲存。

因為是純記憶體操作,redis的效能非常出色,每秒可以處理超過 10萬次讀寫操作,是已知效能最快的key-value db。

redis的出色之處不僅僅是效能,redis最大的魅力是支援儲存多種資料結構,此外單個value的最大限制是1gb,不像 memcached只能儲存1mb的資料,因此redis可以用來實現很多有用的功能。

比方說用他的list來做fifo雙向鍊錶,實現乙個輕量級的高性 能訊息佇列服務,用他的set可以做高效能的tag系統等等。

另外redis也可以對存入的key-value設定expire時間,因此也可以被當作一 個功能加強版的memcached來用。 redis的主要缺點是資料庫容量受到物理記憶體的限制,不能用作海量資料的高效能讀寫,因此redis適合的場景主要侷限在較小資料量的高效能操作和運算上。

2、redis相比memcached有哪些優勢?

(1) memcached所有的值均是簡單的字串,redis作為其替代者,支援更為豐富的資料型別

(2) redis的速度比memcached快很多

(3) redis可以持久化其資料

3、redis支援哪幾種資料型別?

string、list、set、sorted set、hashes

4、redis主要消耗什麼物理資源?

記憶體。6、redis有哪幾種資料淘汰策略?

noeviction:返回錯誤當記憶體限制達到並且客戶端嘗試執行會讓更多記憶體被使用的命令(大部分的寫入指令,但del和幾個例外)

allkeys-lru: 嘗試**最少使用的鍵(lru),使得新新增的資料有空間存放。

volatile-lru: 嘗試**最少使用的鍵(lru),但僅限於在過期集合的鍵,使得新新增的資料有空間存放。

allkeys-random: **隨機的鍵使得新新增的資料有空間存放。

volatile-random: **隨機的鍵使得新新增的資料有空間存放,但僅限於在過期集合的鍵。

volatile-ttl: **在過期集合的鍵,並且優先**存活時間(ttl)較短的鍵,使得新新增的資料有空間存放。

7、redis官方為什麼不提供windows版本?

因為目前linux版本已經相當穩定,而且使用者量很大,無需開發windows版本,反而會帶來相容性等問題。

8、乙個字串型別的值能儲存最大容量是多少?

512m

9、為什麼redis需要把所有資料放到記憶體中?

redis為了達到最快的讀寫速度將資料都讀到記憶體中,並通過非同步的方式將資料寫入磁碟。

所以redis具有快速和資料持久化的特徵。如果不將資料放在記憶體中,磁碟i/o速度為嚴重影響redis的效能。

在記憶體越來越便宜的今天,redis將會越來越受歡迎。 如果設定了最大使用的記憶體,則資料已有記錄數達到記憶體限值後不能繼續插入新值。

持久化

分為兩種:

1.rdb:資料完整的生成乙個快照,以二進位制的格式儲存在硬碟上,字尾為.rdb。

2.aof:所有資料更新語句都記錄在日誌上。(aof重寫)

複製

舊版:同步,主節點更新狀態給從節點,全部打包,效率低

新版:同步,完整重同步,部分重同步

取決條件是執行id+複製偏移量+複製積壓緩衝區

哨兵(sentinel

投票選舉leader,和選舉主節點

redis的基本概念

一 redis的特點 二 redis的典型使用場景 四 redis的啟動 最簡啟動 執行redis server 動態引數啟動 redis server port 6379 配置檔案啟動 redis server configpath 配置檔案配置時常用的設定有 daemonize 是否是守護程序 ...

Redis集群(一) 基本概念

一 使用版本 3.0.0.0 二 基本概念 redis 集群是乙個可以 在多個 redis 節點之間進行資料共享 的設施 installation redis 集群使用資料分片 sharding 而非一致性雜湊 consistency hashing 來實現 乙個 redis 集群包含 16384 ...

基本概念 C 基本概念

由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...