欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于SpringBoot集成測(cè)試遠(yuǎn)程連接Redis服務(wù)的教程詳解

 更新時(shí)間:2020年03月23日 10:48:29   作者:kris  
這篇文章主要介紹了基于SpringBoot集成測(cè)試遠(yuǎn)程連接的Redis服務(wù)的相關(guān)知識(shí),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

前期準(zhǔn)備

Linux虛擬機(jī)或者租用的云服務(wù)器:sudo安裝redis,或者docker加載redis鏡像。后者需要使用docker啟用redis容器。

配置好redis.conf文件。注意:一定要注釋 # bind 127.0.0.1 其他詳細(xì)配置可參考我另一篇文章,不過能想到集成測(cè)試redis,配置文件應(yīng)該已經(jīng)配置好了。

/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT 開放6379端口

初始化SpringBoot項(xiàng)目使用Spring Initializr 初始化一個(gè)SpringBoot項(xiàng)目,可以勾選NoSQL下這兩項(xiàng),或者后面自行添加pom依賴。(當(dāng)然也可以初始化一個(gè)maven項(xiàng)目來測(cè)試)

添加jedis依賴

<!--導(dǎo)入jedis依賴-->
<dependency>
 <groupId>redis.clients</groupId>
 <artifactId>jedis</artifactId>
 <version>3.2.0</version>
</dependency>

編寫簡(jiǎn)易的單元測(cè)試程序

可使用ifconfig 或者 ip addr 查詢服務(wù)器的ip地址

/**
* host: 虛擬機(jī)或遠(yuǎn)程服務(wù)器的ip地址
* port: redis.conf中配置的服務(wù)端口號(hào)
*/
@Test
void TestPing() {
 Jedis jedis = new Jedis("192.168.137.132",6379);
 System.out.println("TestPing >>>>>>>>>>>>> "+jedis.ping());
}

測(cè)試結(jié)果:

測(cè)試五大基本數(shù)據(jù)類型

測(cè)試過程中,有些數(shù)據(jù)防止重復(fù)插入,部分測(cè)試用例使用了del命令。

  • 五大基本數(shù)據(jù)類型:字符串,列表,哈希,集合,有序集合
  • 每次單元測(cè)試都需進(jìn)行遠(yuǎn)程連接,故做以下處理:
@SpringBootTest
class JedisDemoApplicationTests {
 
 // 此處配置連接
 Jedis jedis = new Jedis("192.168.137.132",6379);

 @Test
 void contextLoads() {
 }
 
 // 此處進(jìn)行單元測(cè)試
}

Key鍵

測(cè)試用例:

@Test
void KeyTest() {
 System.out.println(jedis.keys("*"));
 System.out.println(jedis.keys("*").getClass());
}

測(cè)試結(jié)果:

  •  [list01, customer, set01, username]
  • class java.util.HashSet

String字符串

測(cè)試用例:

@Test
void StringTest() {
 System.out.println("測(cè)試set >>> "+jedis.set("name", "kris"));
 System.out.println("測(cè)試get >>> "+jedis.get("name"));
 System.out.println(jedis.get("name").getClass());

 System.out.println("\n測(cè)試append >>> "+jedis.append("name", " ^v^"));
 System.out.println("測(cè)試strlen >>> "+jedis.strlen("name"));
 System.out.println("測(cè)試get >>> "+jedis.get("name"));

 System.out.println("\n測(cè)試mset >>> "+jedis.mset(
  "username", "kris",
  "age", "18",
  "sex","男"));
 System.out.println("測(cè)試mget >>> "+jedis.mget("username", "age", "sex"));

 System.out.println("\n測(cè)試incr >>> "+jedis.incr("age"));
 System.out.println("測(cè)試incrBy >>> "+jedis.incrBy("age",3));
 System.out.println("測(cè)試decr >>> "+jedis.decr("age"));
 System.out.println("測(cè)試decrBy >>> "+jedis.decrBy("age", 3));
}

測(cè)試結(jié)果:

  • 測(cè)試set >>> OK
  • 測(cè)試get >>> kris
  • class java.lang.String
  • 測(cè)試append >>> 8
  • 測(cè)試strlen >>> 8
  • 測(cè)試get >>> kris ^v^
  • 測(cè)試mset >>> OK
  • 測(cè)試mget >>> [kris, 18, 男]
  • 測(cè)試incr >>> 19
  • 測(cè)試incrBy >>> 22
  • 測(cè)試decr >>> 21
  • 測(cè)試decrBy >>> 18

List列表

測(cè)試用例:

