参考网站
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 ThinkCacheDriverRedis();
$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 ThinkCacheDriverRedis();
$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。