예제 #1
0
 public function Get($key, $default = 0)
 {
     $value = $this->table->get($key);
     return $value ? current($value) : $default;
 }
예제 #2
0
<?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);
예제 #3
0
파일: worker_table.php 프로젝트: cjq/tests
        $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));
        }
예제 #4
0
 /**
  * 获取服务器配置
  * @return mixed
  */
 function getHttpConf()
 {
     $arr = $this->ConfigSWTable->get(self::HTTP_CONFIG_TABLE_KEY);
     return json_decode($arr[self::HTTP_CONFIG_TABLE_KEY], true);
 }
예제 #5
0
파일: set.php 프로젝트: liangkwok/Swoole
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);
예제 #6
0
파일: table.php 프로젝트: ppker/swoole-src
<?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);
}
예제 #7
0
<?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('*****@*****.**'));