siri redis
- fungsi penerbitan dan langgan redis
- baris gilir mesej redis
- talian paip redis
- operasi imbasan redis
jujukan
Terdapat sejumlah besar kekunci dalam db redis atau set tertentu, zset, cincang dalam db. Jika terdapat banyak elemen di dalamnya, menggunakan operasi get all biasa mungkin akan menyebabkan redis disekat kerana operasi ini, mengakibatkan ketidakupayaan untuk bertindak balas terhadap operasi lain terutamanya dalam konteks konkurensi tinggi dan besar-besaran data, masalah ini amat serius. Jadi bolehkah ia mempunyai fungsi paging seperti pangkalan data jawapannya ialah operasi imbasan. Artikel ini terutamanya menunjukkan cara menggunakannya dalam redis-cli dan SpringDataRedis. [Disyorkan: tutorial video redis]
sintaks imbasan
Selepas imbasan, dua bahagian dikembalikan. Bahagian pertama ialah parameter imbasan seterusnya dan bahagian kedua ialah item yang keluar daripada imbasan. >
set(
)key
127.0.0.1:6379> scan 0 1) "120" 2) 1) "articleMap:63" 2) "articleMap:37" 3) "counter:__rand_int__" 4) "articleMap:60" 5) "tagSet:tag5" 6) "articleMap:80" 7) "messageCache~keys" 8) "mymap" 9) "articleMap:46" 10) "articleMap:55" 127.0.0.1:6379> scan 120 1) "28" 2) 1) "articleMap:17" 2) "tagSet:tag1" 3) "articleMap:18" 4) "articleMap:81" 5) "\xac\xed\x00\x05t\x00\btest-cas" 6) "articleMap:51" 7) "articleMap:94" 8) "articleMap:26" 9) "articleMap:71" 10) "user-abcde")
value
127.0.0.1:6379> sscan myset 0 1) "3" 2) 1) "m" 2) "j" 3) "c" 4) "h" 5) "f" 6) "i" 7) "a" 8) "g" 9) "n" 10) "e" 11) "b" 127.0.0.1:6379> sscan myset 3 1) "0" 2) 1) "l" 2) "k" 3) "d")
value & score
Parameter tambahan SCAN
127.0.0.1:6379> zscan sortset 0 1) "0" 2) 1) "tom" 2) "89" 3) "jim" 4) "90" 5) "david" 6) "100"
- kira(
- )
key & value
127.0.0.1:6379> hscan mymap 0 1) "0" 2) 1) "name" 2) "codecraft" 3) "email" 4) "pt@g.cn" 5) "age" 6) "20" 7) "desc" 8) "hello" 9) "sex" 10) "male"
padanan(
)指定每次取多少条
operasi RedisTemplate
127.0.0.1:6379> scan 0 count 5 1) "240" 2) 1) "articleMap:63" 2) "articleMap:37" 3) "counter:__rand_int__" 4) "articleMap:60" 5) "tagSet:tag5"Kunci pangkalan data lintasan
-
匹配key
Set lintasan
127.0.0.1:6379> scan 0 match article* 1) "120" 2) 1) "articleMap:63" 2) "articleMap:37" 3) "articleMap:60" 4) "articleMap:80" 5) "articleMap:46" 6) "articleMap:55"Traverse zset
Traverse hash
@Test public void scanDbKeys(){ template.execute(new RedisCallback<Iterable<byte[]>>() { @Override public Iterable<byte[]> doInRedis(RedisConnection connection) throws DataAccessException { List<byte[]> binaryKeys = new ArrayList<byte[]>(); Cursor<byte[]> cursor = connection.scan(ScanOptions.scanOptions().count(5).build()); while (cursor.hasNext()) { byte[] key = cursor.next(); binaryKeys.add(key); System.out.println(new String(key, StandardCharsets.UTF_8)); } try { cursor.close(); } catch (IOException e) { // do something meaningful } return binaryKeys; } }); }