Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Tìm giá trị bằng cách sử dụng một phần tên khóa trong Tập hợp được sắp xếp của Redis

Đây là câu trả lời được cập nhật cho năm 2015.

Nếu bạn có thể nâng cấp Redis trên 2.8, lệnh SCAN với MATCH sẽ hoạt động cho việc này. Trước phiên bản đó, không quá nhiều và KHÔNG sử dụng lệnh KEYS ngoại trừ trong môi trường phát triển.

http://redis.io/commands/scan

Ví dụ trên dòng lệnh:

$ 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"

Ví dụ trong 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";
}

Lưu ý, mã php không được kiểm tra và lấy ví dụ từ tài liệu cốt lõi ở đây. Mã sản xuất sẽ cần được sửa đổi tùy thuộc vào các khóa cần tra cứu.

Đối với những người trên Ubuntu, đây là hướng dẫn để nâng cấp php5-redis:

  1. Tải xuống gói 2.2.7 tại đây:http://pecl.php.net/package/redis
  2. $ php -i | grep Redis Redis Support => enabled Redis Version => 2.2.4
  3. Làm theo hướng dẫn trong README để phpize, cấu hình, cài đặt
  4. Tạo một liên kết tượng trưng cho gói cli dòng lệnh: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. Làm cách nào để trả lại flask render_template sau khi hoàn tất công việc nền Redis?

  2. Xếp hạng-Giới hạn một API (MVC mùa xuân)

  3. Redis Hash Pagination

  4. Làm cách nào để tuần tự hóa một bản đồ trong Java để lưu trữ trong Redis?

  5. Cách thiết lập trình xử lý trong RedMQ từ các sự kiện được nêu trong miền của tôi