天天看點

Jedis與RedisJedis與Redis

Jedis與Redis

通過Jedis操作Redis

Jedis

是Redis官方推薦的

java連接配接開發工具

, 使用ava操作

Redis中間件

建立項目

首先建立一個空項目:

Jedis與RedisJedis與Redis

建立一個Maven的Module項目:

Jedis與RedisJedis與Redis

一路

next

即可。

因為該項目的最先建立的是空項目,是以需要手動調節部配置設定置:

以下修改的都是JDK配置,按照自己電腦為準

  1. File----Project Structure—project
Jedis與RedisJedis與Redis
  1. File----Project Structure—modules
Jedis與RedisJedis與Redis
  1. File—Settings ,搜尋

    Java Compiler

Jedis與RedisJedis與Redis

導入依賴

<!--導入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

Jedis與RedisJedis與Redis
public class TestPing {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("127.0.0.1",6379);
        System.out.println(jedis.ping());
    }
}
           
Jedis與RedisJedis與Redis

2.常用API

所有的指令,就和在

Linux

中使用Redis 沒有差別,以下對

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"));
           
Jedis與RedisJedis與Redis
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"));
           
Jedis與RedisJedis與Redis

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();      // 最終關閉連接配接
        }
    }
}
           
正常結束
Jedis與RedisJedis與Redis
異常結束
Jedis與RedisJedis與Redis

個人部落格為:

MoYu’s HomePage

繼續閱讀