예제 #1
0
 /**
  * Test the creation of a resource
  *
  * @return void
  */
 public function testCreate()
 {
     $this->testingResource = new CreateTestResource();
     $this->assertInstanceOf(TestModel::class, $this->testingResource->user);
     $this->assertEquals($this->testingResource->userData['email'], $this->testingResource->user->email);
     $this->assertArraySubset($this->testingResource->userData, Redis::hgetall($this->testingResource->testModelHashId));
     $this->assertEquals($this->testingResource->user->id, Redis::get($this->testingResource->testModelSearchableId));
 }
예제 #2
0
 /**
  * Test the deletion of a resource by ID
  *
  * @return void
  */
 public function testDeleteById()
 {
     $testingResource = new CreateTestResource();
     $testModel = app('TestModel');
     $testModel->delete($testingResource->user->id);
     $this->assertEmpty(Redis::hgetall($testingResource->testModelHashId));
     $this->assertNull(Redis::get($testingResource->testModelSearchableId));
 }
 /**
  * Get a Dark Launch feature
  * @param $feature string - The namespace when accessing redis
  * @return An array of values - The hash keys and values for the feature
  */
 public function feature($feature_name)
 {
     $dark_launch_feature = $this->redis->hgetall("{$this->feature_namespace()}:feature:{$feature_name}");
     if (!$dark_launch_feature) {
         $this->set_from_config($feature_name);
         $dark_launch_feature = $this->redis->hgetall("{$this->feature_namespace()}:feature:{$feature_name}");
     }
     return $dark_launch_feature ? $dark_launch_feature : $this->_return_error($feature_name);
 }
예제 #4
0
 /**
  * Get a Dark Launch feature
  * @param $feature string - The namespace when accessing redis
  * @return An array of values - The hash keys and values for the feature
  */
 public function feature($feature_name)
 {
     $feature_name = str_replace('_', '-', $feature_name);
     $dark_launch_feature = $this->redis->hgetall("{$this->_feature_namespace()}:feature:{$feature_name}");
     if (!$dark_launch_feature) {
         $this->_init_features();
         $dark_launch_feature = $this->redis->hgetall("{$this->_feature_namespace()}:feature:{$feature_name}");
     }
     return $dark_launch_feature ? $dark_launch_feature : $this->_return_error($feature_name);
 }
예제 #5
0
 public function __construct($id)
 {
     $this->id = either($id, uniqid());
     $this->exists = false;
     $data = Util::multibulk_to_array(Redis::hgetall($this->key()));
     foreach ($data as $key => $val) {
         $this->{$key} = json_decode($val, true);
     }
     $this->exists = count($data) > 0;
 }
예제 #6
0
	protected function load($id){
		$data = Redis::hgetall("Source::$id");
		
		foreach($data as $key => $val){
			if($key % 2 == 0){
				$this->$val = json_decode($data[$key + 1], true);
			}
		}
		
		$this->id = $id;
	}
예제 #7
0
 /**
  * Test updating a resource
  *
  * @return void
  */
 public function testUpdate()
 {
     $this->testingResource = new CreateTestResource();
     $testModel = app('TestModel');
     $testModel->update($this->testingResource->user->id, ['email' => '*****@*****.**']);
     $testResource = $testModel->get($this->testingResource->user->id);
     $this->testingResource->userData['email'] = '*****@*****.**';
     $this->testingResource->testModelSearchableId = "testmodel:{$this->testingResource->user->id}:{$this->testingResource->user->id}_kenyon.jh@gmail.com_{$this->testingResource->convertedName}_{$this->testingResource->userData['password']}";
     $this->assertEquals('*****@*****.**', $testResource->email);
     $this->assertArraySubset($this->testingResource->userData, Redis::hgetall($this->testingResource->testModelHashId));
     $this->assertEquals($this->testingResource->user->id, Redis::get($this->testingResource->testModelSearchableId));
 }
예제 #8
0
 /**
  * Test getting a hidden field in a resource
  *
  * @return void
  */
 public function testGettingAHiddenField()
 {
     $passwordData = ['password' => 'testing'];
     $this->testingResource = new CreateTestResource($passwordData);
     $testModel = app('TestModel');
     $testResource = $testModel->get($this->testingResource->user->id, ['password']);
     $this->assertEquals($this->testingResource->user->id, $testResource->id);
     $this->assertArraySubset($passwordData, Redis::hgetall($this->testingResource->testModelHashId));
     $this->assertNull($testResource->password);
 }
예제 #9
0
파일: data.php 프로젝트: huycao/yoplatform
function setCache($type, $arrData = array())
{
    switch ($type) {
        case 'Campaign':
            $redis = new Redis();
            $redis->connect(REDIS_HOST, REDIS_PORT_1);
            $cacheKey = 'Campaign';
            $arrCampaign = $redis->hgetall($cacheKey);
            $servername = DB_HOST . ":" . DB_PORT;
            $username = DB_USERNAME;
            $password = DB_PASSWORD;
            $dbname = DB_NAME;
            $conn = new mysqli($servername, $username, $password, $dbname);
            // Check connection
            if ($conn->connect_error) {
                die("Connection failed: " . $conn->connect_error);
            }
            foreach ($arrData as $data) {
                if (!empty($data)) {
                    //print_r($data);
                    $redis->hset($cacheKey, $data['id'], json_encode($data));
                    unset($arrCampaign[$data['id']]);
                    $campaign_id = $data['id'];
                    $campConvKey = "CampConv_{$campaign_id}";
                    $arrCampConv = $redis->hgetall($campConvKey);
                    $sql = <<<EOF
                    SELECT id, campaign_id
                    FROM pt_conversion
                    WHERE  status = 1
                    AND campaign_id = {$campaign_id}
EOF;
                    $result = $conn->query($sql);
                    $arrTmp = array();
                    if ($result->num_rows > 0) {
                        while ($row = $result->fetch_assoc()) {
                            $arrTmp[] = $row;
                        }
                    }
                    foreach ($arrTmp as $item) {
                        $redis->hSet($campConvKey, $item['id'], $item['id']);
                        if (!empty($arrCampConv[$item['id']])) {
                            unset($arrCampConv[$item['id']]);
                        }
                    }
                    if (!empty($arrCampConv)) {
                        foreach ($arrCampConv as $key => $val) {
                            $redis->hdel($campConvKey, $key);
                        }
                    }
                }
            }
            if (!empty($arrCampaign)) {
                foreach ($arrCampaign as $id => $campaign) {
                    $redis->hdel($cacheKey, $id);
                    $redis->del("CampConv_{$id}");
                }
            }
            break;
        case 'Flight':
            $redis = new Redis();
            $redis->connect(REDIS_HOST, REDIS_PORT_1);
            $cacheKey = 'Flight';
            $arrFlight = $redis->hgetall($cacheKey);
            foreach ($arrData as $data) {
                if (!empty($data)) {
                    //print_r($data);
                    $data['country'] = json_decode($data['country']);
                    $data['province'] = json_decode($data['province']);
                    $redis->hset($cacheKey, $data['id'], json_encode($data));
                    unset($arrFlight[$data['id']]);
                }
            }
            if (!empty($arrFlight)) {
                foreach ($arrFlight as $id => $flight) {
                    $redis->hdel($cacheKey, $id);
                }
            }
            break;
        case 'Adzone':
            $redis = new Redis();
            $redis->connect(REDIS_HOST, REDIS_PORT_1);
            $servername = DB_HOST . ":" . DB_PORT;
            $username = DB_USERNAME;
            $password = DB_PASSWORD;
            $dbname = DB_NAME;
            $cacheKey = 'Adzone';
            $arrAdzone = $redis->hgetall($cacheKey);
            $conn = new mysqli($servername, $username, $password, $dbname);
            // Check connection
            if ($conn->connect_error) {
                die("Connection failed: " . $conn->connect_error);
            }
            $sql = '';
            foreach ($arrData as $data) {
                if (!empty($data)) {
                    //print_r($data);
                    $publisher_site_id = $data['publisher_site_id'];
                    $sql = <<<EOF
                    SELECT url
                    FROM pt_publisher_site
                    WHERE id = {$publisher_site_id}
EOF;
                    $result = $conn->query($sql);
                    $arrTmp = array();
                    if ($result->num_rows > 0) {
                        $arrTmp = $result->fetch_assoc();
                    }
                    $data['site'] = $arrTmp;
                    $publisher_ad_zone_id = $data['id'];
                    $sql = <<<EOF
                    SELECT code, weight
                    FROM pt_publisher_alternate_ad
                    WHERE publisher_ad_zone_id = {$publisher_ad_zone_id}
EOF;
                    $result = $conn->query($sql);
                    $arrTmp = array();
                    if ($result->num_rows > 0) {
                        while ($row = $result->fetch_assoc()) {
                            $arrTmp[] = $row;
                        }
                    }
                    $data['alternateAds'] = $arrTmp;
                    $redis->hset($cacheKey, $data['id'], json_encode($data));
                    unset($arrAdzone[$data['id']]);
                }
            }
            if (!empty($arrAdzone)) {
                foreach ($arrAdzone as $id => $zone) {
                    $redis->hdel($cacheKey, $id);
                }
            }
            break;
        case 'Ad':
            $redis = new Redis();
            $redis->connect(REDIS_HOST, REDIS_PORT_1);
            $cacheKey = 'Ad';
            $arrAd = $redis->hgetall($cacheKey);
            foreach ($arrData as $data) {
                if (!empty($data)) {
                    //print_r($data);
                    $redis->hset($cacheKey, $data['id'], json_encode($data));
                    unset($arrAd[$data['id']]);
                }
            }
            if (!empty($arrAd)) {
                foreach ($arrAd as $id => $ad) {
                    $redis->hdel($cacheKey, $id);
                }
            }
            break;
        case 'PublisherAlternateAd':
            $redis = new Redis();
            $redis->connect(REDIS_HOST, REDIS_PORT_2);
            $cacheKey = 'PublisherAlternateAd';
            $arrPublisherAlternateAd = $redis->hgetall($cacheKey);
            foreach ($arrData as $data) {
                if (!empty($data)) {
                    //print_r($data);
                    $redis->hset($cacheKey, $data['publisher_ad_zone_id'], json_encode($data));
                    unset($arrPublisherAlternateAd[$data['publisher_ad_zone_id']]);
                }
            }
            if (!empty($arrPublisherAlternateAd)) {
                foreach ($arrPublisherAlternateAd as $id => $publisherAlternateAd) {
                    $redis->hdel($cacheKey, $id);
                }
            }
            break;
        case 'FlightDate':
            $redis = new Redis();
            $redis->connect(REDIS_HOST, REDIS_PORT_1);
            $cacheKey = 'FlightDate';
            $arrFlightDate = $redis->hgetall($cacheKey);
            $arrFlight = array();
            foreach ($arrData as $data) {
                if (!empty($data)) {
                    $data['hour'] = json_decode($data['hour']);
                    $arrFlight[$data['flight_id']][] = $data;
                }
            }
            foreach ($arrFlight as $key => $flight) {
                $redis->hset($cacheKey, $key, json_encode($flight));
                //print_r($flight);
                unset($arrFlightDate[$key]);
            }
            if (!empty($arrFlightDate)) {
                foreach ($arrFlightDate as $id => $flightDate) {
                    $redis->hdel($cacheKey, $id);
                }
            }
            break;
        case 'PublisherSite':
            $redis = new Redis();
            $redis->connect(REDIS_HOST, REDIS_PORT_1);
            $cacheKey = 'PublisherSite';
            $arrPublisherSite = $redis->hgetall($cacheKey);
            foreach ($arrData as $data) {
                if (!empty($data)) {
                    //print_r($data);
                    $redis->hset($cacheKey, $data['id'], json_encode($data));
                    unset($arrPublisherSite[$data['id']]);
                }
            }
            if (!empty($arrPublisherSite)) {
                foreach ($arrPublisherSite as $id => $publisherSite) {
                    $redis->hdel($cacheKey, $id);
                }
            }
            break;
        case 'PublisherAdZone':
            $redis = new Redis();
            $redis->connect(REDIS_HOST, REDIS_PORT_1);
            $cacheKey = 'PublisherAdZone';
            $arrPublisherAdZone = $redis->hgetall($cacheKey);
            foreach ($arrData as $data) {
                if (!empty($data)) {
                    //print_r($data);
                    $redis->hset($cacheKey, $data['id'], json_encode($data));
                    unset($arrPublisherAdZone[$data['id']]);
                }
            }
            if (!empty($arrPublisherAdZone)) {
                foreach ($arrPublisherAdZone as $id => $publisherAdZone) {
                    $redis->hdel($cacheKey, $id);
                }
            }
            break;
        case 'Category':
            $redis = new Redis();
            $redis->connect(REDIS_HOST, REDIS_PORT_1);
            $cacheKey = 'Category';
            $arrCategory = $redis->hgetall($cacheKey);
            foreach ($arrData as $data) {
                if (!empty($data)) {
                    //print_r($data);
                    $redis->hset($cacheKey, $data['id'], json_encode($data));
                    unset($arrCategory[$data['id']]);
                }
            }
            if (!empty($arrCategory)) {
                foreach ($arrCategory as $id => $category) {
                    $redis->hdel($cacheKey, $id);
                }
            }
            break;
        case 'AdFormat':
            $redis = new Redis();
            $redis->connect(REDIS_HOST, REDIS_PORT_1);
            $cacheKey = 'Ad_Format';
            $arrAdFormat = $redis->hgetall($cacheKey);
            foreach ($arrData as $data) {
                if (!empty($data)) {
                    //print_r($data);
                    $redis->hset($cacheKey, $data['id'], json_encode($data));
                    unset($arrAdFormat[$data['id']]);
                }
            }
            if (!empty($arrAdFormat)) {
                foreach ($arrAdFormat as $id => $adFormat) {
                    $redis->hdel($cacheKey, $id);
                }
            }
            break;
        case 'FlightWebsite':
            $redis = new Redis();
            $redis->connect(REDIS_HOST, REDIS_PORT_1);
            $arrFlightWebsite = array();
            foreach ($arrData as $data) {
                if (!empty($data)) {
                    //print_r($data);
                    $cacheKey = "FlightWebsite_{$data['website_id']}_{$data['ad_format_id']}";
                    if (empty($arrFlightWebsite[$cacheKey])) {
                        $arrFlightWebsite[$cacheKey] = $redis->hgetall($cacheKey);
                    }
                    $redis->hset($cacheKey, $data['id'], json_encode($data));
                    unset($arrFlightWebsite[$cacheKey][$data['id']]);
                }
            }
            foreach ($arrFlightWebsite as $key => $flightWebsite) {
                foreach ($flightWebsite as $id => $fw) {
                    $redis->hdel($key, $id);
                }
            }
            break;
        case 'Conversion':
            $redis = new Redis();
            $redis->connect(REDIS_HOST, REDIS_PORT_1);
            $cacheKey = 'Conversion';
            $arrConversion = $redis->hgetall($cacheKey);
            foreach ($arrData as $data) {
                if (!empty($data)) {
                    //print_r($data);
                    $data['param'] = json_decode($data['param']);
                    $redis->hset($cacheKey, $data['id'], json_encode($data));
                    unset($arrConversion[$data['id']]);
                }
            }
            if (!empty($arrConversion)) {
                foreach ($arrConversion as $id => $conversion) {
                    $redis->hdel($cacheKey, $id);
                }
            }
            break;
    }
}
예제 #10
0
 /**
  * Increment a raw value
  *
  * @param	string	$id	Cache ID
  * @param	int	$offset	Step/value to add
  * @return	mixed	New value on success or FALSE on failure
  */
 public function hgetall($alias)
 {
     return $this->_redis->hgetall($alias);
 }
예제 #11
0
파일: redisWithPHP.php 프로젝트: isS/NoSQL
echo "<pre>";
print_r($data);
$redis->zrem("zset", 456);
echo $redis->zcount("zset", 10, 50);
$redis->zRemRangeByScore("key", star, end);
echo $redis->zScore("zset", 503);
echo $redis->zrank("zset", 723);
for ($i = 0; $i < 10; $i++) {
    $redis->hset("myhash", $i, rand(10, 99) + $i);
}
echo $redis->hget("myhash", "0");
echo $redis->hlen("myhash");
echo $redis->hdel("myhash", "0");
$data = $redis->hkeys("myhash");
$data = $redis->hvals("myhash");
$data = $redis->hgetall("myhash");
echo "<pre>";
print_r($data);
echo $redis->hexists("myhash", "0");
$redis->hmset("user:1", array("name1" => "name1", "name2" => "Joe2"));
$data = $redis->hmget("user:1", array('name', 'salary'));
print_r($data);
// redis
$redis->move("key1", 2);
$redis->settimeout("user:1", 10);
$redis->expireat("myhash", time() + 23);
$count = $redis->dbSize();
$redis->auth("foobared");
$redis->bgrewriteaof();
$redis->slaveof("10.0.1.7", 6379);
print_r($redis->info());
예제 #12
0
	protected function load($id){
		$data = Redis::hgetall("Repository::$id");
		
		foreach($data as $key => $val){
			if($key % 2 == 0){
				$this->$val = json_decode($data[$key + 1], true);
			}
		}
		
		$this->files = Redis::smembers("Repository.Source::$id");
		
		$this->id = $id;
	}
