Redis 入門之Redis簡介

2022-08-17 10:12:13 字數 2237 閱讀 8364

reids 是乙個開源的高效能鍵值對資料庫。它通過多種鍵值資料型別來適應不同場景下的儲存需求,並借助許多高層級的介面使其可以勝任如快取、佇列系統等不同的角色。

redis到底是在什麼情況下誕生的,我們才能知道我們為什麼要用它。現在就來簡單說說它的歷史。

兩個時間點2023年和2023年。

下面就說一下究竟它的優點是什麼,吸引了如此龐大的使用者 ???

redis 是 remote dictionary server (遠端字典伺服器)的縮寫,它以字典結構儲存資料,並允許其他應用通過tcp 協議讀寫字典中的內容。

例如:

dict["key"] = "value"
中dict是乙個字典結構變數,字串"key"是鍵名,而"value"是鍵值,在字段中我們可以獲取或設定鍵名對應的鍵值,也可以刪除乙個鍵。

資料型別

到目前為止redis支援的鍵值資料型別如下:

字串型別

雜湊型別

列表型別

集合型別

有序集合型別

這種字典型別的儲存結構與常見的 mysql 等關聯式資料庫的二維表形式的儲存結構有很大的差異。

model["title"] = "language"

model["content"] = "balabala"

model["view"] = 0

model["tags"] = ["php","ruby","node.js"]

如果我們需要把這片文章的資料儲存到資料庫中,並且要求可以通過標籤檢索出文章。如果使用關聯式資料庫的儲存,一般會將標題、正文和閱讀量儲存在乙個表中,而將標籤儲存在另乙個表中,然後再使用第三個表連線接文章和標籤表。需要查詢時海的將三個表進行連線,不是很直觀。

而redis 字典結構的儲存方式和對多種簡直資料型別的支援使得開發者可以將程式中的資料直接對映到redis中。

使用redis的另乙個優勢是其對不用的資料型別提供可非常方便的操作方式,如使用集合型別儲存文章標籤,redis 可以對標籤進行如交集、並集這樣的集合運算。

redis 資料庫中所有資料都儲存在記憶體中。由於記憶體的讀寫速度快於硬碟,因此redis在效能上對比其他基於硬碟儲存的資料庫有非常明顯的優勢,在一台普通的膝上型電腦上,redis可以在一秒內讀寫超過十萬個鍵值。

將資料儲存在記憶體中也有問題,例如,程式推出後記憶體中的資料會丟失。不過redis提供了對持久化的支援,即將可以記憶體中的資料非同步寫入到硬碟中,同時不影響繼續提供服務。

redis 雖然是作為資料庫開發的,但是還有本多人將其用作快取、佇列系統等來使用。

redis 可以為每個鍵設定生存時間(timetolive, ttl),生存時間到期後會自動被刪除。這以功能配合出色的效能讓redis可以作為快取系統來使用。

作為快取系統,redis 還可以限定資料占用的最大記憶體空間,子啊資料達到空間限制後可以以按照一定的規則自動淘汰不需要的鍵。

除此之外,redis 的列表型別鍵可以用來實現佇列,並可支援阻塞式讀取,可以很容易得實現乙個高效能的優先順序對列。同時在更高層面上,redis海支援"發布/訂閱"的訊息模式,可以基於此構建聊天室等系統。

例如: 在關係資料中要獲取 model 表中 id為 1的記錄title 的字段的值使用sql語句實現:

select title from model where id = 1 limit 1
使用redis中要讀取鍵名為 model:1 的雜湊型別鍵的 title欄位的值,可以使用如下命令:

hget model:1 title
其中hget就是乙個命令。redis 提供了一百多個命令,但是常用的只有幾十個而且非常容易記憶。

redis提供了幾十種不同變成語言的客戶端庫,這些庫都很好的封裝了redis的命令,使得在程式中與 redis 進行互動變得很容易。

redis 使用c語言開發,**量只有3萬多行。這降低了使用者通過修改 redis源**來之更適合自己專案需要的門檻。對與希望「榨乾」資料庫效能開發者而言,這無疑是乙個很大的吸引力。

reddis的開源使得redis具有良好的開發分為和嚴謹的版本發布機制,這讓redis的穩定版本非常可靠。

總結一下:

效能極高 – redis能讀的速度是110000次/s,寫的速度是81000次/s 。

豐富的資料型別 – redis支援二進位制的字串、列表、雜湊值、集合和有序集合等資料型別操作。

豐富的特性 – redis還支援 發布/訂閱, 通知, key 過期等等特性。

記憶體儲存與持久化,資料可靠不丟失

簡單穩定

redis學習(一)Redis入門簡介

redis 是完全開源免費的,遵守bsd協議,是乙個高效能的key value資料庫。redis 與其他 key value 快取產品有以下三個特點 tar zvxf redis 3.0 5.tar gzcd redis 3.0 5make redis server開啟之後如下圖所示 這種方式是啟動...

redis入門之簡介與安裝(一)

remote dictionary server是乙個key value儲存系統。提供豐富的資料結構,包括 字串 string 列表 list 集合 set 有序集合 zset 雜湊 hash redis常被稱作資料結構伺服器 data structure server redis所有操作都是原子性...

redis入門指 1 簡介

這一功能配合出色的效能讓redis可以作為快取系統來使用,redis的效能已經足夠優異,在絕大部分場合下其效能都不會成為瓶頸,所以在使用時更應該關心的是二者在功能上的區別。隨著redis3.0推出,memcached幾乎所有功能都成為了redis的子集。redis對集群的支援使得 memcached...