/** * 最常用的使用方式(推荐) * ------------------------------------------------------------------- * LtCache要求: * # key必须是数字或者字串,不能是数组,对象 * * ------------------------------------------------------------------- * LtCache不在意: * # value的数据类型是什么(但一般来说resource型数据是不能被缓存的) * * ------------------------------------------------------------------- * LtCache建议(不强求): * # 为保证key不冲突,最好定义多个group,将不同领域的数据分开存 * * 本测试用例期望效果: * 能成功通过add(), get(), del(), update()接口读写数据 */ public function testMostUsedWay() { /** * 构造缓存配置 */ $ccb = new LtCacheConfigBuilder(); $ccb->addSingleHost(array("adapter" => "file")); /** * 实例化组件入口类 */ $cache = new LtCache(); $cache->configHandle->addConfig(array("cache.servers" => $ccb->getServers())); $cache->init(); /** * 初始化完毕, 测试其效果 */ $ch = $cache->getTDG("test"); $this->assertTrue($ch->add("test_key", "test_value")); $this->assertEquals("test_value", $ch->get("test_key")); $this->assertTrue($ch->update("test_key", "new_value")); $this->assertEquals("new_value", $ch->get("test_key")); $this->assertTrue($ch->del("test_key")); $this->assertFalse($ch->get("test_key")); // 删除、更新不存在的key $this->assertFalse($ch->del("some_key_not_exists")); $this->assertFalse($ch->update("some_key_not_exists", "any value")); // 添加重复的key $this->assertTrue($ch->add("key1", "value1")); $this->assertFalse($ch->add("key1", "value1")); //清理缓存内容,防止对下一次测试产生干扰 $ch->del("key1"); }
public function testPerformance() { /** * 构造缓存配置 */ $ccb = new LtCacheConfigBuilder(); // $ccb->addSingleHost(array("adapter" => "apc")); // $ccb->addSingleHost(array("adapter" => "eAccelerator")); // $ccb->addSingleHost(array("adapter" => "file")); // $ccb->addSingleHost(array("adapter" => "memcache", "host" => "localhost", "port" => 11211)); // $ccb->addSingleHost(array("adapter" => "memcached", "host" => "localhost", "port" => 11211)); $ccb->addSingleHost(array("adapter" => "file")); // $ccb->addSingleHost(array("adapter" => "Xcache", "key_prefix" => "test_xcache_")); /** * 实例化组件入口类 */ $cache = new LtCache(); $cache->configHandle->addConfig(array("cache.servers" => $ccb->getServers())); $cache->init(); // 初始化完毕,测试其效果 $ch = $cache->getTDG('test-performance'); $this->assertTrue($ch->add("test_key", "test_value")); $this->assertEquals("test_value", $ch->get("test_key")); $this->assertTrue($ch->update("test_key", "new_value")); $this->assertEquals("new_value", $ch->get("test_key")); $this->assertTrue($ch->del("test_key")); $this->assertFalse($ch->get("test_key")); /** * 运行500次,要求在1秒内运行完 */ $base_memory_usage = memory_get_usage(); $times = 500; $startTime = microtime(true); // ----------------------------测试读取 $ch->add("test_key", "test_value"); for ($i = 0; $i < $times; $i++) { $ch->get("test_key"); } $ch->update("test_key", "new_value"); $ch->del("test_key"); // ----------------------------测试完成 $endTime = microtime(true); $totalTime = round($endTime - $startTime, 6); $averageTime = round($totalTime / $times, 6); $memory_usage = memory_get_usage() - $base_memory_usage; $averageMemory = formatSize($memory_usage / $times); $memory_usage = formatSize($memory_usage); if (LOTUS_UNITTEST_DEBUG) { echo "\n--------------LtCache get -----------------\n"; echo "times \t{$times}\n"; echo "totalTime \t{$totalTime}s\taverageTime \t{$averageTime}s\n"; echo "memoryUsage \t{$memory_usage}\taverageMemory \t{$averageMemory}"; echo "\n---------------------------------------------------------\n"; } $this->assertTrue(1 > $totalTime); }
/** * 使用尚未支持的adapter * * @expectedException PHPUnit_Framework_Error */ public function testInvalidAdapter() { /** * 构造缓存配置 */ $ccb = new LtCacheConfigBuilder(); $ccb->addSingleHost(array("adapter" => "not_exists")); /** * 实例化组件入口类 */ $cache = new LtCache(); $cache->configHandle->addConfig(array("cache.servers" => $ccb->getServers())); $cache->init(); $ch = $cache->getTDG('test'); $ch->add("test_key", "test_value"); }
<?php $ccb = new LtCacheConfigBuilder(); $ccb->addSingleHost(array("adapter" => "phps", "host" => "/tmp/LanMV/Cache-phps/")); $config["cache.servers"] = $ccb->getServers();
<?php $ccb = new LtCacheConfigBuilder(); $ccb->addSingleHost(array("adapter" => "phps", "host" => "/tmp/Lotus/unittest/cache/phps")); $config["cache.servers"] = $ccb->getServers();