예제 #13
0
 public function mbr()
 {
     $this->pData = checkData($_POST);
     $this->gData = checkData($_GET);
     $this->pData['orderField'] = $orderField = isset($this->pData['orderField']) ? $this->pData['orderField'] : 'tdate';
     $this->pData['orderDirection'] = $orderDirection = isset($this->pData['orderDirection']) ? $this->pData['orderDirection'] : 'desc';
     $this->orderField = $orderField;
     $this->orderDirection = $orderDirection;
     $s_date = $this->pData['s_date'];
     $e_date = isset($this->pData['e_date']) ? $this->pData['e_date'] : date("Y-m-d");
     $this->pData['s_date'] = $s_date;
     $this->pData['e_date'] = $e_date;
     $date = date("Y-m-d", time());
     $hash = "mbr_" . $date;
     $redis = new Redis();
     $redis->connect('192.168.0.15', 6379);
     $install_all = $redis->hLen("install");
     //总安装量
     //print_r($install_all);die;
     $data[] = $redis->hgetall("mbr");
     $value = array();
     foreach ($data as $k => $v) {
         foreach ($v as $key => $val) {
             $value[] = json_decode($val);
         }
     }
     if ($e_date) {
         for ($i = 0; $i < count($value); $i++) {
             if ($value[$i][3] <= $e_date) {
                 $values[] = $value[$i];
             }
         }
     } else {
         if ($s_date) {
             for ($i = 0; $i < count($value); $i++) {
                 if ($value[$i][3] >= $s_date) {
                     $values[] = $value[$i];
                 }
             }
         } else {
             if (isset($e_date) && isset($s_date)) {
                 for ($i = 0; $i < count($value); $i++) {
                     if ($value[$i][3] >= $s_date && $value[$i][3] <= $e_date) {
                         $values[] = $value[$i];
                     }
                 }
             } else {
                 for ($i = 0; $i < count($value); $i++) {
                     $values[] = $value[$i];
                 }
             }
         }
     }
     for ($i = 0; $i < count($values); $i++) {
         unset($values[$i][2]);
         $value_str[] = implode(",", $values[$i]);
     }
     $arr = array_unique($value_str);
     foreach ($arr as $k => $v) {
         $value_arr[] = $v;
     }
     for ($i = 0; $i < count($value_arr); $i++) {
         $value_a[] = explode(",", $value_arr[$i]);
     }
     //print_r($value_a);die;
     $this->s->assign('count', 5);
     $this->s->assign('install_all', $install_all);
     $this->s->assign('data', $value_a);
     $this->s->assign('total', count($value_a));
     $this->s->assign('search', $this->pData);
 }
