redis算是用的最多的key-value型緩存組件了!因為使用了key-value型,所以存取效率極好,簡單來說就類似JAVA中的hashMap,不過是用整個服務(wù)器內(nèi)存來當做map,但是redis的數(shù)據(jù)可以通過配置指令保存到硬盤(同步保存save,異步保存bgsave)!

redis是單線程模式,這能保證redis中存取的數(shù)據(jù)庫絕對線程安全,同時,因為避免多線程之間切換的開銷,redis的存取性能跟使用多線程的memcache在一定程度上旗鼓相當,都非常高的性能,不過redis的value支持G級別的數(shù)據(jù),能用來存放大文本等,這是memcache不能做到的。。

為了進一步提升redis的穩(wěn)定性和存取性能,redis支持集群,具體搭建方式,可參考我之前的文章!

Java工程師是如何使用Redis的?

那么redis在實際的開發(fā)中,主要用來做什么呢?

1,數(shù)據(jù)存取:無需多說!

2,加鎖:因為redis是單線程的,提供的比如incr,setnx等方法均可以用來當做鎖使用!

3,秒殺系統(tǒng):商品存隊列,請求進來進行匹配,然后異步出單即可!

4,計數(shù)器:對同一個key的value計數(shù)即可!

5,超時問題:比如頁面訪問超時啥的,頁面訪問接口的時候持續(xù)更新某個設(shè)定值,超過某個時間段再訪問,則超時!

Java工程師是如何使用Redis的?

當然,redis在使用過程中會存在持久化失敗,緩存擊穿,擴容困難等問題,不過無論如何,redis都是一款最值得用的緩存工具!