यहां 2015 के लिए एक अद्यतन उत्तर दिया गया है।
यदि आप Redis को 2.8 से ऊपर अपग्रेड कर सकते हैं, तो MATCH के साथ SCAN कमांड इसके लिए काम करेगी। उस संस्करण से पहले, इतना नहीं, और विकास के माहौल को छोड़कर KEYS कमांड का उपयोग न करें।
http://redis.io/commands/scan
कमांड लाइन पर उदाहरण:
$ 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"
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";
}
नोट, PHP कोड का परीक्षण नहीं किया गया है और उदाहरण के लिए मूल दस्तावेज़ से यहां । उत्पादन कोड को देखने के लिए आवश्यक कुंजियों के आधार पर संशोधित करने की आवश्यकता होगी।
उबंटू के लोगों के लिए यहां php5-redis को अपग्रेड करने के निर्देश दिए गए हैं:
- 2.2.7 पैकेज यहां डाउनलोड करें:http://pecl.php.net/package/redis
$ php -i | grep Redis Redis Support => enabled Redis Version => 2.2.4
- PHPize करने, कॉन्फ़िगर करने, स्थापित करने के लिए README में दिए गए निर्देशों का पालन करें
- कमांड लाइन क्ली पैकेज के लिए एक सिमलिंक बनाएं:
cd /etc/php5/cli/conf.d && sudo ln -s ../../mods-available/redis.ini 20-redis.ini
$ php -i | grep Redis Redis Support => enabled Redis Version => 2.2.7