/**
  * 最常用的使用方式(推荐) 
  * -------------------------------------------------------------------
  * 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");
 }
示例#4
0
<?php

$ccb = new LtCacheConfigBuilder();
$ccb->addSingleHost(array("adapter" => "phps", "host" => "/tmp/LanMV/Cache-phps/"));
$config["cache.servers"] = $ccb->getServers();
示例#5
0
<?php

$ccb = new LtCacheConfigBuilder();
$ccb->addSingleHost(array("adapter" => "phps", "host" => "/tmp/Lotus/unittest/cache/phps"));
$config["cache.servers"] = $ccb->getServers();