Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Menemukan nilai dengan menggunakan nama kunci parsial dalam Redis Sorted Set

Ini adalah jawaban yang diperbarui untuk tahun 2015.

Jika Anda dapat memutakhirkan Redis di atas 2.8, perintah SCAN dengan MATCH akan berfungsi untuk ini. Sebelum versi itu, jangan terlalu banyak, dan JANGAN gunakan perintah KEYS kecuali di lingkungan pengembangan.

http://redis.io/commands/scan

Contoh pada baris perintah:

$ redis-cli
127.0.0.1:6379> scan 0 match V3.0:*
1) "0"
2) 1) "V3.0:UNITTEST55660BC7E0C5B"
   2) "V3.0:shop.domain.com:route"
   3) "V3.0:UNITTEST55660BC4A2548"
127.0.0.1:6379> scan 0 match V1.0:*
1) "0"
2) (empty list or set)
127.0.0.1:6379> scan 0 match V3.0:*
1) "0"
2) 1) "V3.0:UNITTEST55660BC7E0C5B"
   2) "V3.0:shop.domain.com:route"
   3) "V3.0:UNITTEST55660BC4A2548"

Contoh dalam PHP:

// Initialize our iterator to NULL
$iterate = null;

// retry when we get no keys back
$redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);

while ($arr_keys = $redis->scan($iterate, 'match:*')) {
    foreach ($arr_keys as $str_key) {
        echo "Here is a key: $str_key\n";
    }
    echo "No more keys to scan!\n";
}

Catatan, kode php tidak diuji dan dari dokumentasi inti misalnya di sini. Kode produksi perlu dimodifikasi tergantung pada kunci yang diperlukan untuk mencari.

Bagi mereka yang menggunakan Ubuntu, berikut adalah petunjuk untuk memutakhirkan php5-redis:

  1. Unduh paket 2.2.7 di sini:http://pecl.php.net/package/redis
  2. $ php -i | grep Redis Redis Support => enabled Redis Version => 2.2.4
  3. Ikuti instruksi di README untuk membuat phpize, mengkonfigurasi, membuat instal
  4. Buat symlink untuk paket cli baris perintah:cd /etc/php5/cli/conf.d && sudo ln -s ../../mods-available/redis.ini 20-redis.ini
  5. $ php -i | grep Redis Redis Support => enabled Redis Version => 2.2.7


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana mengarahkan output dari langganan redis

  2. Menjalankan kumpulan perintah menggunakan redis cli

  3. Skrip Lua dan redis - cara menguji nilai None

  4. Bagaimana cara melakukan failover ke node Master baru saat menggunakan Redis dengan Sentinel dan redis-py?

  5. Saya mendapatkan kesalahan Kelas 'Predis\Client' tidak ditemukan di Laravel 5.2