標籤:
參考網站
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。
PHP redis 大量操作