redis簡介

Redis 是一個Key-Value 存儲系統。和Memcached 類似,它支持存儲的value 類型包括string(字符串)、list(鏈表)、set(集合)和zset(有序集合)。與memcached 一樣,爲了保證效率,數據都是緩存在內存中。但是Redis 會週期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,並且在此基礎上實現master-slave(主從)同步。

Key-Value 存儲系統

在構建諸如搜索引擎、IM、P2P、遊戲服務器、SNS 等大型互聯網應用以及提供雲計算服務的時候,怎樣保證系統在海量數據環境下的高性能、高可靠性、高擴展性、高可用性、低成本成爲所有系統架構們考慮的重點,而怎樣解決數據庫服務器的性能瓶頸是最大的挑戰。

傳統的關係數據庫處理海量數據、分佈式架構時候在Performance(性能)、Scalability(可擴)、Availability(可用) 等方面也存在很大的侷限性。Key-Value Store 更加註重對海量數據存取的性能、分佈式、擴展性支持上,並不需要傳統關係數據庫的一些特徵,例如:Schema、事務、完整SQL 查詢支持等等,因此在分佈式環境下的性能相對於傳統的關係數據庫有較大的提升。

Key-Value 數據庫分爲很多種類:

redis簡介

Redis簡介

Redis 是一個支持網絡、可基於內存亦可持久化的日誌型、Key-Value 數據庫,並提供多種語言的API。

Redis 特點:

Redis支持數據的持久化,可以將內存中的數據保存在磁盤中,重啓的時候可以再次加載進行使用。
Redis不僅僅支持簡單的key-value類型的數據,同時還提供list,set,zset,hash等數據結構的存儲。
Redis支持數據的備份,即master-slave模式的數據備份。

redis優勢:

性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。
豐富的數據類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操作。
原子 – Redis的所有操作都是原子性的,意思就是要麼成功執行要麼失敗完全不執行。單個操作是原子性的。多個操作也支持事務,即原子性,通過MULTI和EXEC指令包起來。
豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過期等等特性

Redis與其他key-value存儲不同:

Redis有着更爲複雜的數據結構並且提供對他們的原子性操作,這是一個不同於其他數據庫的進化路徑。Redis的數據類型都是基於基本數據結構的同時對程序員透明,無需進行額外的抽象。

Redis運行在內存中但是可以持久化到磁盤,所以在對不同數據集進行高速讀寫時需要權衡內存,因爲數據量不能大於硬件內存。在內存數據庫方面的另一個優點是,相比在磁盤上相同的複雜的數據結構,在內存中操作起來非常簡單,這樣Redis可以做很多內部複雜性很強的事情。同時,在磁盤格式方面他們是緊湊的以追加的方式產生的,因爲他們並不需要進行隨機訪問。

redis和mysql的區別

(1)類型上

從類型上來說,mysql是關係型數據庫,redis是緩存數據庫

(2)作用上

mysql用於持久化的存儲數據到硬盤,功能強大,但是速度較慢
redis用於存儲使用較爲頻繁的數據到緩存中,讀取速度快

(3)需求上

mysql和redis因爲需求的不同,一般都是配合使用。

系統重啓後是否刪除redis數據

redis雖然是內存數據庫,但是它有持久化功能,停止的時候會把數據寫入文件,下次啓動的時候會把數據從文件讀取出來加載進內存。如果想要刪除數據那麼就要停止程序,然後刪除DB文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章