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