php redis類
阿新 • • 發佈:2018-09-21
清空 構造函數 art 設置 rst value 字符 增加 exp
<?php
class phpredis extends Redis{
/*
構造函數:實例化redis類
@param config redis配置,格式:
array(
‘host‘ => ‘x.x.x.x‘, # 主機
‘port‘ => ‘xx‘, # 端口
‘pass‘ => ‘xxxx‘ # 密碼
)
*/
public function __construct($config){
$host = $config[‘host‘];
$port = $config[‘port‘];
$pass = $config[‘pass‘];
$this->connect($host,$port);
if($pass){
$this->auth($pass);
}
}
//**********//
// 字符串 //
//**********//
/*
設置過期時間
@param string key 鍵
@param string expire 過期時間,單位:秒
@param string value 值
@return bool ret true:設置成功;false:設置失敗
*/
public function rsetexp($key,$expire,$value){
$ret = $this->setEx($key,$expire,$value);
return $ret;
}
//**********//
// 數據庫 //
//**********//
/*
添加
@param string table 數據表名
@param string id 數據對應的id
@param array data 存入的數據
@return array ret 格式:
array(
0 => true,
1 => false,
...
)
*/
public function radd($table,$id,$data){
$this->multi();
$this->hMSet(
$table.‘_‘.$id,
$data
);
$this->sAdd($table.‘_id‘,$id);
$ret = $this->exec();
return $ret;
}
/*
刪除
@param string table 數據表名
@param string id 數據表名對應的id
@return array ret 格式:
array(
0 => true,
1 => false,
...
)
*/
public function rdelete($table,$id){
$this->multi();
$this->del($table.‘_‘.$id);
$this->sRem($table.‘_id‘,$id,0);
$ret = $this->exec();
return $ret;
}
/*
修改
@param string table 數據表名
@param string id 數據對應的id
@param array data 修改的數據
@return bool ret true:修改成功;false:修改失敗
*/
public function rupdate($table,$id,$data){
$ret = $this->hMSet(
$table.‘_‘.$id,
$data
);
return $ret;
}
/*
查詢(數據表總長度)
@param string table 數據表名
@return string ret 數據庫記錄數
*/
public function rcount($table){
$ret = $this->sCard($table.‘_id‘);
return $ret;
}
/*
查詢(列表)
@param string table 表名
@param string page 當前頁數
@param string pagesize 每頁顯示條數
@return array(多維) ret 格式:
array(
array(‘id‘=>‘1‘,...),
array(‘id‘=>‘2‘,...),
...
)
*/
public function rgetall($table,$page,$pagesize){
$ret = array();
$ret1 = $this->sort(
$table.‘_id‘,
array(
‘alpha‘ => false,
‘limit‘ => array($page - 1,$pagesize),
‘sort‘ => ‘desc‘
)
);
foreach($ret1 as $id){
$ret2 = $this->hGetAll($table.‘_‘.$id);
array_push($ret,$ret2);
}
return $ret;
}
/*
查詢(多列)
@param string table 表名
@param string id 數據對應的id
@param array data 要查詢的字段
@return array(一維) ret 格式:
array(
‘id‘ => ‘1‘,
‘name‘ => ‘‘,
...
)
*/
public function rgetrow($table,$id,$data){
$ret = $this->hMget(
$table.‘_‘.$id,
$data
);
return $ret;
}
/*
查詢(詳情)
@param string table 表名
@param string id 數據對應的id
@param string field 對應的字段
@return string ret 查詢到的值
*/
public function rgetone($table,$id,$field){
$ret = $this->hget(
$table.‘_‘.$id,
$field
);
return $ret;
}
/*
清除緩存(數據表)
@param string table 表名
@param array ret 格式:
array(
0 => true,
1 => false,
...
)
*/
public function rflush($table){
$this->multi();
$ret1 = $this->sort(
$table.‘_id‘,
array(
‘alpha‘ => false,
‘sort‘ => ‘desc‘
)
);
foreach($ret1 as $id){
$this->del($table.‘_‘.$id);
}
$this->del($table.‘_id‘);
$ret = $this->exec();
return $ret;
}
/*
清空緩存(數據庫)
@param void
@return bool ret true:清除成功,false:清除失敗
*/
public function rflushall(){
$ret = $this->flushAll();
return $ret;
}
//**********//
// 隊列 //
//**********//
/*
入隊
@param string name 隊列名
@param string value 隊列值
@return bool ret true:入隊成功,false:入隊失敗
*/
public function rgetin($name,$value){
$ret = $this->rPush($name,$value);
return $ret;
}
/*
出隊
@param string name 隊列名
@return bool/string ret string:取值成功,false:取值失敗
*/
public function rgetout($name){
$value = $this->lPop($name);
return $value;
}
//**********//
// 排行榜 //
//**********//
/*
添加成員
@param string name 榜單名
@param string member 成員
@param string score 分數
@return bool ret true:添加成功,flase:添加失敗
*/
public function rzadd($name,$member,$score){
$ret = $this->zAdd($name,$score,$member);
return $ret;
}
/*
刪除成員
@param string name 榜單名
@param string member 成員
@return bool ret true:刪除成功,flase:刪除失敗
*/
public function rzdelete($name,$member){
$ret = $this->zRem($name,$member);
return $ret;
}
/*
為指定成員增加分數
@param string name 榜單名
@param string member 成員
@param string score 分數,可以為負數
@return string ret 更新後的分數
*/
public function rzupdate($name,$member,$score){
$ret = $this->zIncrBy($name,$score,$member);
return $ret;
}
/*
查詢成員列表(由分數進行排序)
@param string name 榜單名
@param string page 當前頁數
@param string pagesize 每頁顯示條數
@param bool dir 排列方式,true:分數從高到低,false:分數從低到高
@return array ret 格式:
array(
‘member1‘ => ‘score1‘,
‘member2‘ => ‘score2‘,
...
)
*/
public function rzgetmember($name,$page,$pagesize,$dir = true){
$start = ($page - 1) * $pagesize;
$end = $page * $pagesize;
if($dir){
$ret = $this->zRevRange($name,$start,$end,true);
}else{
$ret = $this->zRange($name,$start,$end,true);
}
return $ret;
}
/*
查詢成員分數
@param string name 榜單名
@param string member 成員名
@return string ret 分數
*/
public function rzgetscore($name,$member){
$ret = $this->zScore($name,$member);
return $ret;
}
//**********//
// 團隊 //
//**********//
/*
向團隊中添加成員
@param string team 團隊名
@param string member 成員名
@return number ret 返回添加成員的數量
*/
public function rsadd($team,$member){
$ret = $this->sAdd($team,$member);
return $ret;
}
/*
從團隊中刪除成員
@param string team 團隊名
@param string member 成員名
@return number ret 返回刪除成員的數量
*/
public function rsdelete($team,$member){
$ret = $this->sRem($team,$member);
return $ret;
}
/*
查詢團隊中的成員數量
@param string team 團隊名
@return string/0 ret 返回團隊中的成員數量或0查詢失敗
*/
public function rsteamnum($team){
$ret = $this->sCard($team);
return $ret;
}
/*
判斷成員是否屬於團隊
@param string team 團隊名
@param string member 成員名
@return bool ret true:成員屬於團隊,flase:成員不屬於團隊
*/
public function rsisinteam($team,$member){
$ret = $this->sIsMember($team,$member);
return $ret;
}
/*
求兩個或多個團隊的共同成員
@param string team1 團隊1
@param string team1 團隊2
@return array ret 兩個團隊的交集
*/
public function rsteamcommon($team1,$team2){
$ret = $this->sInter($team1,$team2);
return $ret;
}
}
// $config = array(
// ‘host‘ => ‘127.0.0.1‘,
// ‘port‘ => ‘6379‘,
// ‘pass‘ => ‘zz123456‘,
// );
// $phpredis = new phpredis($config);
// $name = "yyyy";
// $value = ‘nnnn‘;
// $phpredis->set($name,$value);
// $ret = $phpredis->get($name);
// echo $ret;
php redis類