Redis學習筆記11、Jedis基礎編程的實踐案例

一、介紹

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();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章