基于SpringBoot集成測(cè)試遠(yuǎn)程連接Redis服務(wù)的教程詳解
前期準(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)*/@Testvoid 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)程連接,故做以下處理:@SpringBootTestclass JedisDemoApplicationTests { // 此處配置連接 Jedis jedis = new Jedis('192.168.137.132',6379); @Test void contextLoads() { } // 此處進(jìn)行單元測(cè)試}
Key鍵
測(cè)試用例:
@Testvoid KeyTest() { System.out.println(jedis.keys('*')); System.out.println(jedis.keys('*').getClass());}
測(cè)試結(jié)果:
[list01, customer, set01, username] class java.util.HashSetString字符串
測(cè)試用例:
@Testvoid 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 >>> 18List列表
測(cè)試用例:
@Testvoid 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è)試用例:
@Testvoid 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è)試用例:
@Testvoid 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 >>> 4class 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è)試用例:
@Testvoid 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)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 淺談SpringMVC jsp前臺(tái)獲取參數(shù)的方式 EL表達(dá)式2. 快速解決ajax返回值給外部函數(shù)的問題3. html清除浮動(dòng)的6種方法示例4. react axios 跨域訪問一個(gè)或多個(gè)域名問題5. asp知識(shí)整理筆記4(問答模式)6. ASP基礎(chǔ)知識(shí)Command對(duì)象講解7. JSP數(shù)據(jù)交互實(shí)現(xiàn)過程解析8. .NET6打包部署到Windows Service的全過程9. JavaScrip簡(jiǎn)單數(shù)據(jù)類型隱式轉(zhuǎn)換的實(shí)現(xiàn)10. 詳談ajax返回?cái)?shù)據(jù)成功 卻進(jìn)入error的方法
