環境配置
- 需要導入jedis.jar包
- 啓動redis服務。
- 代碼測試連接redis
JedisPool jPool = new JedisPool("localhost",6379)
Jedis jedis = jPool.getResource()
jedis.set("date", "2017-01-19")
jedis.set("work", "coding")
System.out.println(jedis.get("date"))
jPool.destroy()
key的使用
//當key存在時,才刪除。成功爲1,失敗爲0
jedis.set("age", "23")
long result = jedis.del("price")
long result2 = jedis.del("gggg")
System.out.println("=="+result+"=="+result2)
//判斷key是否存在
boolean flag = jedis.exists("price")
System.out.println("是否存在:"+flag)
//設置過期時間
//jedis.expire("name", 5)
//jedis.expireAt("age", 5)
//返回key值中存儲的類型
System.out.println("age值類型:"+jedis.type("age"))
System.out.println("name值類型:"+jedis.type("name"))
//修改key的名稱
System.out.println("修改爲:"+jedis.rename("addr", "address"))
//將key放到給定的db中。
// jedis.move(key, dbIndex)
//查找給定模式的key
System.out.println(jedis.keys("*"))
String的使用
//Jedis字符串的API
jedis.set("age", "24")
jedis.append("name", " hh")
System.out.println(jedis.getrange("address", 2, 4))
System.out.println(jedis.get("name"))
//當key不存在時,纔會設置值
jedis.setnx("age","hhhh")
jedis.setnx("from", "henan")
System.out.println(jedis.get("age"))
System.out.println(jedis.get("from"))
//key對應的value的字符長度
System.out.println("name的字符長度是:"+jedis.strlen("name"))
//設置多組key/value值
jedis.mset("value1","hhhh","value2","xxxx","value3","llll")
//獲取多組value值
List<String> strs = jedis.mget("value1","name","value2")
System.out.println(strs)
System.out.println("=============")
//給key值中存儲的數字+1
jedis.incr("age")
System.out.println("=="+jedis.get("age"))
//數字-1
jedis.decr("age")
//減去指定的值
jedis.decrBy("age", 4)
System.out.println("decrBy:"+jedis.get("age"))
jedis.set("price", "2.5")
jedis.incr("name")
System.out.println("=如果不是int類型就報錯="+jedis.get("name"))
List的使用
//將一個或多個值插入到列表頭部
// jedis.flushDB()
jedis.lpush("lkeys", "val1","val2","val1","val1","val2","val3","val4","val5")
//獲取list指定區域的值
System.out.println(jedis.lrange("lkeys", 0, 20))
//當key已經存在的時候,設置新值。
jedis.lset("lkeys", 1, "val000")
System.out.println(jedis.lrange("lkeys", 1, 4))
//獲取列表長度
System.out.println("獲取列表長度:"+jedis.llen("lkeys"))
//移除列表元素,刪除count個值爲value的數據。count=0,刪除所有值爲value的數據
System.out.println("移除列表元素:"+jedis.lrem("lkeys", 0, "val1"))
//對列表進行修剪
System.out.println("列表修剪結果:"+jedis.ltrim("lkeys", 0, 5))
//
Hash的使用
//Jedis的hashAPI
//hash特別適合用於存儲對象
jedis.hset("person", "name", "lzl")
jedis.hset("person", "age", "23")
jedis.hset("person", "address", "河南")
jedis.hset("person", "birthday", "1993-01-01")
jedis.hset("person", "price", "2.3")
//將多個field-value(域-值)設置到hash表中
Map<String,String> hash = new HashMap<>()
hash.put("name", "xxx")
hash.put("age", "33")
hash.put("address", "北京")
jedis.hmset("person2", hash)
//獲取key中所有的屬性
System.out.println("person對象對應的屬性有:"+jedis.hkeys("person"))
//獲取hash表中字段的數量
System.out.println("person對象的屬性個數:"+jedis.hlen("person"))
//獲取hash表中指定key的所有字段和值
System.out.println("person對象的屬性和值分別是:"+jedis.hgetAll("person"))
//給hash表中指定字段的整數值加上增量
System.out.println("整型加上增量的結果:"+jedis.hincrBy("person", "age", 5))
//獲取hash表中的所有值
System.out.println("hash表中的所有值:"+jedis.hvals("person2"))
Set的使用
jedis.flushDB()
//向集合添加一個多多個成員
jedis.sadd("skeys", "sval1","sval2","sval3","sval4","sval5")
jedis.sadd("skeys_l", "sval1","sval6","sval7","sval4","sval5")
//獲取集合總數
System.out.println("獲取集合的成員數:"+jedis.scard("skeys"))
//返回兩個或多個集合的差集
System.out.println("skeys與skeys_l集合的差集:"+jedis.sdiff("skeys","skeys_l"))
//返回集合差集並存儲在diff_keys中
jedis.sdiffstore("diff_keys", "skeys","skeys_l")
//返回給定集合的交集
System.out.println("兩個集合的交集:"+jedis.sinter("skeys","skeys_l"))
//判斷元素是否在集合中
System.out.println("是否在集合中:"+jedis.sismember("skeys", "val2"))
//將元素從A集合移動到B集合中
System.out.println("將元素從A集合移動到B集合中:"+jedis.smove("diff_keys", "skeys_l", "sval7"))
//返回給定集合的並集
System.out.println("集合的並集:"+jedis.sunionstore("deskeys", "skeys_l","skeys"))
SortSet的使用
Map<Double,String> membersMap = new HashMap<>()
membersMap.put(2D, "lzl")
membersMap.put(3D, "hhh")
membersMap.put(2D, "lzl")
membersMap.put(5D, "lzl")
membersMap.put(3D, "hhh-3")
membersMap.put(6D, "lzl-6")
//添加或更新有序集合,有序集合的值不可以重複,但是分數是可以重複的
jedis.zadd("zkeys", membersMap)
Map<Double,String> membersMap_1 = new HashMap<>()
membersMap_1.put(1D, "lzl")
membersMap_1.put(2D, "hhh")
membersMap_1.put(3D, "lzl")
membersMap_1.put(4D, "lzl")
membersMap_1.put(5D, "hhh-3")
membersMap_1.put(6D, "lzl-6")
//添加或更新有序集合,有序集合的值不可以重複,但是分數是可以重複的
jedis.zadd("zkeys_1", membersMap_1)
//獲取有序集合的成員數
System.out.println("有序集合的成員數:"+jedis.zcard("zkeys"))
//指定成員的分數增加一定的增量
System.out.println("指定成員的分數增加增量:"+jedis.zincrby("zkeys", 4, "lzl"))
//計算交集,並將結果存儲在有序集合中
System.out.println("計算交集,並將結果存儲在有序集合中:"+jedis.zinterstore("deskeys", "zkeys_1","zkeys"))
//計算有序集合指定區間的分數的成員數
System.out.println("指定區間的分數成員數量:"+jedis.zcount("zkeys", 0, 5))
//返回有序集合指定區間的成員
System.out.println("集合指定區間的成員:"+jedis.zrange("zkeys", 0, 6))
//返回有序集合指定值的score值
System.out.println("score值是:"+jedis.zrank("zkeys", "lzl"))
//移除有序集合中指定元素
System.out.println("移除元素:"+jedis.zrem("zkeys_1", "lzl"))
//返回有序集合指定成員的排名
System.out.println("有序集合排名:"+jedis.zrevrank("zkeys", "hhh"))
//集合中有序成員的分數值
System.out.println("有序集合的分數值:"+jedis.zscore("zkeys", "hhh-3"))
//計算集合並集,並存儲到新的key中
System.out.println("並集:"+jedis.zunionstore("unionKeys", "zkeys","zkeys_1"))
參考網址:http://www.runoob.com/redis/redis-hyperloglog.html