예제 #14
0
 $bid = $row[1];
 $ver = $row[2];
 $deviceType = strtolower($row[3]);
 $did = $didInfo[$deviceType] + 0;
 $time = $row[4];
 $ptype = $row[5];
 $broken = $row[6];
 $qd = $row[7];
 $remoteIp = $row[8];
 if ($ptype != 1 && $ptype != 2) {
     $count++;
 }
 $ipStr = long2ip($remoteIp);
 //设备激活时间
 $deviceKey = 'wap#' . $idfa . '_' . $bid;
 $deviceInfo = $redis->hgetall($deviceKey);
 $addTime = $deviceInfo['addTime'];
 $kid = $deviceInfo['kid'] ? $deviceInfo['kid'] : 0;
 $adid = $deviceInfo['adid'] ? $deviceInfo['adid'] : 0;
 if (!$addTime || $addTime > $maxTime) {
     echo $addTime, PHP_EOL;
     $addTime = $time;
     $info['id'] = $idfa;
     $info['addTime'] = $addTime;
     $info['bid'] = $bid;
     $info['firstLogin'] = $calDateUnix;
     $redis->hMset($deviceKey, $info);
 }
 if ($addTime >= $calDateUnix) {
     $newFlag = 1;
 } else {
예제 #15
0
 /**
  * @inheritdoc
  */
 public function all($id)
 {
     return array_map(function ($val) {
         return json_decode($val, true);
     }, $this->redis->hgetall($id));
 }
예제 #16
0
     $ipInfo['time'] = $time;
     $key = 'ip#' . $remoteIp;
     $redis->hMset($key, $ipInfo);
     unset($ipInfo);
     $keys[] = $key;
 }
 if ($path == '/pcapi.php') {
     parse_str($arr[5], $query);
     $mac = $query['mac'];
     $key = 'pc#' . $mac;
     if ($mac == '' || $query['ptype'] != 1) {
         continue;
     }
     $redis->select($config['redis']['ipdb']);
     $ipKey = 'ip#' . $remoteIp;
     $ipInfo = $redis->hgetall($ipKey);
     if ($ipInfo['adType'] == 'pc' && $time - $ipInfo['time'] < 7200) {
         $pcInfo = $ipInfo;
     }
     unset($pcInfo['time']);
     unset($pcInfo['adType']);
     $pcInfo['id'] = $mac;
     $pcInfo['addTime'] = $time;
     $pcInfo['firstLogin'] = $time;
     $pcInfo['lastLogin'] = $time;
     $pcInfo['version'] = $query['ver'];
     $pcInfo['delFlag'] = 0;
     $redis->select($config['redis']['pcdb']);
     $redis->hMset($key, $pcInfo);
     unset($pcInfo);
 }
