Rumah > pangkalan data > Redis > Mari kita bincangkan tentang operasi imbasan redis

Mari kita bincangkan tentang operasi imbasan redis

藏色散人
Lepaskan: 2021-09-12 14:51:55
ke hadapan
2793 orang telah melayarinya
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
zset(
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"
Salin selepas log masuk
)
  • value
cincang (
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"
Salin selepas log masuk
)
  • 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"
Salin selepas log masuk
    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"
Salin selepas log masuk

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"
Salin selepas log masuk
Kunci pangkalan data lintasan
  • 匹配keySet 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"
Salin selepas log masuk
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;
            }
        });
    }
Salin selepas log masuk

Atas ialah kandungan terperinci Mari kita bincangkan tentang operasi imbasan redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:segmentfault.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan