對redis的一些理解


 緩存就是在內存中存儲的數據備份,當數據沒有發生本質變化的時候,我們避免數據的查詢操作直接連接數據庫,而是去    內容中讀取數據,這樣就大大降低了數據庫的讀寫次數,而且從內存中讀數據的速度要比從數據庫查詢要快很多。

使用redis有哪些好處?

(1) 速度快,因為數據存在內存中,類似於HashMap,HashMap的優勢就是查找和操作的時間復雜度都是O(1)

(2) 支持豐富數據類型,支持string,list,set,sorted set,hash

(3) 支持事務,操作都是原子性,所謂的原子性就是對數據的更改要么全部執行,要么全部不執行

(4) 豐富的特性:可用於緩存,消息,按key設置過期時間,過期后將會自動刪除

一.數據庫緩存

常見的數據庫,比如oracle、mysql等,數據都是存放在磁盤中。雖然在數據庫層也做了對應的緩存,但這種數據庫層次的緩存一般針對的是查詢內容,而且粒度也太小,一般只有表中數據沒有變更的時候,數據庫對應的cache才發揮了作用。但這並不能減少業務系統對數據庫產生的增、刪、查、改的龐大IO壓力。所以數據庫緩存技術在此誕生,實現熱點數據的高速緩存,提高應用的響應速度,極大緩解后端數據庫的壓力

二.數據庫緩存的技術特點

1.性能優越

數據庫緩存的第一個技術特點就是提高性能,所以數據庫緩存的數據基本上都是存儲在內存中,相比io讀寫的速度,數據訪問快速返回。

2.應用場景

針對數據庫的增、刪、查、改,數據庫緩存技術應用場景絕大部分針對的是“查”的場景。比如,一篇經常訪問的帖子/文章/新聞、熱門商品的描述信息、好友評論/留言等。因為在常見的應用中,數據庫層次的壓力有80%的是查詢,20%的才是數據的變更操作。所以絕大部分的應用場景的還是“查”緩存。當然,“增、刪、改”的場景也是有的。比如,一篇文章訪問的次數,不可能每訪問一次,我們就去數據庫里面加一次吧?這種時候,我們一般“增”場景的緩存就必不可少。否則,一篇文章被訪問了十萬次,代碼層次不會還去做十萬次的數據庫操作吧。

3.數據一致性

在很多應用場景中,當一個數據發生變更的時候,很多人在考慮怎么樣確保緩存數據和數據庫中數據保存一致性,確保從緩存讀取的數據是最新的。甚至,有人在對應數據變更的時候,先更新數據庫,然后再去更新緩存。我覺得這個考慮不太現實,一方面這會導致代碼層次邏輯變得復雜,另外一方面也真想不明白還要緩存干什么了。在絕大多數的應用中,緩存中的數據和數據庫中的數據是不一致的。即,我們犧牲了實時性換回了訪問速度。比如,一篇經常訪問的帖子,可能這篇帖子已經在數據庫層次進行了變更。而我們每次訪問的時候,讀取的都是緩存中的數據(帖子)。既然是緩存,那么必然是對實時性可以有一定的容忍度的數據,容忍度的時間可以是5分鍾,也可以是5小時,取決於業務場景的要求。相反,一定要求是實時性的數據庫,就不應該從緩存里讀取,比如庫存,再比如價格。

 

刪除Redis緩存

1.訪問redis根目錄    cd  /usr/local/redis-2.8.19

2.登錄redis:redis-cli -h 127.0.0.1 -p 6379

3.查看所有key值:keys *

4.刪除指定索引的值:del key

5.清空整個 Redis 服務器的數據:flushall 

6.清空當前庫中的所有 key:flushdb 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM