public function Get($key, $default = 0) { $value = $this->table->get($key); return $value ? current($value) : $default; }
<?php $table = new swoole_table(1024); $table->column('id', swoole_table::TYPE_INT, 4); //1,2,4,8 $table->column('name', swoole_table::TYPE_STRING, 64); $table->column('num', swoole_table::TYPE_FLOAT); $table->create(); $worker = new swoole_process('child1', false, false); $worker->start(); //child function child1($worker) { global $table; $table->set('*****@*****.**', array('id' => 145, 'name' => 'rango', 'num' => 3.1415)); $table->set('*****@*****.**', array('id' => 358, 'name' => "Rango1234", 'num' => 3.1415)); $table->set('*****@*****.**', array('id' => 189, 'name' => 'rango3', 'num' => 3.1415)); sleep(100000); } //master sleep(1); $s = microtime(true); for ($i = 0; $i < 1000; $i++) { $arr = $table->get('*****@*****.**'); } echo "use: " . (microtime(true) - $s) * 1000 . "ms\n"; //var_dump($table->get('*****@*****.**')); sleep(100000);
$fun = 'set_get'; } else { $fun = 'get_set'; } $worker = new swoole_process($fun, false, false); $worker->start(); } /* $worker=new swoole_process('get_set',false,false);//正向 $worker->start(); */ //master process while (true) { for ($i = $row - 1; $i >= 0; $i--) { $r = $table->set("id:{$i}", array("name" => $i + 1, "count" => $i + 2)); $table->get('id:' . $i); } echo "master\r\n"; sleep(5); } function set_get($worker) { global $table; global $key_num; while (true) { for ($i = $key_num - 1; $i >= 0; $i--) { $name = $i + 1; $count = $i + 2; $table->get('id:' . $i); $result = $table->set('id:' . $i, array('name' => $name, 'count' => $count)); }
/** * 获取服务器配置 * @return mixed */ function getHttpConf() { $arr = $this->ConfigSWTable->get(self::HTTP_CONFIG_TABLE_KEY); return json_decode($arr[self::HTTP_CONFIG_TABLE_KEY], true); }
function child1($worker) { global $table; $s = microtime(true); $table->set('*****@*****.**', array('id' => 145, 'name' => 'rango', 'num' => 3.1415)); $table->set('*****@*****.**', array('id' => 358, 'name' => "Rango1234", 'num' => 3.1415)); $table->set('*****@*****.**', array('id' => 189, 'name' => 'rango3', 'num' => 3.1415)); $table->set('*****@*****.**', array('id' => 145, 'name' => 'rango', 'num' => 3.1415)); $table->set('*****@*****.**', array('id' => 358, 'name' => "Rango1234", 'num' => 3.1415)); echo "set - 5 use: " . (microtime(true) - $s) * 1000 . "ms\n"; sleep(100000); } //master sleep(1); $s = microtime(true); //for($i =0; $i < 1000; $i++) //{ // $arr = $table->get('*****@*****.**'); // var_dump($arr); //} //$table->incr('*****@*****.**', 'id', 5); //$table->decr('*****@*****.**', 'num', 1.1); $ret1 = $table->get('*****@*****.**'); $ret2 = $table->get('*****@*****.**'); $ret1 = $table->get('*****@*****.**'); $ret2 = $table->get('*****@*****.**'); $ret3 = $table->get('*****@*****.**'); echo "get -5 use: " . (microtime(true) - $s) * 1000 . "ms\n"; //var_dump($ret1, $ret2, $ret3); //var_dump($table->get('*****@*****.**')); sleep(100000);
<?php $table = new swoole_table(1000); //table rows size $table->column('id', swoole_table::TYPE_INT, 4); //1,2,4,8 $table->column('name', swoole_table::TYPE_STRING, 64); $table->column('num', swoole_table::TYPE_FLOAT, 4); //4,8 $table->create(); exit; //memory size= 72 * (100000 + 20000) //20% conflict $key = '*****@*****.**'; $table->add($key, array('id' => 145, 'name' => 'rango', 'num' => 3.1415)); $value = $table->get($key); $table->set($key, array('id' => 120, 'num' => 1.414)); $table->del($key); $rows = $table->find(array('id' => 10), swoole_table::FIND_GT); $rows = $table->find(array('id' => 10), swoole_table::FIND_LT); $rows = $table->find(array('id' => 10), swoole_table::FIND_EQ); //default $rows = $table->find(array('id' => 10), swoole_table::FIND_NEQ); $rows = $table->find(array('name' => 'ran'), swoole_table::FIND_LEFTLIKE); $rows = $table->find(array('name' => 'go'), swoole_table::FIND_RIGHTLIKE); while ($row = $table->next()) { var_dump($row); }
<?php /** * Created by PhpStorm. * User: renxiaogang * Date: 2014/12/31 * Time: 15:46 */ $table = new swoole_table(1024); var_dump($table->get('*****@*****.**')); var_dump($table->get('*****@*****.**')); var_dump($table->get('*****@*****.**'));