Jedis常用命令
操作各種數據類型的key的方法
public static void main(String[] args) {Jedis jds = new Jedis("192.168.2.244",6379);//==================操作的key的方法 ======================//刪除指定的jds.del("hash");//序列化key,并返回被序列化的值jds.dump("key");//判斷key是否存在jds.exists("key");//從當前庫中隨機返回一個keyjds.randomKey(); //返回key中存儲值 的數據類型jds.type("key");//返回符合正則的的所有keyjds.keys("*k*");//將key移到數據庫2中jds.move("key", 2);//更改key的名字。舊key不存在時報錯。當新key存在時,則將覆蓋舊值jds.rename("oldKey", "newkey");//僅當新key不存在時,才更改舊key名字jds.renamenx("oldKey", "newkey");//-------------------------設置過期-------------------------------- //給key設置過期時間,單位:秒jds.expire("key", 10);//給key設置過期時間,值是時間戳jds.expireAt("key", 1293840000);//移除key的過期時間,key將持久保存jds.persist("key");//返回key的過期時間jds.ttl("key"); }String
public static void main(String[] args) {Jedis jds = new Jedis("192.168.2.244",6379);//=========================String方法==============================//-----------------------賦值------------------------------ //指定key的值,如果key已經存在,則覆蓋舊值jds.set("key", "value");//給key賦值,當key存在時操作無效。避免了值的覆蓋jds.setnx("key", "value");//同時指定多個key-valuejds.mset("key5","value5","key6","6");//同時指定多個key-value,key已經存在的操作無效jds.msetnx("key6","value6","key7","7");//給key值設置過期時間(單位:秒),如果key存在,則新值會覆蓋舊值jds.setex("key", 5, "valuex");//用value值替換從指定字符的索引開始的子串jds.setrange("key", 1, "value");//-------------------------更改-------------------------------- //將key中存的數字值增1,如果key不存在,則key值會被初始化為0,然后再加1//如果值不是數字則返回一個錯誤jds.incr("key6");//將key中存的數字值增加指定值,如果key不存在,則key值會被初始化為0,然后再加10jds.incrBy("key6", 10);//將key中存的數字值增加指定的浮點型值,如果key不存在,則key值會被初始化為0,然后再加jds.incrByFloat("key6", 10.0);//將key中的值減1,如果key不存在,則先初始化為0再減1jds.decr("key6");//將key中的值減去指定值,如果key不存在,則先初始化為0再減jds.decrBy("key6", 8);//在key的值的末尾追加串,如果key不存,直接賦值為當前值jds.append("key", "appendValue");//-------------------------取值-------------------------------- //獲取key的值jds.get("key");//按字符的索引區間返回key的子串,包頭也包尾jds.getrange("key", 0, 1);//將key的值改變,并返回舊值,如果key不存在返回nulljds.getSet("key", "value1");//返回一個或多個key的值jds.mget("key","key1");//返回key的字符串的長度jds.strlen("key");}Hash
public static void main(String[] args) {Jedis jds = new Jedis("192.168.2.244",6379);//========================= Hash方法 ==============================//一個hash表可存儲40多億個鍵值對,即2的32次方減1個。//-------------------------賦值-------------------------------- // 1. hset:將名為hash的Hash表的鍵為key字段賦值為valuejds.hset("hash", "key", "value");// 2. hmset:將多個鍵值對存進hash表Map<String, String> map = new HashMap<String, String>();map.put("key1", "value1");map.put("key2", "value2");jds.hmset("hash", map);// 3. hsetnx:只有當hash表中不存在該字段時才賦值。若字段存在,則操作無效jds.hsetnx("hash", "key", "22");// 由于key已經存在,所以"22"這個值未生效jds.hsetnx("hash", "k", "22"); // 查看k的值為22//-------------------------查--------------------------------// 4. hget:獲取hash表中key鍵對應的值jds.hget("hash", "key");// 5. hgetAll:獲取hash表中所有鍵值對,結果是Map類型jds.hgetAll("hash");// 6. hmget:獲取hash表中指定鍵的值,結果是數組類型jds.hmget("hash", "key","key1");// 7. hkeys:獲取hash表中所有鍵,結果是數組類型jds.hkeys("hash");// 8. hvals:獲取hash表中所有值,結果是數組類型jds.hvals("hash");// 9.hexists:查看hash表中是否存在key鍵jds.hexists("hash", "key");// 10. hlen:獲取hash表中鍵的個數jds.hlen("hash");// 11. 迭代hash表中的鍵值對// jds.hscan("hash", "");//未測試//-------------------------改--------------------------------// 12. hincrBy:將hash表中指定鍵的整型值加3jds.hincrBy("hash", "k", 3);// 13. hincrByFloat:將hash表中指定鍵的浮點型值加3jds.hincrByFloat("hash", "k", 3);//-------------------------刪除--------------------------------// 14. hdel:刪除hash表中一個或多個鍵值對jds.hdel("hash", "key","key1"); }List
public static void main(String[] args) {Jedis jds = new Jedis("192.168.2.244",6379);//========================= List方法 ==============================//每張列表可存40多億個元素,即2的32次方減1個。//-------------------------賦值--------------------------------// 1. lpush:向名為list的List列表頭部添加一個或多個值jds.lpush("list", "value1","value2");// lpushx:將一個值插入到已存在的list列表頭部,如果不存在操作無效jds.lpushx("list", "value3");//注:只能一次插入一個// rpush:將一個或多個值插入列表尾部jds.rpush("list", "value100","value101");// rpushx:將一個值插入已存在列表尾部,若列表不存在操作無效jds.rpushx("list", "value102");//只能插入一個// lset:給指定索引賦值,若索引不存在報錯jds.lset("list", 0, "val");// linsert:在指定元素前面或后面插入元素jds.linsert("list", LIST_POSITION.BEFORE, "val", "value0");//在val元素前面插入//-------------------------刪除-------------------------------- //彈出列表第一個元素jds.lpop("list");//彈出列表最后一個元素jds.rpop("list");//彈出列表最后一個元素,并添加到另一個列表中jds.rpoplpush("list", "otherlist");// lrem:刪除表中count個與value相等的元素//count > 0 : 從表頭開始向表尾搜索,移除與 VALUE 相等的元素,數量為 COUNT 。//count < 0 : 從表尾開始向表頭搜索,移除與 VALUE 相等的元素,數量為 COUNT 的絕對值。//count = 0 : 移除表中所有與 VALUE 相等的值。jds.lrem("list", 2, "value"); // ltrim:只保留指定區間的元素jds.ltrim("list", 0, 5);// 5秒.......jds.blpop(5, "list");//-------------------------取值-------------------------------- // llen:獲取表的元素個數jds.llen("list");// lrange:獲取指定區間的元素jds.lrange("list", 0, jds.llen("list"));// lindex:通過索引獲取元素jds.lindex("list", 0); }Set
public static void main(String[] args) {Jedis jds = new Jedis("192.168.2.244",6379);//========================= Set方法 ============================== //-------------------------添加--------------------------------//sadd:向set集合添加一個或多個元素jds.sadd("set", "a","b");//-------------------------刪除-------------------------------- //隨機返回一個元素并刪除jds.spop("set");//刪除集合中一個或多個元素jds.srem("set", "a","b");//-------------------------更改--------------------------------//將一個元素從一個集合中移到另一個集合中jds.smove("srckey", "dstkey", "member");//返回多個集合的并集jds.sunion("set","set1");//將多個集合的并集保存到另一個集合中jds.sunionstore("dstkey", "set","set1");//-------------------------取值--------------------------------//scard:返回set集合的元素個數jds.scard("set");//返回前面集合與后面幾個集合的差集jds.sdiff("set","set2");//將幾個集合的差集保存在destSet集合中jds.sdiffstore("destSet", "set2","set");//返回幾個集合的交集jds.sinter("set","set2");//將幾個集合的交集保存在destSet集合中jds.sinterstore("destSet", "set","set2");//判斷a元素是否是set集合的成員jds.sismember("set", "a");//返回集合中的所有元素jds.smembers("set");//返回集合中一個或多個隨機數jds.srandmember("set");jds.srandmember("set", 2); }Sorted Set
public static void main(String[] args) {Jedis jds = new Jedis("192.168.2.244",6379); //========================= 有序集合(Sorted set) ==============================/*Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重復的成員。不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。有序集合的成員是唯一的,但分數(score)卻可以重復。集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是O(1)。 集合中最大的成員數為 232 - 1*///-------------------------賦值-------------------------------- // zadd:將一個或多個元素及其分數值添加到有序集合sortSet中// 如果value元素已經存在,則更新分數值,然后根據分數重新插入正確位置// 分數值可以是int和double型jds.zadd("sortSet", 5, "value");//-------------------------更改--------------------------------// 將value元素的分值加 2.0。如果值是負數,則為減;如果value元素不存在,則添加jds.zincrby("sortSet", 2, "value");//將一個或多個有序集合的交集存儲在“destkey”集合中jds.zinterstore("dstkey", "sortSet","sort");//-------------------------刪除--------------------------------//zrem:刪除一個或多個元素jds.zrem("sortSet", "value","c");//zremrangeByRank:刪除指定索引區間的元素(首尾均包含)jds.zremrangeByRank("sortSet", 0, 1);//zremrangeByScore:刪除指定分數之間的元素(首尾均包含)jds.zremrangeByScore("sortSet", 5, 10);//-------------------------取值-------------------------------- // zcard:獲取指定有序集合的全部成員數量jds.zcard("sortSet");// zcount:獲取指定分數區間的成員數量jds.zcount("sortSet", 0, 10);//zrank:返回指定元素的索引值jds.zrank("sortSet", "a");//zscore:返回指定元素的分數值jds.zscore("sortSet", "a");//zrevrange:返回指定區間的元素,它們通過 索引、分數從高到低排jds.zrevrange("sortSet", 0, 10);//zrevrangeByScore:返回指定分數區間的元素,它們通過分數從高到低排列jds.zrevrangeByScore("sortSet", 1, 7);//zrevrank:返回指定成員的排名,按分數值從大到小排的jds.zrevrank("sortSet", "value1");//zrange:返回指定索引區間的元素jds.zrange("sortSet", 0, 10);// 獲取全部分元素jds.zrange("sortSet", 0, -1);// zrangeByScore:返回指定分數值之間的元素// 具有相同分數值的元素按字典序排列jds.zrangeByScore("sortSet", 0, 20);//---------------------2.8.9版本后添加的常用方法,未測----------------------------- // zlexcount:獲取指定字典區間的元素個數// jds.zlexcount("sortSet", "[a", "[c");//zrangeByLex:獲得指定字典區間的元素//jds.zrangeByLex("sortSet", "[a", "[b");//zremrangeByLex:刪除指定字典區間的元素//jds.zremrangeByLex("sortSet", "(a", "[b");} 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: EHCache讲解
- 下一篇: 深究AngularJS——Angular