redis主從多長時間同步一次 Java工程師是如何使用Redis的?
Java工程師是如何使用Redis的?在分布式和微服務(wù)架構(gòu)遍地開花的實踐中,Redis一直是分布式緩存的首選,可謂經(jīng)久不衰,獨樹一幟。Redis運行在內(nèi)存上,支持持久化NoSql數(shù)據(jù)庫。它是目前最流行
Java工程師是如何使用Redis的?
在分布式和微服務(wù)架構(gòu)遍地開花的實踐中,Redis一直是分布式緩存的首選,可謂經(jīng)久不衰,獨樹一幟。Redis運行在內(nèi)存上,支持持久化NoSql數(shù)據(jù)庫。它是目前最流行的NoSQL數(shù)據(jù)庫之一,也被稱為數(shù)據(jù)結(jié)構(gòu)服務(wù)器。
為什么使用Redis?Redis不僅支持簡單的k/v數(shù)據(jù),還提供了list、set、zset、hash等數(shù)據(jù)結(jié)構(gòu)的存儲。Redis支持主從模式應(yīng)用。Redis支持?jǐn)?shù)據(jù)持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中,重啟時可以再次加載使用。Redis單個值的最大限制是1GB,memcached只能存儲1MB的數(shù)據(jù)。由于種種原因,Redis成為了我們緩存架構(gòu)的首選,我也是在開始碼農(nóng)生涯的時候接觸到了Redis,不過當(dāng)時使用起來還是比較簡單的。
當(dāng)初由于互聯(lián)網(wǎng)團隊的初期建設(shè),各種中間件都需要自己搭建,包括Redis。我們用Docker搭建了一個Redis集群,采用主從式Redis架構(gòu),然后用Sentinel模式監(jiān)控Redis集群,也是通過Sentinel使用。通過Spring或Spring Boot的sentry連接連接Redis,將其注冊為Bean,然后使用序列化的鍵值結(jié)構(gòu)緩存所需的數(shù)據(jù)。由于領(lǐng)導(dǎo)風(fēng)格的原因,我們只允許使用Key-Value的基本功能來操作Redis。至于原因,沒有進一步研究。
然后,他跳到了現(xiàn)在的公司,公司把Redis封裝成基礎(chǔ)服務(wù),而業(yè)務(wù)團隊可以通過加密字符串直接連接,基礎(chǔ)架構(gòu)團隊負責(zé)背后的高可用、主從分片和容災(zāi)?;A(chǔ)架構(gòu)團隊提供的操作方法并不局限于使用Key-Value的get、set、delete等方法,而是提供了Redis幾乎所有的命令,包括inc、sadd等計數(shù)和集合操作。當(dāng)然,有了這些,對程序員的要求就更高了,在合適的場景下選擇合適的命令進行操作也不容易。
或許,使用R
redis某個主節(jié)點掛了后,會變?yōu)閺墓?jié)點么?
如果是搭車如果構(gòu)建了主從節(jié)點,那么如果主節(jié)點被掛起,從節(jié)點仍然可以使用,但是它不會成為從節(jié)點,除非它是redis集群。