PHP redis 批量操作


參考網站

phpredis擴展 :https://github.com/phpredis/phpredis#pconnect-popen  

命令參考:http://doc.redisfans.com  redis 

 

redis 操作異常總結

1.獲取的key存在,使用了錯誤的方法,如:string 用hashes的方法,返回false。

2.獲取不存在的key false。

3.設置不存在的key,寫入值,返回1,如果存在替換,返回0。使用hSetNx類型的函數,存在返回false不設置值,反之true設置值。

redis 批量測試

// 批量
$redis = new \Redis();
$redis->pconnect('127.0.0.1');
$redis->auth('111111');
$ts = microtime(true);
var_dump($ts);
$redis->multi();
for ($i=0; $i < 1000; $i++) {
$redis->set('key1', 'val1');
$redis->get('key1');
$redis->del('key1');
}
$redis->exec();
$df = microtime(true) - $ts;
var_dump($df);
// var_dump($ret);
// die;
// 單個
$redis = new \Think\Cache\Driver\Redis();
$ts = microtime(true);
var_dump($ts);
for ($i=0; $i < 1000; $i++) {
$redis->set('key1', 'val1');
$redis->get('key1');
$redis->del('key1');
}
$df = microtime(true) - $ts;
var_dump($df);
die;

結果 批量: float(1.11732006073) 單個: float(1.2670619487762) 可以在phpredis擴展使用中看出批量和單個並沒有太大時間上的

差別和http://my.oschina.net/u/2273085/blog/419920,此網友結論相差很大,也許是PHP自身的問題,不得而知。

redis 操作常規返回情況

// redis 獲取key類型錯誤返回false
$keyString = '13999999999';
$keyHash = 'ThumbnailServerList';
$redisCache = new \Think\Cache\Driver\Redis();
$return = $redisCache->hGetAll($keyString, $value);
var_dump($return);
$return = $redisCache->hGetAll($keyHash, $value);
var_dump($return);
$return = $redisCache->get($keyString, $value);
var_dump($return);
$return = $redisCache->get($keyHash, $value);
var_dump($return);
die;

結果:bool(false) bool(false) string(43) "9c8d83f5890611e45538a744eb1b036b156790b7533" bool(false) 獲取類型錯誤返回false,不存在也是false。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM