1.情景展示
在我們日常的Java Web開發中,無不都是使用數據庫來進行數據的存儲,由於一般的系統任務中通常不會存在高並發的情況,所以這樣看起來並沒有什么問題,可是一旦涉及大數據量的需求,比如一些商品搶購的情景,或者是主頁訪問量瞬間較大的時候,單一使用數據庫來保存數據的系統會因為面向磁盤,磁盤讀/寫速度比較慢的問題而存在嚴重的性能弊端,一瞬間成千上萬的請求到來,需要系統在極短的時間內完成成千上萬次的讀/寫操作,這個時候往往不是數據庫能夠承受的,極其容易造成數據庫系統癱瘓,最終導致服務宕機的嚴重生產問題。
2.下載地址
windows版
https://github.com/tporadowski/redis/releases
windows操作系統,64位版,截至發文,已經更新到了5.0.10,網上大部分教程卻只停留在3.X版本。
點擊上面鏈接,即可下載(我用的是IDM下載插件)。
在這里,我們可以找到任何關於redis的歷史版本,划拉到網頁底部;
3.2.1版本的好像不分32位還是64位,而且有Linux版本
如果覺得版本高的話,還可以點擊“Next”,去下一頁查找。
Linux版
如果覺得上面3.2.1版的Linux版本太低的話,就去下面的網址下載。
點擊,即可下載,在redis官網上只能下載Linux版本,我沒找到windows版本的。
3.安裝
解壓,放到一個位置,比如:D盤;
4.啟動redis
方式一:cmd命令啟動
首先,切換到redis的安裝目錄下;
其次,輸入命令:redis-server redis.windows.conf
回車,即可啟動成功,但是,這種方式太麻煩,不建議使用。
方式二:通過bat啟動
我們來到redis的所在目錄下,右鍵,新建一個文本文件。
打開該文件,輸入內容:
redis-server redis.windows.conf
保存,並對文件進行重命名
確定更改(如果不出現該提示,說明你沒有讓文件的后綴名顯示出來)
這個命令其實就是在調用 redis-server.exe 命令來讀取 redis.window.conf 的內容;
這樣配置后,我們想要啟動redis,就不需要在cmd窗口下用該命令啟動redis啦。
雙擊運行redis.bat”文件,redis啟動成功:
上圖的提示信息告訴了我們:① Redis 當前的版本號;② Redis 運行在 6379 端口;③ Redis 進程的 PID 為 19520;④ windows操作系統:64 位。
5.常用命令
運行redis-cli.exe 文件,這是 Redis 自帶的一個客戶端工具,它可以用來連接到我們當前的 Redis 服務器,我們做以下測試:
往緩存中添加Key和Value
// set key value set Name Marydon
雖然,我們通過redis客戶端直接存入中文會導致亂碼,但實際在集成到spring中后,存入的中文會被編碼成x*格式,並不影響中文的正常存取。
從緩存中取值
// get key get Name
從緩存中刪掉
// del key del Name
完事。
2020-12-10
查看所有的key
keys *
2020-12-12
刪除所有key(清空一個數據庫)
flushdb
清除整個redis數據
flushall
設置過期時間
expire keyName seconds
對於已經過期的鍵,redis並不會立即將其從內存當中刪除。
Redis對於過期鍵有三種清除策略:
- 被動刪除:當讀/寫一個已經過期的key時,會觸發惰性刪除策略,直接刪除掉這個過期key;
- 主動刪除:由於惰性刪除策略無法保證冷數據被及時刪掉,所以Redis會定期主動淘汰一批已過期的key;
- 當前已用內存超過maxmemory限定時,觸發主動清理策略。
6.設置密碼訪問
因為我們通過redis.windows.conf啟動的redis,所以,添加密碼,需要在這里配置。
搜索:requirepass,一共有兩個,找到它。
在它下面一行添加設置訪問密碼:
requirepass 123456
比如,我把密碼設置成了123456,保存配置文件;
此時,我們重啟redis服務器,打開redis客戶端。
此時,再次從緩存中拿值,就會報錯,需要密碼。
只有密碼驗證通過后,才能根據key取值。
7.性能測試
2020-12-11
打開黑窗口,切換到redis根目錄下,執行一下命令:
redis-benchmark -n 100000 -q
執行結果如下: