1. 程式人生 > >redis學習(二)

redis學習(二)

jedis的簡單使用

前面介紹了操作redis的客戶端有redis自己提供的redis-cli,這是介面上的操作,如果是程式碼操作redis,使用的是jedis。

準備jar包(可以通過Maven下載得到):

redis提供的程式碼訪問的埠是6379

測試程式碼如下(其中的ip是redis安裝的遠端虛擬機器的ip):

jedis的連線池使用

操作資料庫最常見的存入型別就是存入String型別,如果想存入物件型別,可以傳入json格式的字串,然後拿出來的時候可以在轉為物件的型別。

也可以直接使用一個工具類:

也可以將配置放在一個redis.properties配置檔案中讀取:

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的事務:

測試,開啟一個客戶端,下面的是單獨的執行了幾條命令,現在我想把這幾個綁在一起:

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

事務還沒有進行提交的時候進行事務的回滾,這樣就不會提交: