日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

php redis search,php redis类

發布時間:2023/11/27 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php redis search,php redis类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

php redis類

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 name 鍵名

@param string value 值

@param string expire 過期時間,單位:秒,0無限制。默認0

@return bool ret true:設置成功;false:設置失敗

*/

public function rsetexp($name,$value,$expire = 0){

if($expire == 0){

$ret = $this->set($name,$value);

}else{

$ret = $this->setEx($name,$expire,$value);

}

return $ret;

}

/*

不存在時才設置

@param string name 鍵名

@param string value 值

@param string expire 過期時間,單位:秒,0無限制。默認0

@return bool ret true:設置成功;false:設置失敗

*/

public function rsetnx($name,$value,$expire = 0){

$ret = $this->setnx($name,$value);

if($expire){

$this->expire($name,$expire);

}

return $ret;

}

/*

判斷鍵名是否存在

@param string name 鍵名

@return string ret 存在返回1,不存在返回0

*/

public function rexists($name){

$ret = $this->exists($name);

return $ret;

}

/*

查詢匹配條件的鍵名

@param string search 搜索條件

@return array ret 搜索到的鍵名

*/

public function rsearch($search){

$ret = $this->keys("*".$search."*");

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->watch($table.'_'.$id,$table.'_id');

$this->multi();

$this->hMSet(

$table.'_'.$id,

$data

);

$this->sAdd($table.'_id',$id);

$ret = $this->exec();

$this->unwatch($table.'_'.$id,$table.'_id');

return $ret;

}

/*

刪除

@param string table 數據表名

@param string id 數據表名對應的id

@return array ret 格式:

array(

0 => true,

1 => false,

...

)

*/

public function rdelete($table,$id){

$this->watch($table.'_'.$id,$table.'_id');

$this->multi();

$this->del($table.'_'.$id);

$this->sRem($table.'_id',$id,0);

$ret = $this->exec();

$this->unwatch($table.'_'.$id,$table.'_id');

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 每頁顯示條數

@param string sort 排序方式:1正序;-1倒序。默認-1

@return array(多維) ret 格式:

array(

array('id'=>'1',...),

array('id'=>'2',...),

...

)

*/

public function rgetall($table,$page,$pagesize,$sort = -1){

$ret = array();

if($sort == 1){

$sort = 'asc';

}else{

$sort = 'desc';

}

$ret1 = $this->sort(

$table.'_id',

array(

'alpha' => false,

'limit' => array($page - 1,$pagesize),

'sort' => $sort

)

);

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){

$ret1 = $this->sort(

$table.'_id',

array(

'alpha' => false,

'sort' => 'asc'

)

);

$this->watch($table.'_'.$id,$table.'_id');

$this->multi();

foreach($ret1 as $id){

$this->del($table.'_'.$id);

}

$this->del($table.'_id');

$ret = $this->exec();

$this->unwatch($table.'_'.$id,$table.'_id');

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 array ret 團隊成員組成的數組

*/

public function rsgetall($team){

$ret = $this->sMembers($team);

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);

// $phpredis->watch('aa','bb');

// $phpredis->multi();

// $phpredis->set('aa','aa');

// sleep(5);

// $phpredis->set('bb','bb');

// $ret = $phpredis->exec();

// $phpredis->unwatch('aa','bb');

// var_dump($ret);

?著作權歸作者所有:來自51CTO博客作者Lee_吉的原創作品,如需轉載,請注明出處,否則將追究法律責任

你的鼓勵讓我更有動力

贊賞

0人進行了贊賞支持

總結

以上是生活随笔為你收集整理的php redis search,php redis类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。