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类相关推荐

  1. Redis使用及工具类

    原地址:https://www.cnblogs.com/wyy123/p/6078593.html [学会安装redis] 从redis.io下载最新版redis-X.Y.Z.tar.gz后解压,然后 ...

  2. redis安装,redis项目以来,redis和spring整合,redis的service,redis的service实现类

    一.redis安装: Redis-3.2.6.tar.gz安装,参考方式: (这里也可以用于安装redis-4.0.9.tar.gz :     wget http://download.redis. ...

  3. 封装自定义的redis切库工具类ByteArrayRedisTemplate,读取byte数组反序列化成List<Object>

    封装自定义的redis切库工具类ByteArrayRedisTemplate,读取byte数组反序列化成List<Object>(使用lettuce连接池) 代码环境 框架:springb ...

  4. C# Redis使用及帮助类

    C# Redis使用及帮助类 环境准备 C#操纵Redis C# Redis帮助类 环境准备 目前官网已经没有window版本的安装文件了,window环境需要到github下载,地址如下:https ...

  5. SpringBoot整合:Druid、MyBatis、MyBatis-Plus、多数据源、knife4j、日志、Redis,Redis的Java操作工具类、封装发送电子邮件等等

    SpringBoot笔记 一.SpringBoot 介绍 1.1.SpringBoot简介 SpringBoot 是一个快速开发的框架, 封装了Maven常用依赖.能够快速的整合第三方框架:简化XML ...

  6. SpringBoot整合Redis并实现Redis工具类

    Redis 是用 C 语言开发的一款开源的.高性能的键值对存储数据库.它采用 BSD 协议,为了适应不同场景下的存储需求,提供了多种键值对类型,到目前为止 Redis 数据库支持5种数据类型,分别是S ...

  7. spring cloud 配置 redis、定义redis工具类

    一.引入redis工具依赖 在build.gradle文件中的dependencies的对象中引入依赖 compile 'org.springframework.boot:spring-boot-st ...

  8. Redis概述与Redis集群(一)

    2019独角兽企业重金招聘Python工程师标准>>>   今天给大家分享的是Redis,如有不足之处,敬请指正,那么什么是Redis呢? 一.Redis简介 1.1 Redis是什 ...

  9. Redis简介和Redis Template用法整理

    Redis简介 Redis使大规模互联网应用常用的内存高速缓存数据库,它的读写速度非常快.Redis是目前使用最广泛的内存数据存储系统之一.它支持更丰富的数据结构,支持数据持久化.事务.HA(高可用H ...

最新文章

  1. java 数组越界异常_数组越界异常 求解决!!!
  2. 5G 信令流程 — 5GC 的移动性管理(MM,Mobility Management)
  3. Kinect 动作识别组件概要设计
  4. 知乎高赞:985计算机视觉毕业后找不到工作怎么办?怒刷leetcode,还是另寻他路?
  5. namespace 或The content of element type mapper must match EMPTY
  6. PRML-系列一之1.5.1~1.5.3
  7. scrapy_redis爬取统计局的城乡代码,以目录文件夹形式生成,同时最后保存在excel和redis数据库中
  8. mysql5.6卸载干净_Mysql完全干净卸载教程
  9. SSH移植到arm开发板
  10. -------已搬运------SQL注入的 过滤 思路 payload 万能密码
  11. lol服务器维护是拳头,问拳头-英雄联盟官方网站-腾讯游戏
  12. android录制amr音频文件,android – 以AMR文件格式录制音频
  13. 商品详情页实现价格区间价
  14. 印象笔记Markdown样式美化 - window版
  15. 舆情监测系统功能简介,网络舆情监测系统平台有哪些?
  16. 【云栖大会】云栖大会盛大召开 已成全球一流科技盛会
  17. 掌握这些电脑知识,你可以玩的很无耻
  18. Linux服务器架设之FTP
  19. 更改计算机启动读盘,怎么设置电脑开机读取U盘启动盘?教你一招设置开机读取U盘启动盘...
  20. 步进电机控制,RPM与PPS单位关系分析

热门文章

  1. Centos7常用命令
  2. 使用余弦相似度算法计算文本相似度-数学
  3. 芯片初创公司一亿融资可以烧多久
  4. TVM设计与构架构建
  5. 2021年大数据Spark(十七):Spark Core的RDD持久化
  6. php配置mongodb扩展、安装mongodb服务教程
  7. DCN-2655 ssh 远程登陆配置
  8. [JS][编程题]括号匹配
  9. Android 属性动画(Property Animation) ObjectAnimator的介绍
  10. Caused by: org.greenrobot.eventbus.EventBusException: Subscriber class com.baidu.iov.dueros.film.ui