<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Vert.x 操作Redis

          共 1747字,需瀏覽 4分鐘

           ·

          2021-04-09 06:33

          2dacd8404bcae65c34c7ab68db4dc7aa.webp

          哈嘍,大家好,歡迎閱讀閑話Java的Vert.x部分,本篇是閑話Vert.x的第五期,《Vert.x操作Redis》。本期由閑話哥帶您了解,如何通過Vert.x來連接Redis。

          后續(xù)所使用的代碼均開源在:https://github.com/happy-fly/wxcode


          Redis簡介

          Redis是一個高性能的存儲鍵值對的內(nèi)存服務(wù)器,我們在項目中經(jīng)常會用到Redis做一些熱點數(shù)據(jù)的緩存,實現(xiàn)分布式鎖或者做序列生成器等。

          Redis非常簡單,包括提供了簡單的API,封裝了簡單的網(wǎng)絡(luò)協(xié)議,提供了簡單的集群部署方案.....總之,Redis對開發(fā)者、運維人員、架構(gòu)師都非常友好,并且性能非常高,那么肯定是非常受到大眾的青睞了。

          Vert.x提供了對Redis的支持,像數(shù)據(jù)庫一樣,對于Redis的操作也是異步的,因此不能夠使用原來的Jedis那套API。Vert.x提供的異步的API和Jedis那套也是非常類似的,只是把同步響應(yīng)換成了異步的而已。下面我們就簡單的來看下如何使用Vert.x提供的API來操作Redis吧。


          Redis基本操作

          Redis有5種基本數(shù)據(jù)類型,分別是字符串、哈希、列表、集合和有序集合。這五種基本數(shù)據(jù)類型,基本上都對應(yīng)了存值操作、取值操作、刪除操作、列表操作,所以每個數(shù)據(jù)類型都有很多的API,我們這里不是對Redis進行講解,因此不再逐一列出,只挑一些基礎(chǔ)性的操作進行展示。

          同樣的,我們還是會先創(chuàng)建一個Verticle,在Verticle的start方法中來編寫示例代碼。在編碼之前,不要忘記先要引入redis的依賴包。

          <dependency>  <groupId>io.vertx</groupId>  <artifactId>vertx-redis-client</artifactId>  <version>4.0.0</version></dependency>

          主方法

          在Vert.x的世界里,所有的都是Verticle,所以我們這里還是定義了一個Vertcle,在start方法中實現(xiàn)如下代碼。

          這里必須要說明一下,Redis有三種部署模式,分別是單機模式,哨兵模式和集群模式。在早期的Vert.x版本中,僅支持單機模式,其他的模式需要自己寫代碼來進行適配。現(xiàn)在發(fā)布的穩(wěn)定版本,已經(jīng)對這三種模式都進行了適配,所以最開始開放的API和現(xiàn)在版本也有較大的改動。

          原來操作Redis就像數(shù)據(jù)庫一樣,創(chuàng)建RedisClient,通過RedisClient提供的方法對redis進行操作。

          新的版本,需要先來創(chuàng)建一個Redis接口,這個接口中只是抽象了Redis的網(wǎng)絡(luò)協(xié)議,提供了send方法。如果熟悉Redis網(wǎng)絡(luò)協(xié)議的朋友,可以直接用send方法來操作redis,但這樣并不優(yōu)雅。于是官方在Redis的上一層提供了RedisAPI,封裝了具體的操作。

          通過RedisOptions的setType方法,可以指定連接類型,是單機還是哨兵還是集群。Redis接口下分別對應(yīng)三個實現(xiàn)類。所以后續(xù)的操作對開發(fā)者來講都是沒有感知的。

          38404e7b6c2e3beca9db7917784c962d.webp

          set方法

          這個是對基礎(chǔ)數(shù)據(jù)類型字符串的操作,字符串提供讀和寫的方法,set就是把數(shù)據(jù)放到緩存中。當然還有setex,setnx等。這個方法非常簡單,這里就不再過多的解釋了。

          c9f9287bb0010d65c98c7d37fea2d84b.webp

          get方法

          這個方法也是非常簡單的,這里也就不在多說了。

          29fd61747635d641fa70680c9caccade.webp


          總結(jié)

          通過上面的操作,我們會發(fā)現(xiàn),Redis的操作還是很簡單的,只要你之前用過redis,轉(zhuǎn)到Vert.x這邊不會費太大勁。

          上面的案例中僅僅展示了單機模式下的操作,對于哨兵和集群模式,get和set方法依然是相同的,只是在RedisOptions配置中有所變化。比如集群模式下我們可以指定多個服務(wù)器的ConnectionString參數(shù)。

          Redis還提供發(fā)布-訂閱模式,在Vert.x中也提供了支持,詳細使用可以參考Vert.x的官方文檔(https://vertx.io/docs/vertx-redis-client/java/),因為都比較簡單,這里也就不在詳細介紹了。

          The End


          瀏覽 133
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青青青青青青久久久久久久 | AAA在线观看视频 | 亚洲视频网站在线 | 亚洲成人在线操 | 黄色成人网站在线免费观看视频 |