基于SpringBoot集成測試遠(yuǎn)程連接Redis服務(wù)的教程詳解
前期準(zhǔn)備
Linux虛擬機(jī)或者租用的云服務(wù)器:sudo安裝redis,或者docker加載redis鏡像。后者需要使用docker啟用redis容器。
配置好redis.conf文件。注意:一定要注釋 # bind 127.0.0.1 其他詳細(xì)配置可參考我另一篇文章,不過能想到集成測試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)目來測試)

添加jedis依賴
<!--導(dǎo)入jedis依賴--> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.2.0</version> </dependency>
編寫簡易的單元測試程序
可使用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());
}
測試結(jié)果:

測試五大基本數(shù)據(jù)類型
測試過程中,有些數(shù)據(jù)防止重復(fù)插入,部分測試用例使用了del命令。
- 五大基本數(shù)據(jù)類型:字符串,列表,哈希,集合,有序集合
- 每次單元測試都需進(jìn)行遠(yuǎn)程連接,故做以下處理:
@SpringBootTest
class JedisDemoApplicationTests {
// 此處配置連接
Jedis jedis = new Jedis("192.168.137.132",6379);
@Test
void contextLoads() {
}
// 此處進(jìn)行單元測試
}
Key鍵
測試用例:
@Test
void KeyTest() {
System.out.println(jedis.keys("*"));
System.out.println(jedis.keys("*").getClass());
}
測試結(jié)果:
- [list01, customer, set01, username]
- class java.util.HashSet
String字符串
測試用例:
@Test
void StringTest() {
System.out.println("測試set >>> "+jedis.set("name", "kris"));
System.out.println("測試get >>> "+jedis.get("name"));
System.out.println(jedis.get("name").getClass());
System.out.println("\n測試append >>> "+jedis.append("name", " ^v^"));
System.out.println("測試strlen >>> "+jedis.strlen("name"));
System.out.println("測試get >>> "+jedis.get("name"));
System.out.println("\n測試mset >>> "+jedis.mset(
"username", "kris",
"age", "18",
"sex","男"));
System.out.println("測試mget >>> "+jedis.mget("username", "age", "sex"));
System.out.println("\n測試incr >>> "+jedis.incr("age"));
System.out.println("測試incrBy >>> "+jedis.incrBy("age",3));
System.out.println("測試decr >>> "+jedis.decr("age"));
System.out.println("測試decrBy >>> "+jedis.decrBy("age", 3));
}
測試結(jié)果:
- 測試set >>> OK
- 測試get >>> kris
- class java.lang.String
- 測試append >>> 8
- 測試strlen >>> 8
- 測試get >>> kris ^v^
- 測試mset >>> OK
- 測試mget >>> [kris, 18, 男]
- 測試incr >>> 19
- 測試incrBy >>> 22
- 測試decr >>> 21
- 測試decrBy >>> 18
List列表
測試用例:
@Test
void ListTest() {
System.out.println("測試rpush >>> "+jedis.rpush("list01", "I", "love", "redis", "!"));
System.out.println("測試lpush >>> "+jedis.lpush("list01", "hello"));
System.out.println("測試lrange >>> "+jedis.lrange("list01", 0, -1));
System.out.println(jedis.lrange("list01", 0, -1).getClass());
System.out.println("\n測試lpop >>> "+jedis.lpop("list01"));
System.out.println("測試rpop >>> "+jedis.rpop("list01"));
System.out.println("測試lrange >>> "+jedis.lrange("list01", 0, -1));
System.out.println("\n測試lset >>> "+jedis.lset("list01", 0, "We"));
System.out.println("測試lrange >>> "+jedis.lrange("list01", 0, -1));
System.out.println("\n測試 linsert >>> "+jedis.linsert("list01", ListPosition.AFTER,
"redis", "!"));
System.out.println("測試lrange >>> "+jedis.lrange("list01", 0, -1));
jedis.del("list01");
}
測試結(jié)果:
- 測試rpush >>> 4
- 測試lpush >>> 5
- 測試lrange >>> [hello, I, love, redis, !]
- class java.util.ArrayList
- 測試lpop >>> hello
- 測試rpop >>> !
- 測試lrange >>> [I, love, redis]
- 測試lset >>> OK
- 測試lrange >>> [We, love, redis]
- 測試 linsert >>> 4
- 測試lrange >>> [We, love, redis, !]
- Hash哈希
測試用例:
@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("測試hset >>> "+jedis.hset("customer", customer));
System.out.println("測試hget >>> "+jedis.hget("customer", "email"));
System.out.println("測試getAll >>> "+jedis.hgetAll("customer"));
System.out.println(jedis.hgetAll("customer").getClass());
}
測試結(jié)果:
測試hset >>> 0
測試hget >>> kris@163.com
測試getAll >>> {name=kris, email=kris@163.com, password=123456, username=kris}
class java.util.HashMapSet集合
測試用例:
@Test
void SetTest() {
System.out.println("測試sadd >>> "+jedis.sadd("names", "louis", "kris", "Jerry", "Jackson"));
System.out.println("測試smembers >>> "+jedis.smembers("names"));
System.out.println("測試scard >>> "+jedis.scard("names"));
System.out.println(jedis.smembers("names").getClass());
System.out.println("\n測試srandmember >>> "+jedis.srandmember("names", 3));
System.out.println("測試srandmember >>> "+jedis.srandmember("names", 3));
System.out.println("\n測試spop >>> "+jedis.spop("names", 2));
System.out.println("測試smembers >>> "+jedis.smembers("names"));
System.out.println("\n測試sadd >>> "+jedis.sadd("names0", "Jack", "louis", "kris"));
System.out.println("測試sunion >>> "+jedis.sunion("names", "names0"));
System.out.println("測試sdiff >>> "+jedis.sdiff("names", "names0"));
System.out.println("測試sinter >>> "+jedis.sinter("names", "names0"));
System.out.println("測試smembers >>> "+jedis.smembers("names"));
System.out.println("測試smembers >>> "+jedis.smembers("names0"));
jedis.del("names", "names0");
}
測試結(jié)果:
測試sadd >>> 4
測試smembers >>> [kris, Jerry, Jackson, louis]
測試scard >>> 4
class redis.clients.jedis.BinaryJedis$SetFromList測試srandmember >>> [kris, Jerry, Jackson]
測試srandmember >>> [Jerry, louis, Jackson]測試spop >>> [Jerry, kris]
測試smembers >>> [Jackson, louis]測試sadd >>> 3
測試sunion >>> [Jack, kris, louis, Jackson]
測試sdiff >>> [Jackson]
測試sinter >>> [louis]
測試smembers >>> [Jackson, louis]
測試smembers >>> [kris, Jack, louis]ZSet有序集合
測試用例:
@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("測試zadd >>> "+jedis.zadd("score", score));
System.out.println("測試zrangeByScore >>> "+jedis.zrangeByScore("score", 1500,2500));
System.out.println("測試zrange >>> "+jedis.zrange("score", 0,-1));
System.out.println("測試zrevrange >>> "+jedis.zrevrange("score", 0,-1));
System.out.println(jedis.smembers("names").getClass());
jedis.del("score");
}
測試結(jié)果:
測試zadd >>> 4
測試zrangeByScore >>> [星耀, 王者, 榮耀]
測試zrange >>> [鉆石, 星耀, 王者, 榮耀]
測試zrevrange >>> [榮耀, 王者, 星耀, 鉆石]
class redis.clients.jedis.BinaryJedis$SetFromList
總結(jié)
到此這篇關(guān)于基于SpringBoot集成測試遠(yuǎn)程連接的Redis服務(wù)的文章就介紹到這了,更多相關(guān)spring boot遠(yuǎn)程連接redis服務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Security OAuth2實(shí)現(xiàn)使用JWT的示例代碼
這篇文章主要介紹了Spring Security OAuth2實(shí)現(xiàn)使用JWT的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09
Java實(shí)現(xiàn)EasyCaptcha圖形驗(yàn)證碼的具體使用
Java圖形驗(yàn)證碼,支持gif、中文、算術(shù)等類型,可用于Java Web、JavaSE等項(xiàng)目,下面就跟隨小編一起來了解一下2021-08-08
java mybatis框架實(shí)現(xiàn)多表關(guān)系查詢功能
這篇文章主要介紹了java mybatis框架實(shí)現(xiàn)多表關(guān)系查詢,基于Maven框架的整體設(shè)計(jì) —— 一多一的關(guān)系,文中通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10
Java詳細(xì)講解Math和Random類中有哪些常用方法
Math類位于java.lang包中,包含很多用于科學(xué)計(jì)算的類方法,這些方法可以直接通過類名調(diào)用。Random類獲取隨機(jī)數(shù),位于java.util包中,本篇帶你了解它們的常用方法2022-05-05
java計(jì)算代碼段執(zhí)行時(shí)間的詳細(xì)代碼

