/** * 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)); }
/** * 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); }
/** * 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); }
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; }
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; }
/** * 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)); }
/** * 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); }
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; } }
/** * 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); }
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());
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; }
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); }
$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 {
/** * @inheritdoc */ public function all($id) { return array_map(function ($val) { return json_decode($val, true); }, $this->redis->hgetall($id)); }
$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); }
//返回用户列表 $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('<', '>'), $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))); } } }