在Java中以及Spring環(huán)境下操作Redis的過程
Java環(huán)境下:
1.創(chuàng)建maven 項(xiàng)目
2.導(dǎo)入依賴
<!-- redis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>4.3.2</version> </dependency>
此處使用的是Jedis(提供的api和redis命令高度一致)
3.配置端口轉(zhuǎn)發(fā)
防止Redis的端口被黑客攻擊 將云服務(wù)器的redis端口映射到本地主機(jī)中
在xshell中配置:

此時(shí), 訪問本地的 8888, 就相當(dāng)于訪問對(duì)應(yīng)服務(wù)器的 6379

此時(shí)連接成功
一.基本命令:
public static void test(Jedis jedis) {
System.out.println("set 和 get 使用");
//清空數(shù)據(jù)庫
jedis.flushAll();
jedis.set("key","k1");
jedis.set("key2","k2");
jedis.set("key3","k3");
String key = jedis.get("key");
String key2 = jedis.get("key2");
String key3 = jedis.get("key3");
System.out.println("key: " + key);
System.out.println("key2: " + key2);
System.out.println("key3: " + key3);
System.out.println("exists 和 del 使用");
boolean result = jedis.exists("key");
System.out.println("result:" + result);
result = jedis.exists("key1111");
System.out.println("result:" + result);
long del = jedis.del("key", "key2");
result = jedis.exists("key");
System.out.println("result:" + result);
System.out.println("keys 使用");
jedis.set("key","k1");
jedis.set("key2","k2");
Set<String> keys = jedis.keys("*");
System.out.println("keys: " + keys);
System.out.println("expire 和 ttl 使用");
jedis.set("key4","k4");
jedis.expire("key4",10);
//休眠5s
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
long ttl = jedis.ttl("key4");
System.out.println("ttl: " + ttl );
System.out.println("type 使用");
jedis.flushAll();
jedis.set("String", "1");
String type = jedis.type("String");
System.out.println("type: "+type);
jedis.lpush("list","111","222","333");
type = jedis.type("list");
System.out.println("type: "+type);
jedis.sadd("set","a","b","c");
type = jedis.type("set");
System.out.println("type: "+type);
jedis.zadd("zset",1.0,"zhangsan");
type = jedis.type("zset");
System.out.println("type: "+type);
jedis.hset("hash","f1 ","v1");
type = jedis.type("hash");
System.out.println("type: "+type);
}
String :
public static void test(Jedis jedis) {
//清空數(shù)據(jù)庫
jedis.flushAll();
System.out.println("mset 和 mget 使用");
jedis.mset("k1","111","k2","222","k3","333");
List<String> mget = jedis.mget("k1", "k2", "k3","k4");
System.out.println("mget: " +mget);
System.out.println("getrange 和 setrange 使用");
jedis.set("k4","abcdefgh");
String k4 = jedis.getrange("k4", 0, 4);
System.out.println("result: " +k4);
jedis.setrange("k4",0,"eeee");
System.out.println("k4: " +jedis.get("k4"));
System.out.println("append 使用");
jedis.append("k4","aaaaaa");
System.out.println("k4: " + jedis.get("k4"));
System.out.println("incr 和 decr 使用");
jedis.set("k5","111");
System.out.println( "k5: " + jedis.incr("k5"));
System.out.println( "k5: " + jedis.decr("k5"));
}

