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

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

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

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

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

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

2,加鎖:因?yàn)閞edis是單線程的,提供的比如incr,setnx等方法均可以用來當(dāng)做鎖使用!

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

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

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

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

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