日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis+Mysql模式和内存+硬盘模式的异同

發布時間:2025/5/22 数据库 159 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis+Mysql模式和内存+硬盘模式的异同 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習任何新知識,都是一個循序漸進的過程,從剛開始的懵懂無知,到簡單熟悉,然后突然的徹悟,成果讓人欣喜若狂,心情也會快樂很久。

redis+mysql和內存+硬盤類似的地方

首先看圖

首先,我們知道,mysql是持久化存儲,存放在磁盤里面,檢索的話,會涉及到一定的IO,為了解決這個瓶頸,于是出現了緩存,比如現在用的最多的 memcached(簡稱mc)。首先,用戶訪問mc,如果未命中,就去訪問mysql,之后像內存和硬盤一樣,把數據復制到mc一部分。

redis和mc都是緩存,并且都是駐留在內存中運行的,這大大提升了高數據量web訪問的訪問速度。然而mc只是提供了簡單的數據結構,比如 string存儲;redis卻提供了大量的數據結構,比如string、list、set、hashset、sorted set這些,這使得用戶方便了好多,畢竟封裝了一層實用的功能,同時實現了同樣的效果,當然用redis而慢慢舍棄mc。

內存和硬盤的關系,硬盤放置主體數據用于持久化存儲,而內存則是當前運行的那部分數據,CPU訪問內存而不是磁盤,這大大提升了運行的速度,當然這是基于程序的局部化訪問原理。

推理到redis+mysql,它是內存+磁盤關系的一個映射,mysql放在磁盤,redis放在內存,這樣的話,web應用每次只訪問redis,如果沒有找到的數據,才去訪問Mysql。

然而redis+mysql和內存+磁盤的用法最好是不同的。

redis+mysql和內存+硬盤運行模式是不同的
了解過內存和硬盤運行過程的同學,都知道他倆之間通過頁面置換算法進行調度,也就是說每次是按塊將數據從硬盤換入或者換出內存,比如硬盤有一個100G的文件,如果要讀這個文件,內存中每次只放該文件10MB的一部分(圖1中的小塊就是這個意思)。
于是有人會猜測,mysql存儲了100G的數據,用戶訪問mysql的時候,把10MB數據拷貝到redis,比如select一個id=1000的數 據,那就把id=10到id=9999的數據放到redis,用于下次訪問。可是關鍵在于mysql數據的訪問,并不是文件這種局部性原理,不同的用戶訪 問的是完全不同的東西,跟id的次序沒有任何關系。

其實redis的強項也不在此,它擅長保存元數據類的數據,也就是說描述性的而不是數據本身

就此我假定了redis的幾個應用場景,請大家批評指正:

存放計數器的數字
存放檢索關鍵詞的id列表(不放內容)
存放用戶之間的follow關系(非用戶信息)
存放簡單的靜態Html,而非所有的CSS和JS
總之發現,就是redis大量存放的是數據表的索引字段,如果剛好用到符合條件的信息,可以根據索引字段,再去 mysql查找,比如搜索關鍵詞”redis”,第一步我們去mysql獲取redis相關的信息返回給用戶,然后記錄一個zset,將redis作為名 字,將搜索到的每個Id以先后順序存在里面,那么下次有人搜索”redis”,直接根據該列表去mysql找對應id的信息就行了,這已經大大提升了訪問 速度。

下面是一個檢索的流程圖:

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Redis+Mysql模式和内存+硬盘模式的异同的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。