list使用:
public static void test(Jedis jedis) {
jedis.flushAll();
System.out.println("lpush 和 lrange 使用");
jedis.lpush("key","1","2","3","4","5");
System.out.println("key:" + jedis.lrange("key",0,-1));
System.out.println("rpuhs ,rpop, lpop 使用 ");
jedis.rpush("key2","1","2","3","4","5");
System.out.println("key2 :" + jedis.lrange("key2",0,-1));
System.out.println("lpop key2:" + jedis.lpop("key2"));
System.out.println("rpop key2:" + jedis.rpop("key2"));
System.out.println("llen 使用");
System.out.println("len key2: " + jedis.llen("key2"));
}
hash的使用:
private static void test(Jedis jedis) {
jedis.flushAll();
System.out.println("hset 和 hget 使用");
HashMap<String,String> hash = new HashMap<>();
hash.put("f2","v2");
hash.put("f3","v3");
hash.put("f4","v4");
jedis.hset("key",hash);
jedis.hset("key","f1","v1");
System.out.println("key f1: " +jedis.hget("key", "f1"));
System.out.println("key f5: " +jedis.hget("key", "f5"));
System.out.println("hexists 使用");
Boolean result = jedis.hexists("key","f1");
System.out.println("key f1 result: " + result);
result = jedis.hexists("key","f5");
System.out.println("key f5 result: " + result);
System.out.println("hkeys 和 hvals 使用");
Set<String> hkeys = jedis.hkeys("key");
System.out.println("hkeys: " + hkeys);
List<String> hvals = jedis.hvals("key");
System.out.println("hvals: " +hvals);
System.out.println("hdel 使用");
jedis.hdel("key","f1");
result = jedis.hexists("key","f1");
System.out.println("key f1 result: " + result);
System.out.println("hmset 和 hmget 使用");
List<String> hmget = jedis.hmget("key", "f1", "f2", "f3");
System.out.println("hmget key: " + hmget);
}
set的使用:
public static void test(Jedis jedis) {
jedis.flushAll();
System.out.println("sadd 和 smembers 使用");
jedis.sadd("key","a","b","c","d");
Set<String> smembers = jedis.smembers("key");
System.out.println("key: " +smembers);
System.out.println("sismember , scard , spop 使用");
boolean result = jedis.sismember("key", "a");
System.out.println("result: " + result);
long len = jedis.scard("key");
System.out.println("key len: " +len);
jedis.spop("key");
System.out.println("key len: " +jedis.scard("key"));
System.out.println("sinter 和 sinterstore");
jedis.sadd("key2","1","2","3","4","5");
jedis.sadd("key3","3","4","5","6","7");
System.out.println("[key2 key3]sinter: "+ jedis.sinter("key2","key3"));
long sinterstore = jedis.sinterstore("key4", "key2", "key3");
System.out.println("sinterstore: " + sinterstore);
System.out.println("key4: " + jedis.smembers("key4"));
}
zset的使用:
public static void test(Jedis jedis) {
jedis.flushAll();
System.out.println("zadd 和 zrange 使用");
jedis.zadd("key",10.0,"zhangsan");
Map<String ,Double> hash = new HashMap<>();
hash.put("lisi",20.0);
hash.put("wangwu",30.0);
jedis.zadd("key",hash);
List<String> members = jedis.zrange("key", 0, -1);
System.out.println("members: "+members);
List<Tuple> key = jedis.zrangeWithScores("key", 0, -1);
System.out.println("key: " + key);
System.out.println("zcard , zscore 使用");
long len = jedis.zcard("key");
System.out.println("len key: " +len);
Double score = jedis.zscore("key","zhangsan");
System.out.println("score: " + score);
System.out.println("zrem , zrank 使用");
Long zrank = jedis.zrank("key", "lisi");
System.out.println("lisi rank: " + zrank);
jedis.zrem("key","zhangsan");
System.out.println("lisi rank: " + jedis.zrank("key", "lisi"));
}

都是一些基本操作,跟在redis操作基本一致,
Spring環(huán)境:
創(chuàng)建項(xiàng)目時(shí)勾選即可


通過注入的方法拿到StringRedisTemplate操作Redis 相當(dāng)于剛才的Jedis

將操作Redis的方法分成幾個(gè)類別,好進(jìn)一步更好的組織


大體命令基本一致
到此這篇關(guān)于在Java中以及Spring環(huán)境下操作Redis的文章就介紹到這了,更多相關(guān)java中操作redis內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringCloud中的分布式鎖用法示例詳解(Java+Redis SETNX命令)
- SpringBoot+Redis隊(duì)列實(shí)現(xiàn)Java版秒殺的示例代碼
- SpringBoot整合Redis實(shí)現(xiàn)序列化存儲(chǔ)Java對(duì)象的操作方法
- Java與SpringBoot對(duì)redis的使用方式
- Java SpringBoot 集成 Redis詳解
- java、spring、springboot中整合Redis的詳細(xì)講解
- java Spring Boot 配置redis pom文件操作
- 詳解java之redis篇(spring-data-redis整合)
相關(guān)文章
mybatis 一對(duì)一、一對(duì)多和多對(duì)多查詢實(shí)例代碼
這篇文章主要介紹了mybatis 一對(duì)一、一對(duì)多和多對(duì)多查詢的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06
SpringBoot集成drools的實(shí)現(xiàn)示例
本文主要介紹了SpringBoot集成drools的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
Java比較器實(shí)現(xiàn)方法項(xiàng)目案例
這篇文章主要介紹了Java比較器實(shí)現(xiàn)方法,結(jié)合具體項(xiàng)目案例形式分析了Java比較器相關(guān)排序操作技巧,需要的朋友可以參考下2019-03-03
為什么wait和notify必須放在synchronized中使用
這篇文章主要介紹了為什么wait和notify必須放在synchronized中使用,文章圍繞主題的相關(guān)問題展開詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考以參考一下2022-05-05
java比較兩個(gè)list是否相同equals的代碼詳解
在本篇文章里小編給大家分享的是關(guān)于java比較兩個(gè)list是否相同equals的代碼詳解,有需要的朋友們可以參考學(xué)習(xí)下。2020-02-02
SpringBoot使用jasypt加解密密碼的實(shí)現(xiàn)方法(二)
這篇文章主要介紹了SpringBoot使用jasypt加解密密碼的實(shí)現(xiàn)方法(二),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10

