遍歷讀取整個redis數據庫實例

從redis 2.8.0版本起提供了SCAN系統命令用於掃描redis全部鍵 html

Redis的SCAN操做因爲其總體的數據設計,沒法提供特別準的scan操做,僅僅是一個「can ‘ t guarantee , just do my best」的實現,優缺點以下: java

  • 優勢:
    • 提供鍵空間的遍歷操做,支持遊標,複雜度O(1), 總體遍歷一遍只須要O(N);
    • 提供結果模式匹配;
    • 支持一次返回的數據條數設置,但僅僅是個hints,有時候返回的會多;
    • 弱狀態,全部狀態只須要客戶端須要維護一個遊標;
  • 缺點:
    • 沒法提供完整的快照遍歷,也就是中間若是有數據修改,可能有些涉及改動的數據遍歷不到;
    • 每次返回的數據條數不必定,極度依賴內部實現;
    • 返回的數據可能有重複,應用層必須可以處理重入邏輯;

redis提供了靈活的數據查詢方式,最牛的就是key的搜索支持正則表達式。 正則表達式

jedis.keys(「*」);表示搜索全部key
jedis.keys(「abc*」)表示搜索開頭爲abc的key數據 redis

遍歷了key就能遍歷到value。 設計


java代碼 code

......

Set<String> s = jedis.keys("u_id_*");
Iterator<String> it = s.iterator();
while (it.hasNext()) {
	String key = it.next();
	String value = rd.jedis.get(key);
	System.out.println(key +"---"+ value);
}

......




參考: orm

http://redis.io/commands/scan htm

http://www.w2bc.com/Article/3159 get

http://chenzhenianqing.cn/articles/1090.html it

http://chenzhenianqing.cn/articles/1101.html

相關文章
相關標籤/搜索