redis學習(二)

jedis的簡單使用java

前面介紹了操做redis的客戶端有redis本身提供的redis-cli,這是界面上的操做,若是是代碼操做redis,使用的是jedis。redis

準備jar包(能夠經過Maven下載獲得):數據庫

redis提供的代碼訪問的端口是6379json

測試代碼以下(其中的ip是redis安裝的遠程虛擬機的ip):session

jedis的鏈接池使用工具

操做數據庫最多見的存入類型就是存入String類型,若是想存入對象類型,能夠傳入json格式的字符串,而後拿出來的時候能夠在轉爲對象的類型。測試

也能夠直接使用一個工具類:.net

也能夠將配置放在一個redis.properties配置文件中讀取:3d

redis的String/數值經常使用操做對象

redis存儲的字符串最長長度是512M。常見的操做:

(1)存儲

(2)取出

(3)刪除

(4)數值增減(注意操做的是數值類型的)

若是自增/自減一個原來就不存在的數據,他會默認的給你加/減進去,初始值爲0,加1後值爲1,減1後值爲-1:

(5)每次指定加幾或者減幾,相似於java的i += 2:

(6)串的拼接

redis的Hash類型的操做

(1)添加/獲取

(2)刪除:刪除一個field或者刪除一個key:

使用例子:

先從新設置值、增長、減小、判斷是否存在一個值(存在就是1,不存在就是0)、獲取某個key下的數據的數量、獲取全部的key或者全部的value:

redis數據類型list的操做

注意,這裏跟咱們學的java中的list不太同樣的是,這個list集合的底層是鏈表,因此不少的操做都是操做的頭尾:

左邊是left,右邊是right,加入的時候若是key不存在就會建立:

下面是一個具體的例子,注意left表示左邊,right表示右邊,最後一個獲得的順序,這個獲得的順序,是根據一個從左邊插進去,一個從右邊插進去,獲得的時候最好畫圖理解:

兩段彈出來,彈出來的過程當中也能夠進行數據是否有的查詢:

獲取長度:

擴展的加入指令,這個指令若是key不存在就不會添加進去:

刪除:

刪除指定個數的元素:

倒着刪除,而且指定刪除的個數:

替換:

在指定位置插入數據:

從一個集合的尾部彈出添加在另外一個集合的頭部(先再建立一個集合):

應用場景:

redis數據類型set的操做

set集合中不容許出現重複的元素。默認是無序的。

添加,查詢,刪除,判斷是否存在:

獲得差集:

交集:

並集:

擴展指令:

使用的例子:

redis數據類型sortedset的操做:

用戶登陸以後,session的存儲也可使用redis存儲。存儲的數據加上權重,根據權重進行排序。應用:好比遊戲中取前10名的排序排名,根據積分。

添加和查詢:

實現倒序反轉排列:

雖然上面實現了倒序排序,可是默認的是從小到大排序,因此刪除的時候是刪除的前面的三個:

。。。還有不少。

redis的移庫操做

默認存放的位置是0庫,如今進行移庫操做:

redis的訂閱和發佈:

訂閱就相似於訂閱了哪一個頻道訂閱的話通常是須要至少兩個鏈接的端的。注意前提是redis的客戶端是打開的狀態,打開兩個客戶端,一個做爲接收端,一個做爲發佈端。先開一個客戶端:

而後開一個發佈端:

最後能夠在接收端看到發佈端發佈的內容,這個相似於QQ羣信息的發佈:

redis的事務:

測試,打開一個客戶端,下面的是單獨的執行了幾條命令,如今我想把這幾個綁在一塊兒:

事務提交,多個命令放在一塊兒的時候,不會馬上的提交,而是會排隊,等事務進行提交的時候有異常的命令就不會執行,能正常執行的就執行,不會中斷:

事務尚未進行提交的時候進行事務的回滾,這樣就不會提交:

相關文章
相關標籤/搜索