Redis介紹和使用場景詳解
本篇文章主要介紹了Redis介紹和使用場景,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
(1)持久化數(shù)據(jù)庫的缺點
平常我們使用的關系型數(shù)據(jù)庫有Mysql、Oracle以及SqlServer等,在開發(fā)的過程中,數(shù)據(jù)通常都是通過Web提供的數(shù)據(jù)庫驅動來鏈接數(shù)據(jù)庫進行增刪改查。
那么,我們日常使用的數(shù)據(jù)庫的數(shù)據(jù)都儲存在哪里呢?我們以Mysql為例。
打開我們Mysql所在的文件夾目錄下的data文件夾,如下所示:

我們可以發(fā)現(xiàn),里面都是我們創(chuàng)建的數(shù)據(jù)庫,打開其中一個,可以看到我們創(chuàng)建的表,他們以文件(格式frm和ibd)的形式存在:

也就是說,我們日常使用的關系型數(shù)據(jù)中的數(shù)據(jù),全部存儲在我們部署數(shù)據(jù)庫的機器的硬盤中。
一般我們的網(wǎng)站開發(fā)完成,上線之后,服務器的讀寫效率是網(wǎng)站運行速度的重要條件,當然還有服務器的帶寬等,但是這些東西都可以通過硬件的更新升級來解決。其實與網(wǎng)站運行效率息息相關的東西,就是我們的------數(shù)據(jù)庫。
數(shù)據(jù)庫處理數(shù)據(jù)的速度,與網(wǎng)站速度息息相關,而數(shù)據(jù)查詢、數(shù)據(jù)處理等等,都和數(shù)據(jù)庫處理速度有關。提高數(shù)據(jù)庫的處理數(shù)據(jù)的能力,其中一個方案就是sql語句的優(yōu)化技術,sql語句寫的處理效率比較高,數(shù)據(jù)庫處理能力就會上去,而網(wǎng)站的數(shù)據(jù)處理能力也會快些。
但是,當網(wǎng)站的處理和訪問量非常大的時候,我們的數(shù)據(jù)庫的壓力就變大了,數(shù)據(jù)庫的連接池,數(shù)據(jù)庫同時處理數(shù)據(jù)的能力就會受到很大的挑戰(zhàn),一旦數(shù)據(jù)庫承受了其最大承受能力,網(wǎng)站的數(shù)據(jù)處理效率就會大打折扣。此時就要使用高并發(fā)處理、負載均衡和分布式數(shù)據(jù)庫,而這些技術既花費人力,又花費資金。
如果我們的網(wǎng)站不是非常大的網(wǎng)站,而有想要提高網(wǎng)站的效率,降低數(shù)據(jù)庫的讀寫次數(shù),我們就需要引入緩存技術。
(2)緩存
緩存就是在內存中存儲的數(shù)據(jù)備份,當數(shù)據(jù)沒有發(fā)生本質改變的時候,我們就不讓數(shù)據(jù)的查詢去數(shù)據(jù)庫進行操作,而去內存中取數(shù)據(jù),這樣就大大降低了數(shù)據(jù)庫的讀寫次數(shù),而且從內存中讀數(shù)據(jù)的速度比去數(shù)據(jù)庫查詢要快一些,這樣同時又提高了效率。
使用緩存減輕數(shù)據(jù)庫的負載:
在開發(fā)網(wǎng)站的時候如果有一些數(shù)據(jù)在短時間之內不會發(fā)生變化,而它們還要被頻繁訪問,為了提高用戶的請求速度和降低網(wǎng)站的負載,就把這些數(shù)據(jù)放到一個讀取速度更快的介質上(或者是通過較少的計算量就可以獲得該數(shù)據(jù)),該行為就稱作對該數(shù)據(jù)的緩存。該介質可以是文件/數(shù)據(jù)庫/內存。內存經(jīng)常用于數(shù)據(jù)庫緩存。
緩存的兩種形式:
頁面緩存經(jīng)常用在CMS(content manage system)內存管理系統(tǒng)里面。
數(shù)據(jù)緩存經(jīng)常會用在頁面的具體數(shù)據(jù)里面。
緩存分為兩種:
頁面緩存(smarty靜態(tài)化技術)

數(shù)據(jù)緩存

(3)Redis介紹
我們要學習的一個緩存技術就是----Redis:
Redis是Remote Dictionary Server(遠程數(shù)據(jù)服務)的縮寫,由意大利人antirez(Salvatore Sanfilippo)開發(fā)的一款內存高速緩存數(shù)據(jù)庫,該軟件使用C語言編寫,它的數(shù)據(jù)模型為key-value。它支持豐富的數(shù)據(jù)結構(類型),比如String/List/Hash/Set/Sorted Set。
可持久化(一邊運行,一邊把數(shù)據(jù)往硬盤中備份一份,防止斷電等情況導致數(shù)據(jù)丟失,等斷電情況恢復之后,Redis再把硬盤中的數(shù)據(jù)恢復到內存中),保證了數(shù)據(jù)的安全。
4)redis和memcache比較
1.Redis不僅僅支持簡單的k/v類型的數(shù)據(jù),同時還提供list,set,zset,hash等數(shù)據(jù)結構的存儲。
2.Redis支持master-slave(主-從)模式應用。
3.Redis支持數(shù)據(jù)持久化,可以將內存中的數(shù)據(jù)保持在磁盤中,重啟的時候可以再次加載進行使用
4.Redis單個value的最大限制是1GB,memcached只能保存1MB的數(shù)據(jù)。
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
使用Mybatis的Batch?Insert?Support?實現(xiàn)批量插入
這篇文章主要介紹了使用Mybatis的Batch?Insert?Support?實現(xiàn)批量插入。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
SpringCloud-Hystrix實現(xiàn)原理總結
通過hystrix可以解決雪崩效應問題,它提供了資源隔離、降級機制、融斷、緩存等功能。接下來通過本文給大家分享SpringCloud-Hystrix實現(xiàn)原理,感興趣的朋友一起看看吧2021-05-05
Spring?Cloud?Gateway?2.x跨域時出現(xiàn)重復Origin的BUG問題
這篇文章主要介紹了Spring?Cloud?Gateway?2.x跨域時出現(xiàn)重復Origin的BUG問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04
解決@Autowired報錯Could not autowire. No bea
介紹了在IDEA中使用@Autowired報錯Couldnot autowire. No beans of 'XXX' type found的解決方法,原因是@Autowired在注入service時,由于service接口沒有實現(xiàn)類,而mybatis僅需提供Dao接口,導致@Autowired無法識別2024-12-12
Java?從json提取數(shù)組并轉換為list的操作方法
這篇文章主要介紹了Java?從json提取出數(shù)組并轉換為list,使用getJSONArray()獲取到jsonarray后,再將jsonArray轉換為字符串,最后將字符串解析為List列表,本文通過實例代碼給大家詳細講解,需要的朋友可以參考下2022-10-10
Spring Boot配置application.yml及根據(jù)application.yml選擇啟動配置的操作
Spring Boot中可以選擇applicant.properties 作為配置文件,也可以通過在application.yml中進行配置,讓Spring Boot根據(jù)你的選擇進行加載啟動配置文件,本文給大家介紹Spring Boot配置application.yml及根據(jù)application.yml選擇啟動配置的操作方法,感興趣的朋友一起看看吧2023-10-10

