一、介紹
1、Jedis是一個高性能的Java客戶端,是Redis官方推薦的Java開發工具。
2、要在Java開發中訪問Redis緩存服務器Jedis的項目地址
二、使用
1、Maven的pom文件中增加依賴 ${redis.version} = 2.9.0
<dependency>
<groupId>redis.clents</groupId>
<artifactId>jedis<artifactId>
<version>${redis.version}</version>
</dependency>
2、使用時,構建Jedis對象即可。一個Jedis對象代表一條和Redis服務進行連接的Socket通道。使用完Jedis對象之後,調用Jedis.close()方法把連接關閉,否則會佔用系統資源。
// 指定地址 、端口
Jedis jedis = new Jedis("localhost",6379);
// 連接密碼
jedis.auth("xxx");
// 關閉連接
jedis.close();
3、Jedis操作String字符串
Jedis的String字符串操作函數和Redis客戶端操作String字符串的命令,基本上可以一比一的相互對應。
@Slf4j
public class StringDemo {
// 字符串數據類型相關命令
@Test
public void operateString() {
Jedis jedis = new Jedis("localhost",6379);
// 判斷連接 => pong
log.info("===>jedis.ping()=>{}",jedis.ping());
// 設置key0的值 123
jedis.set("key0","123");
// 獲取類型
log.info("jedis.type(key0)=>{}",jedis.type("key0"));
// 獲取值
log.info("jedis.get(key0)=>{}",jedis.get("key0"));
// 判斷key 是否存在
log.info("jedis.exists(key0)=>{}",jedis.exists("key0"));
// 返回長度
log.info("jedis.strlen(key0)=>{}",jedis.strlen("key0"));
// 返回截取字符串 0:範圍, -1 表示全部
log.info("jedis.getrange(key0)=>{}",jedis.getrange("key0", 0, -1));
// 返回區間[1,4]
log.info("jedis.getrange(key0)=>{}",jedis.getrange("key0", 1, 4));
// 追加字符串
log.info("jedis.append(key0)=>{}",jedis.append("key0", "appendStr"));
log.info("jedis.get(key0)=>{}",jedis.get("key0"));
// 重命名
jedis.reneame("key0","key0_new")
// 判斷key 是否存在
log.info("jedis.exists(key0)=>{}",jedis.exists("key0"));
// 批量插入
jedis.mset("k1","v1","k2","v2","k3","10")
// 批量取出
log.info("jedis.mget(k1,k2,k3)=>{}", jedis.mget("k1","k2","k3"));
// 刪除
log.info("jedis.del(k1)=>{}", jedis.del("k1"));
// 判斷key 是否存在
log.info("jedis.exists(k1)=>{}",jedis.exists("k1"));
// 取出舊值並設置新值
log.info("jedis.getSet(k2)=>{}",jedis.getSet("k2","454"));
// 自增1
log.info("jedis.incr(k3)=>{}",jedis.incr("k3"));
// 自增10
log.info("jedis.incrBy(k3)=>{}",jedis.incr("k3",15));
// 自減1
log.info("jedis.decr(k3)=>{}",jedis.incr("k3"));
// 自減10
log.info("jedis.decrBy(k3)=>{}",jedis.incr("k3",15));
// 浮點數加
log.info("jedis.incrByFloat(k3)=>{}",jedis.incrByFloat("k3",1.0));
// 在key 不存在的時候設置
log.info("jedis.setnx(k3)=>{}",jedis.setnx("k3","v3"));
log.info("jedis.get(k3)=>{}",jedis.get("k3"));
// 只有key 都不存在的時候才設置
log.info("jedis.msetnx(k1,k2)=>{}",jedis.msetnx("k1","v1","k2","v2"));
log.info("jedis.mget("k1","k2"));
// 設置key 2 秒後失效
jedis.setex("k4",2"2 second is no val");
try {
Thread.sleep(3000);
} catch(Exception e) {
log.error("e=>{}", e.getMessage());
}
// 2 s
log.info("jedis.get(k4)=>{}",jedis.get("k4"));
// 下標從0 開始 第三位 開始用新值覆蓋舊值
jedis.setrange("k6",3,"v6");
// 返回
log.info("jedis.get(v6)=>{}",jedis.get("v6"));
// 返回匹配所有的key
log.info("jedis.get(k*)=>{}", jedis.get("k*""));
jedis.close();
}
}