@Test
void ListTest() {
 System.out.println("測(cè)試rpush >>> "+jedis.rpush("list01", "I", "love", "redis", "!"));
 System.out.println("測(cè)試lpush >>> "+jedis.lpush("list01", "hello"));
 System.out.println("測(cè)試lrange >>> "+jedis.lrange("list01", 0, -1));
 System.out.println(jedis.lrange("list01", 0, -1).getClass());

 System.out.println("\n測(cè)試lpop >>> "+jedis.lpop("list01"));
 System.out.println("測(cè)試rpop >>> "+jedis.rpop("list01"));
 System.out.println("測(cè)試lrange >>> "+jedis.lrange("list01", 0, -1));

 System.out.println("\n測(cè)試lset >>> "+jedis.lset("list01", 0, "We"));
 System.out.println("測(cè)試lrange >>> "+jedis.lrange("list01", 0, -1));

 System.out.println("\n測(cè)試 linsert >>> "+jedis.linsert("list01", ListPosition.AFTER,
               "redis", "!"));
 System.out.println("測(cè)試lrange >>> "+jedis.lrange("list01", 0, -1));

 jedis.del("list01");
}

測(cè)試結(jié)果:

  • 測(cè)試rpush >>> 4
  • 測(cè)試lpush >>> 5
  • 測(cè)試lrange >>> [hello, I, love, redis, !]
  • class java.util.ArrayList
  • 測(cè)試lpop >>> hello
  • 測(cè)試rpop >>> !
  • 測(cè)試lrange >>> [I, love, redis]
  • 測(cè)試lset >>> OK
  • 測(cè)試lrange >>> [We, love, redis]
  • 測(cè)試 linsert >>> 4
  • 測(cè)試lrange >>> [We, love, redis, !]
  • Hash哈希

測(cè)試用例:

@Test
void HashTest() {
 Map<String, String> customer = new HashMap<>();
 customer.put("username", "kris");
 customer.put("password", "123456");
 customer.put("email", "kris@163.com");

 System.out.println("測(cè)試hset >>> "+jedis.hset("customer", customer));
 System.out.println("測(cè)試hget >>> "+jedis.hget("customer", "email"));
 System.out.println("測(cè)試getAll >>> "+jedis.hgetAll("customer"));
 System.out.println(jedis.hgetAll("customer").getClass());
}

測(cè)試結(jié)果:

測(cè)試hset >>> 0
測(cè)試hget >>> kris@163.com
測(cè)試getAll >>> {name=kris, email=kris@163.com, password=123456, username=kris}
class java.util.HashMap

Set集合

測(cè)試用例:

@Test
void SetTest() {
 System.out.println("測(cè)試sadd >>> "+jedis.sadd("names", "louis", "kris", "Jerry", "Jackson"));
 System.out.println("測(cè)試smembers >>> "+jedis.smembers("names"));
 System.out.println("測(cè)試scard >>> "+jedis.scard("names"));
 System.out.println(jedis.smembers("names").getClass());

 System.out.println("\n測(cè)試srandmember >>> "+jedis.srandmember("names", 3));
 System.out.println("測(cè)試srandmember >>> "+jedis.srandmember("names", 3));

 System.out.println("\n測(cè)試spop >>> "+jedis.spop("names", 2));
 System.out.println("測(cè)試smembers >>> "+jedis.smembers("names"));

 System.out.println("\n測(cè)試sadd >>> "+jedis.sadd("names0", "Jack", "louis", "kris"));
 System.out.println("測(cè)試sunion >>> "+jedis.sunion("names", "names0"));
 System.out.println("測(cè)試sdiff >>> "+jedis.sdiff("names", "names0"));
 System.out.println("測(cè)試sinter >>> "+jedis.sinter("names", "names0"));
 System.out.println("測(cè)試smembers >>> "+jedis.smembers("names"));
 System.out.println("測(cè)試smembers >>> "+jedis.smembers("names0"));

 jedis.del("names", "names0");
}

測(cè)試結(jié)果:

測(cè)試sadd >>> 4
測(cè)試smembers >>> [kris, Jerry, Jackson, louis]
測(cè)試scard >>> 4
class redis.clients.jedis.BinaryJedis$SetFromList

測(cè)試srandmember >>> [kris, Jerry, Jackson]
測(cè)試srandmember >>> [Jerry, louis, Jackson]

測(cè)試spop >>> [Jerry, kris]
測(cè)試smembers >>> [Jackson, louis]

測(cè)試sadd >>> 3
測(cè)試sunion >>> [Jack, kris, louis, Jackson]
測(cè)試sdiff >>> [Jackson]
測(cè)試sinter >>> [louis]
測(cè)試smembers >>> [Jackson, louis]
測(cè)試smembers >>> [kris, Jack, louis]

