Jedis與Redis
通過Jedis操作Redis
是Redis官方推薦的
Jedis
, 使用ava操作
java連接配接開發工具
Redis中間件
建立項目
首先建立一個空項目:

建立一個Maven的Module項目:
一路
next
即可。
因為該項目的最先建立的是空項目,是以需要手動調節部配置設定置:
以下修改的都是JDK配置,按照自己電腦為準
- File----Project Structure—project
- File----Project Structure—modules
- File—Settings ,搜尋
Java Compiler
導入依賴
<!--導入jedis-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.2.0</version>
</dependency>
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
Redis-Dome編寫
1.連接配接Redis
先打開你電腦上的 redis-server
public class TestPing {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
System.out.println(jedis.ping());
}
}
2.常用API
所有的指令,就和在中使用Redis 沒有差別,以下對
Linux
、
String
進行舉例:
List
String 指令
Jedis jedis = new Jedis("127.0.0.1",6379);
System.out.println("String存入資料:"+jedis.set("k", "v"));
System.out.println("String擷取資料:"+jedis.get("k"));
System.out.println("String檢視該元素是否存在"+jedis.exists("k"));
System.out.println("String追加字元串:"+jedis.append("k","、hello"));
System.out.println("String擷取字元串長度:"+jedis.strlen("k"));
System.out.println("String設定過期時間:"+jedis.setex("k1",3,"test"));
// 睡眠3s,驗證k1是否過期
Thread.sleep(3000);
System.out.println("String檢視是否過期:"+jedis.ttl("k1"));
System.out.println("String不存在再設定:"+jedis.setnx("k2","v2"));
System.out.println("String同時設定多個值:"+jedis.mset("k3","v3","k4","v4"));
System.out.println("String同時擷取多個值:"+jedis.mget("k3","k4"));
List 指令
System.out.println("清除資料:"+jedis.flushDB());
System.out.println("List存入資料(頭插):"+jedis.lpush("list","one","two","three"));
System.out.println("List存入資料(尾插):"+jedis.rpush("list","right"));
System.out.println("List擷取範圍内的資料:"+jedis.lrange("list",1,2));
System.out.println("List通過下标獲得值:"+jedis.lindex("list",1));
System.out.println("List擷取清單長度:"+jedis.llen("list"));
System.out.println("List移除指定資料:"+jedis.lrem("list",1,"one"));
System.out.println("List替換指定位置的值:"+jedis.lset("list",0,"test"));
System.out.println("List插入具體值:"+jedis.linsert("list", ListPosition.BEFORE,"two","111111"));
System.out.println("List檢視全部的元素:"+jedis.lrange("list",0,-1));
System.out.println("List取出資料(從頭部):"+jedis.lpop("list"));
System.out.println("List取出資料(從尾部):"+jedis.rpop("list"));
3.Jedis了解事務
- 連接配接Redis
- 開啟事務
- 存入資料
- 運作
- 若正常,直接執行事務
- 若出異常,事務直接結束
- 最後關閉連接配接
public class AffairsTesi {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1", 6379);
jedis.flushDB();
JSONObject jsonObject = new JSONObject();
jsonObject.put("k", "v");
jsonObject.put("name", "zc");
//開啟事務
Transaction multi = jedis.multi();
String s = jsonObject.toJSONString();
try {
multi.set("user1", s);
multi.set("user2", s);
// int i = 1/0 ; // 加入該句,可以使之産生異常,自行測試
multi.exec(); // 沒出問題 ,執行事務
} catch (Exception e) {
multi.discard(); // 出異常,結束事務
e.printStackTrace();
} finally {
System.out.println(jedis.get("user1"));
System.out.println(jedis.get("user2"));
jedis.close(); // 最終關閉連接配接
}
}
}
正常結束
異常結束
個人部落格為:
MoYu’s HomePage