久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

web項目要引入redis的原因

125次閱讀
沒有評論

共計 2371 個字符,預計需要花費 6 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

web 項目要引入 redis 的原因?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是丸趣 TV 小編給大家帶來的參考內容,讓我們一起來看看吧!

redis 是 Nosql 數據庫,是一個 key-value 存儲系統。雖然 redis 是 key-value 的存儲系統,但是 redis 支持的 value 存儲類型是非常的多,比如字符串、鏈表、集合、有序集合和哈希。

redis 是一個 key-value 存儲系統。和 Memcached 類似,它支持存儲的 value 類型相對更多,包括 string(字符串)、list(鏈表)、set(集合)、zset(sorted set – 有序集合) 和 hash(哈希類型)。這些數據類型都支持 push/pop、add/remove 及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis 支持各種不同方式的排序。與 memcached 一樣,為了保證效率,數據都是緩存在內存中。區別的是 redis 會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了 master-slave(主從) 同步。

Redis 是一個高性能的 key-value 數據庫。redis 的出現,很大程度補償了 memcached 這類 key/value 存儲的不足,在部 分場合可以對關系數據庫起到很好的補充作用。它提供了 Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang 等客戶端,使用很方便。

Redis 支持主從同步。數據可以從主服務器向任意數量的從服務器上同步,從服務器可以是關聯其他從服務器的主服務器。這使得 Redis 可執行單層樹復制。存盤可以有意無意的對數據進行寫操作。由于完全實現了發布 / 訂閱機制,使得從數據庫在任何地方同步樹時,可訂閱一個頻道并接收主服務器完整的消息發布記錄。同步對讀取操作的可擴展性和數據冗余很有幫助。

Redis 是完全開源免費的,遵守 BSD 協議,是一個高性能的 key-value 數據庫。

Redis 支持五種數據類型:string(字符串),hash(哈希),list(列表),set(集合)及 zset(sorted set:有序集合)。

Redis 與其他 key-value 緩存產品有以下三個特點:

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 這樣的 Nosql 數據庫呢?

1、當數據量的總大小一個機器放不下時;

2、數據索引一個機器的內存放不下時;

3、訪問量(讀寫混合)一個實例放不下時。

單機時代,存儲只用一臺機器裝 mysql,如果每次存儲成千上萬條數據,這樣很會導致 mysql 的性能很差,存儲以及讀取速度很慢,然后就演變成緩存 +mysql+ 垂直拆分的方式。

Cache 作為中間緩存時代,將所有的數據先保存到緩存中,然后再存入 mysql 中,減小數據庫壓力,提高效率。

但是當數據再次增加到又一個量級,上面的方式也不能滿足需求,由于數據庫的寫入壓力增加,緩存只能緩解數據庫的讀取壓力。讀寫集中在一個數據庫上讓數據庫不堪重負,大部分網站開始使用主從復制技術來達到讀寫分離,以提高讀寫性能和讀庫的可擴展性。Mysql 的 master-slave 模式成為這個時候的網站標配了。

主從分離模式時代,在 redis 的高速緩存,MySQL 的主從復制,讀寫分離的基礎之上,這時 MySQL 主庫的寫壓力開始出現瓶頸,而數據量的持續猛增,由于 MyISAM 使用表鎖,在高并發下會出現嚴重的鎖問題,大量的高并發 MySQL 應用開始使用 InnoDB 引擎代替 MyISAM。Nosql 數據庫的優勢:

1、易擴展

這些類型的數據存儲不需要固定的模式,無需多余的操作就可以進行橫向的擴展。相對于關系型數據庫可以減少表和字段特別多的情況。也無型之間在架構的層面上帶來了可擴展的能力

2、大數據量提高性能

3、多樣靈活的數據模型

感謝各位的閱讀!看完上述內容,你們對 web 項目要引入 redis 的原因大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注丸趣 TV 行業資訊頻道。

向 AI 問一下細節

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-18發表,共計2371字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 辉县市| 宜川县| 阿拉善左旗| 应城市| 西吉县| 开封市| 大港区| 柳州市| 福贡县| 连江县| 高淳县| 临沂市| 光泽县| 蒲江县| 万源市| 大英县| 会同县| 淮北市| 晋中市| 礼泉县| 信宜市| 张北县| 田阳县| 顺昌县| 大竹县| 申扎县| 黑龙江省| 博客| 长沙县| 金沙县| 海城市| 乐安县| 平邑县| 嘉定区| 荆州市| 岑溪市| 阳山县| 吉安县| 葵青区| 迁安市| 尼木县|