package redis.demo;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import redis.clients.jedis.Jedis;
public class Demo1 {
public static Jedis buildJedis() {
String host = "127.0.0.1";// ip
int port = 6379;// 默認端口
Jedis jedis = new Jedis(host, port);
jedis.auth("tiger");// 配置通行證密碼
return jedis;
}
public static void main(String[] args) throws InterruptedException {
boolean btemp = false;
long ltemp = 0L;
String value = null;
List<String> values = null;
Jedis jedis = buildJedis();
// 刪除測試值
jedis.select(0);
jedis.del("key3");
jedis.select(1);
jedis.del("key3");
jedis.select(0);
jedis.set("key", "cjw");// 創建key
value = jedis.get("key");// 獲取key
System.out.println("value: " + value);// value: cjw
jedis.del("key");// 刪除key
value = jedis.get("key");
System.out.println("value: " + value);// value: null
btemp = jedis.exists("key");
System.out.println("key是否存在: " + btemp);// key是否存在: false
jedis.set("key2", "我是key2的值");// 創建key
jedis.expire("key2", 2);// 設置key的生存時間,單位爲秒
value = jedis.get("key2");
System.out.println("value: " + value);// value: 我是key2的值
System.out.println("線程休眠中--------------");
Thread.sleep(2000);// 線程休眠2秒
value = jedis.get("key2");
System.out.println("value: " + value);// value: null
// jedis.expireAt(key, unixTime) //設置生存時間,參數爲時間戳這裏不演示
jedis.set("key3", "我是key3的值");// 創建key
// KEYS * 匹配數據庫中所有 key 。
// KEYS h?llo 匹配 hello , hallo 和 hxllo 等。
// KEYS h*llo 匹配 hllo 和 heeeeello 等。
// KEYS h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo 。
Set<String> keys = jedis.keys("*");// 獲取所有key,這裏不迭代演示
jedis.select(1);// jedis默認數據庫爲0,這裏選擇數據庫爲1
value = jedis.get("key3");
System.out.println("value: " + value);// value: null 原來在數據庫0的key3找不到
jedis.select(0);// 切換爲0數據庫
jedis.move("key3", 1);// 將當前數據庫的key3移動到數據庫1裏面
value = jedis.get("key3");
System.out.println("value: " + value);// value: null
jedis.select(1);// 切換到1數據庫
jedis.expire("key3", 2);
ltemp = jedis.ttl("key3");// 返回剩餘秒數
System.out.println("剩餘生存時間: " + ltemp);
ltemp = jedis.pttl("key3");// 返回剩餘生存毫秒數
System.out.println("剩餘生存時間: " + ltemp);
jedis.persist("key3");// 移除key3的生存時間,轉爲永久
System.out.println("線程休眠中--------------");
Thread.sleep(2000);
value = jedis.get("key3");
System.out.println("value: " + value);// value: 我是key3的值
jedis.rename("key3", "key4");// 重命名key
value = jedis.get("key4");
System.out.println("value: " + value);// value: 我是key3的值
jedis.renamenx("key4", "key3");// 當新key名沒有被使用才改名稱
value = jedis.type("key3");
System.out.println("key3的儲存類型: " + value);// key3的儲存類型: string
jedis.set("key4", "10");// 創建key
jedis.decr("key4");// 使key4的數值減1
value = jedis.get("key4");
System.out.println("value: " + value);// value: 9
jedis.decrBy("key4", 5);// 使key4減去指定數值
value = jedis.get("key4");
System.out.println("value: " + value);// value: 4
jedis.incr("key4");// 使key4的數值加1
jedis.incrBy("key4", 5);// 加上指定數值
value = jedis.get("key4");
System.out.println("value: " + value);// value: 10
List<String> keyList = jedis.mget("key3", "key4");// 查詢多個key
// hash表操作
Map<String, String> userMap = new HashMap<String, String>();
userMap.put("name", "小明");
userMap.put("age", "16");
jedis.hmset("key5", userMap);
values = jedis.hmget("key5", "name");
for (String str : values) {
System.out.println("遍歷key5的field的值: " + str);
// 遍歷key5的field的值: 小明
}
values = jedis.hmget("key5", "age");
for (String str : values) {
System.out.println("遍歷key5的field的值: " + str);
// 遍歷key5的field的值: 16
}
values = jedis.hvals("key5");// 返回key5的所有field的值
for (String str : values) {
System.out.println("遍歷key5的field的值: " + str);
// 遍歷key5的field的值: 16
// 遍歷key5的field的值: 小明
}
value = jedis.hget("key5", "name");// 獲取指定key指定域的值
System.out.println("value: " + value);// value: 小明
jedis.hset("key5", "name", "小勇");// 創建hash表的值
value = jedis.hget("key5", "name");// 獲取指定key指定域的值
System.out.println("value: " + value);// value: 小勇
// redis還有很多數據類型這裏就不一一嘗試了
}
}
// value: cjw
// value: null
// key是否存在: false
// value: 我是key2的值
// 線程休眠中--------------
// value: 我是key2的值
// value: null
// value: null
// 剩餘生存時間: 2
// 剩餘生存時間: 1999
// 線程休眠中--------------
// value: 我是key3的值
// value: 我是key3的值
// key3的儲存類型: string
// value: 9
// value: 4
// value: 10
// 遍歷key5的field的值: 小明
// 遍歷key5的field的值: 16
// 遍歷key5的field的值: 16
// 遍歷key5的field的值: 小明
// value: 小明
// value: 小勇
java通過jedis使用redis,以及部分api介紹
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.