ZSet有序集合

測(cè)試用例:

@Test
void SortSetTest() {
 Map<String, Double> score = new HashMap<>();
 score.put("鉆石", 1000.0);
 score.put("王者", 2000.0); // 無序
 score.put("星耀", 1500.0);
 score.put("榮耀", 2500.0);

 System.out.println("測(cè)試zadd >>> "+jedis.zadd("score", score));
 System.out.println("測(cè)試zrangeByScore >>> "+jedis.zrangeByScore("score", 1500,2500));
 System.out.println("測(cè)試zrange >>> "+jedis.zrange("score", 0,-1));
 System.out.println("測(cè)試zrevrange >>> "+jedis.zrevrange("score", 0,-1));
 System.out.println(jedis.smembers("names").getClass());
 
 jedis.del("score");
}

測(cè)試結(jié)果:

測(cè)試zadd >>> 4
測(cè)試zrangeByScore >>> [星耀, 王者, 榮耀]
測(cè)試zrange >>> [鉆石, 星耀, 王者, 榮耀]
測(cè)試zrevrange >>> [榮耀, 王者, 星耀, 鉆石]
class redis.clients.jedis.BinaryJedis$SetFromList

總結(jié)

到此這篇關(guān)于基于SpringBoot集成測(cè)試遠(yuǎn)程連接的Redis服務(wù)的文章就介紹到這了,更多相關(guān)spring boot遠(yuǎn)程連接redis服務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Java8的groupBy實(shí)現(xiàn)集合的分組

    詳解Java8的groupBy實(shí)現(xiàn)集合的分組

    這篇文章主要介紹了詳解Java8的groupBy實(shí)現(xiàn)集合的分組,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Java工具類之@RequestMapping注解

    Java工具類之@RequestMapping注解

    今天帶大家來學(xué)習(xí)Java工具類,文中對(duì)注解@RequestMapping作了非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • Java多線程之間日志traceId傳遞方式

    Java多線程之間日志traceId傳遞方式

    這篇文章主要介紹了Java多線程之間日志traceId傳遞方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • springboot如何獲取接口下所有實(shí)現(xiàn)類

    springboot如何獲取接口下所有實(shí)現(xiàn)類

    這篇文章主要介紹了springboot如何獲取接口下所有實(shí)現(xiàn)類問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Java8流式API將實(shí)體類列表轉(zhuǎn)換為視圖對(duì)象列表的示例

    Java8流式API將實(shí)體類列表轉(zhuǎn)換為視圖對(duì)象列表的示例

    這篇文章主要介紹了Java8流式API將實(shí)體類列表轉(zhuǎn)換為視圖對(duì)象列表的示例,文中有相關(guān)的代碼示例供大家參考,對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-11-11
  • MyBatis-Plus?實(shí)體類注解的實(shí)現(xiàn)示例

    MyBatis-Plus?實(shí)體類注解的實(shí)現(xiàn)示例

    MyBatis-Plus作為MyBatis的增強(qiáng)版,提供了一系列實(shí)用的注解,如@TableName、@TableId、@TableField等,旨在簡(jiǎn)化數(shù)據(jù)庫(kù)和Java實(shí)體類之間的映射及CRUD操作,通過這些注解,開發(fā)者可以輕松實(shí)現(xiàn)表映射、字段映射、邏輯刪除、自動(dòng)填充和樂觀鎖等功能
    2024-09-09
  • Java 實(shí)戰(zhàn)項(xiàng)目錘煉之IT設(shè)備固定資產(chǎn)管理系統(tǒng)的實(shí)現(xiàn)流程

    Java 實(shí)戰(zhàn)項(xiàng)目錘煉之IT設(shè)備固定資產(chǎn)管理系統(tǒng)的實(shí)現(xiàn)流程

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java+SSM+jsp+mysql+maven實(shí)現(xiàn)一個(gè)IT設(shè)備固定資產(chǎn)管理系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平
    2021-11-11
  • Java getParameter()獲取數(shù)據(jù)為空的問題

    Java getParameter()獲取數(shù)據(jù)為空的問題

    這篇文章主要介紹了Java getParameter()獲取數(shù)據(jù)為空的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Kotlin教程之基本數(shù)據(jù)類型

    Kotlin教程之基本數(shù)據(jù)類型

    這篇文章主要介紹了Kotlin教程之基本數(shù)據(jù)類型的學(xué)習(xí)的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Java獲取當(dāng)前時(shí)間戳案例詳解

    Java獲取當(dāng)前時(shí)間戳案例詳解

    這篇文章主要介紹了Java獲取當(dāng)前時(shí)間戳案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評(píng)論