예제 #17
0
파일: gateway.php 프로젝트: eastlhu/fooking
        //返回用户列表
        $body = json_encode(array('type' => 'list', 'list' => $users));
        header("Content-Length: " . strlen($body));
        echo $body;
    } else {
        if ($info['type'] == 'join') {
            //加入分组
            $router->addChannel('chat-channel-' . $info['channel'], $sid);
        } else {
            if ($info['type'] == 'msg') {
                //发送消息
                $name = $redis->hget("chatuser:{$sid}", "name");
                $info['text'] = str_replace(array('<', '>'), array('&lt;', '&gt;'), $info['text']);
                if ($info['channel']) {
                    $router->publish('chat-channel-' . $info['channel'], json_encode(array('type' => 'msg', 'name' => $name, 'channel' => (int) $info['channel'], 'text' => $info['text'], 'time' => date('i:s'))));
                } else {
                    $router->sendAllMsg(json_encode(array('type' => 'msg', 'name' => $name, 'channel' => 0, 'text' => $info['text'], 'time' => date('i:s'))));
                }
            }
        }
    }
} else {
    if ($_SERVER['EVENT'] == 2) {
        //断开连接
        $user = $redis->hgetall("chatuser:{$sid}");
        if ($user) {
            $redis->del("chatuser:{$sid}");
            $router->sendAllMsg(json_encode(array('type' => 'close', 'name' => $user['name'], 'id' => $sid)));
        }
    }
}