Redis基本介紹

2022-06-24 17:15:13 字數 3098 閱讀 1513

redis 是完全開源免費的,遵守bsd協議,是乙個高效能(nosql)的key-value資料庫,redis是乙個開源的使用ansi c

語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、key-value資料庫,並提供多種語言的api。從2023年3月15日起,redis的開發工作由vmware主持。從2023年5月開始,redis的開發由pivotal贊助。(vmware在資助著redis專案的開發和維護)

bsd是"berkeley software distribution"的縮寫,意思是"伯克利軟體發行版"。

bsd開源協議是乙個給於使用者很大自由的協議。可以自由的使用,修改源**,也可以將修改後的**作為開源或者專有軟體再發布。bsd**鼓勵**共享,但需要尊重**作者的著作權。bsd由於允許使用者修改和重新發布**,也允許使用或在bsd**上開發商業軟體發布和銷售,因此是對商業整合很友好的協議。

nosql,泛指非關係型的資料庫。隨著網際網路web2.0**的興起,傳統的關聯式資料庫在應付web2.0**,特別是超大規模和高併發的sns型別的web2.0純動態**已經顯得力不從心,暴露了很多難以克服的問題,而非關係型的資料庫則由於其本身的特點得到了非常迅速的發展。nosql資料庫的產生就是為了解決大規模資料集合多重資料種類帶來的挑戰,尤其是大資料應用難題。

①鍵值(key-value

)儲存資料庫

這一類資料庫主要會使用到乙個雜湊表,這個表中有乙個特定的鍵和乙個指標指向特定的資料。key/value模型對於it系統來說的優勢在於簡單、易部署。但是如果dba只對部分值進行查詢或更新的時候,key/value就顯得效率低下了。[3]  舉例如:tokyo cabinet/tyrant,redis,

voldemort, oracle bdb.

②列儲存資料庫

這部分資料庫通常是用來應對分布式儲存的海量資料。鍵仍然存在,但是它們的特點是指向了多個列。這些列是由列家族來安排的。如:cassandra,hbase, riak.

③文件型資料庫

文件型資料庫的靈感是來自於lotus notes辦公軟體的,而且它同第一種鍵值儲存相類似。該型別的資料模型是版本化的文件,半結構化的文件以特定的格式儲存,比如json。文件型資料庫可 以看作是鍵值資料庫的公升級版,允許之間巢狀鍵值。而且文件型資料庫比鍵值資料庫的查詢效率更高。如:couchdb, mongodb. 國內也有文件型資料庫sequoiadb,已經開源。

④圖形(graph)資料庫

圖形結構的資料庫同其他行列以及剛性結構的sql資料庫不同,它是使用靈活的圖形模型,並且能夠擴充套件到多個伺服器上。nosql資料庫沒有標準的查詢語言(sql),因此進行資料庫查詢需要制定資料模型。許多nosql資料庫都有rest式的資料介面或者查詢api。 如:neo4j, infogrid,

infinite graph.

因此,我們總結nosql資料庫在以下的這幾種情況下比較適用:

1、資料模型比較簡單;

2、需要靈活性更強的it系統;

3、對資料庫效能要求較高;

4、不需要高度的資料一致性;

5、對於給定key,比較容易對映複雜值的環境。

redis支援資料的持久化,可以將記憶體中的資料儲存在磁碟中,重啟的時候可以再次載入進行使用。

redis不僅僅支援簡單的key-value型別的資料,同時還提供list,set,zset,hash等資料結構的儲存。

redis支援資料的備份,集群等高可用功能。

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

豐富的資料型別 – redis支援的型別 string, list, hash, set 及 ordered set 資料型別操作。

原子 – redis的所有操作都是原子性的,意思就是要麼成功執行要麼失敗完全不執行。單個操作是原子性的。多個操作也支援事務,即原子性,通過multi和exec指令包起來。

豐富的特性 – redis還支援 publish/subscribe, 通知, key 過期等等特性。

redis是乙個簡單的,高效的,分布式的,基於記憶體的快取工具

架設好伺服器後,通過網路連線(類似資料庫),提供keyvalue式快取服務

簡單,是redis突出的特色。

簡單可以保證核心功能的穩定和優異

redis單個key 存入512m大小

redis支援多種型別的資料結構(string,list,hash.set.zset)

redis 是單執行緒  

原子性   

redis可以持久化 

因為使用了 rdb和aof機制 

redis支援集群  

而且redis 支援庫(0-15) 16個庫

redis 還可以做訊息佇列 

比如聊天室 

im 企業級開發中:可以用作資料庫、快取(熱點資料(經常會被查詢,但是不經常被修改或者刪除的資料)和訊息中介軟體等大部分功能。

優點

①豐富的資料結構

②高速讀寫,redis使用自己實現的分離器,**量很短,沒有使用lock(mysql),因此效率非常高。

缺點

①持久化。redis直接將資料儲存到記憶體中,要將資料儲存到磁碟上,redis可以使用兩種方式實現持久化過程。定時快照(snapshot):每隔一段時間將整個資料庫寫到磁碟上,每次均是寫全部資料,代價非常高。第二種方式基於語句追加(aof):只追蹤變化的資料,但是追加的log可能過大,同時所有的操作均重新執行一遍,回覆速度慢。 

②耗記憶體,占用記憶體過高。

Redis基本介紹

redis 優勢 redis與其他key value儲存有什麼不同?redis支援五種資料型別 string 字串 hash 雜湊 list 列表 set 集合 及zset sorted set 有序集合 string是redis最基本的型別,你可以理解成與memcached一模一樣的型別,乙個ke...

redis安裝和基本介紹

redis簡介 redis是乙個開源 bsd許可 記憶體儲存的資料結構伺服器,可用作資料庫,快取記憶體和訊息佇列 它支援字串 雜湊表 列表 集合 有序集合,位圖,hyperloglogs等資料型別。內建複製 lua指令碼 lru收回 事務以及不同級別磁碟持久化功能,同時通過redis sentine...

redis基本知識介紹

redis相對memcache來說,支援了更多的資料型別,在使用場景上面無疑是更加的便捷 string 可以儲存任何形式的字串,內部實現結構有int,sds dynamisc string 當值為整型時,使用int結構存放,非整型時使用sds儲存 list 當list的節點小於配置 hash max...