redisデータベース全体のインスタンスを巡回して読み込む
1239 ワード
redis 2.8.0のバージョンから、redisのすべてのキーをスキャンするためのSCANシステムコマンドが提供されています.
RedisのSCAN操作はその全体のデータ設計のため、特別な正確なscan操作を提供することができなくて、ただ1つの“can‘t guarantee,just domy best”の実現で、優劣は以下の通りです:の利点: はキー空間の遍歴操作を提供し、カーソル、複雑度O(1)をサポートし、全体的に遍歴するにはO(N)しか必要ない. は、結果パターンマッチングを提供する. は、一度に返されるデータバー数の設定をサポートしていますが、hintsだけで、返されることが多い場合があります. 弱い状態で、すべての状態はクライアントがカーソルを維持する必要があるだけです.
欠点: は完全なスナップショット遍歴を提供できません.つまり、データの変更があれば、変更に関連するデータ遍歴ができない場合があります. が返すたびに返されるデータの数は一定ではなく、内部に極度に依存して実現される. が返すデータは重複する可能性があり、アプリケーション層は再入力ロジックを処理することができる必要がある.
redisは柔軟なデータクエリー方式を提供し、最も牛のはkeyの検索が正規表現をサポートすることである.
jedis.keys(“*”);すべてのkey jedisを検索します.keys(「abc*」)は、abcの先頭にあるkeyデータの検索を表す
keyを遍歴するとvalueまで遍歴できます.
JAvaコード
参照先:
http://redis.io/commands/scan
http://www.w2bc.com/Article/3159
http://chenzhenianqing.cn/articles/1090.html
http://chenzhenianqing.cn/articles/1101.html
RedisのSCAN操作はその全体のデータ設計のため、特別な正確なscan操作を提供することができなくて、ただ1つの“can‘t guarantee,just domy best”の実現で、優劣は以下の通りです:
redisは柔軟なデータクエリー方式を提供し、最も牛のはkeyの検索が正規表現をサポートすることである.
jedis.keys(“*”);すべてのkey jedisを検索します.keys(「abc*」)は、abcの先頭にあるkeyデータの検索を表す
keyを遍歴するとvalueまで遍歴できます.
JAvaコード
......
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);
}
......
参照先:
http://redis.io/commands/scan
http://www.w2bc.com/Article/3159
http://chenzhenianqing.cn/articles/1090.html
http://chenzhenianqing.cn/articles/1101.html