欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

PHP7+REDIS3.2phpredisscan命令游標(biāo)問題

redis 中匹配某些key的方法一般有keys和scan兩種方式,但是鑒于直接在線上執(zhí)行keys操作可能會(huì)造成Redis卡死等問題,所以想看有哪些keys,只能使用scan來操作了。在Redis命令行下操作沒啥問題:
SCAN 游標(biāo) MATCH 模式 COUNT
每次執(zhí)行都會(huì)返回當(dāng)前遍歷到了哪個(gè)槽位和是否找到了對(duì)應(yīng)的key
項(xiàng)目中使用了Phpredis擴(kuò)展,所以想著用程序來遍歷一下看看,一開始按照phpredis官網(wǎng)文檔提供的代碼示例執(zhí)行
:這是官方文檔,我在PHP7下執(zhí)行了一下,發(fā)現(xiàn)并沒有結(jié)果。。。。。。。
scan
Description: Scan the keyspace for keys

10多年的遼陽縣網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都營銷網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整遼陽縣建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“遼陽縣網(wǎng)站設(shè)計(jì)”,“遼陽縣網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

Parameters
LONG (reference): Iterator, initialized to NULL STRING, Optional: Pattern to match LONG, Optional: Count of keys per iteration (only a suggestion to Redis)

Return value
Array, boolean: This function will return an array of keys or FALSE if Redis returned zero keys

Example

/ Without enabling Redis::SCAN_RETRY (default condition) /
$it = NULL;
do {
// Scan for some keys
$arr_keys = $redis->scan($it);

// Redis may return empty results, so protect against that
if ($arr_keys !== FALSE) {
    foreach($arr_keys as $str_key) {
        echo "Here is a key: $str_key\n";
    }
}

} while ($it > 0);
echo "No more keys to scan!\n";

/ With Redis::SCAN_RETRY enabled /
$redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);
$it = NULL;

/ phpredis will retry the SCAN command if empty results are returned from the
server, so no empty results check is required.
/
while ($arr_keys = $redis->scan($it)) {
foreach ($arr_keys as $str_key) {
echo "Here is a key: $str_key\n";
}
}
echo "No more keys to scan!\n";

然后從網(wǎng)上搜了一下,發(fā)現(xiàn)有 $redis->scan($it,$match,$count)的,這樣好像能搜到一些key,但還是不行。
我的理想情況是跟命令行一樣,每次scan能夠返回一個(gè)游標(biāo)的位置和這次掃描出的keys。。。。。。。。。

最后是同事寫了一個(gè)版本,這個(gè)版本可以

$it = null;
$match = 'zhongce:activity_vote*';
$count = 10000;
$index = 0;
$redis->setOption(Redis::OPT_SCAN,Redis::SCAN_RETRY);
$iterator = null;
while ($keys = call_user_func_array(array($redis, 'scan'), array(&$it, $match))) {

foreach ($keys as $key) {
    echo $key . PHP_EOL;
}

}

上面是沒加count的版本,會(huì)直接遍歷出所有滿足條件的keys,你也可以加上count限制每次遍歷的數(shù)量。。。。。。。。。。

網(wǎng)站標(biāo)題:PHP7+REDIS3.2phpredisscan命令游標(biāo)問題
標(biāo)題路徑:http://chinadenli.net/article36/pgphpg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)標(biāo)簽優(yōu)化、軟件開發(fā)微信小程序、面包屑導(dǎo)航、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)