欢迎投稿

今日深度:

php redis 实例及详细注释,phpredis实例注释

php redis 实例及详细注释,phpredis实例注释


<?php
header("Content-type:text/html;charset=utf8");
$redis = new redis();
$redis ->connect("127.0.0.1",'6379');
$redis ->select (1);


var_dump("############################################LIST队列##################################################");
$list1 = "list1";
$list2 = "list2";
$list3 = "list3";
//del 删除key 多个参数删除多个key
$redis->del($list1,$list2);


//lpush 左推入队列 || rpush 右推入队列 
//@push 1,2,3,4,5,6,7,8,9,10
$redis->lpush($list1,1,2,3,4,5,6,7,8,9,10);
//llen 获取队列长度
$llen = $redis->llen($list2);
var_dump("队列长度(llen):".$llen);


//rpop 在队列右侧弹出元素  || lpop 在队列左侧弹出元素
$item = $redis->rpop($list1);
var_dump("右弹出元素(rpop):".$item);


//rpoplpush 队列右侧弹出元素,并且将元素左推入另一个队列
$redis->rpoplpush($list1,$list2);


//rpushx/lpushx 当队列存在时右/左推入元素,否则失败  添加成功返回队列长度,否则返回0
$ret = $redis->rpushx($list3,1);
var_dump("右推入不存在的队列(rpushx):".$ret);
$ret = $redis->rpushx($list1,11);
var_dump("右推入存在的队列(rpushx):".$ret);


//lrange(key,start,end)返回名称为key的list中start至end之间的元素(end为 -1 ,返回所有)
//@return array
$ret = $redis->lrange($list1,0,-1);
var_dump("获取队列中的元素(lrange):",$ret);


//blpop/brpop  弹出元素,阻塞(等待队列加入元素,直到超时,当队列加入元素,立即弹出)
//@return  array 0-key名称  1-元素值
// $redis->del($list1);
// $item = $redis->brpop($list1,10);
// var_dump("获取队列中的元素(阻塞)(brpop):",$item);


//brpoplpush rpoplpush 的阻塞型  参考BRPOP和RPOPLPUSH
// $redis->del($list1,$list2);
// $item = $redis->brpoplpush($list1,$list2);


//lindex 通过index索引获取元素值
$item = $redis->lindex($list1,8);
var_dump("通过index索引获取元素值(brpop):",$item);


//linsert在名称为为key的list中,找到值为pivot 的value,并根据参数Redis::BEFORE | Redis::AFTER,来确定,newvalue 是放在 pivot 的前面,或者后面。如果key不存在,不会插入,如果 pivot不存在,return -1
$redis->linsert($list1,REDIS::AFTER,"11","12");
$item = $redis->lrange($list1,0,-1);
var_dump("查找元素11,存在则在其后加入元素12(linsert):",$item);
$ret = $redis->linsert($list1,REDIS::AFTER,"NONE","12");
var_dump("查找元素NONE,不存在则返回(linsert):",$ret);




//LREM 删除count个名称为key的list中值为value的元素。count为0,删除所有值为value的元素,count>0从头至尾删除count个值为value的元素,count<0从尾到头删除|count|个值为value的元素
$redis->lrem($list1,11,2);
$item = $redis->lrange($list1,0,-1);
var_dump("移除2个值为11的元素之后(LREM):",$item);


//LSET 根据索引设置队列中元素的值
$redis->lset($list1,0,88);
$item = $redis->lrange($list1,0,-1);
var_dump("将队列第一个元素设置为88之后(LSET):",$item);




var_dump("############################################SET集合##################################################");
$set1 = "set1";
$set2 = "set2";
$set3 = "set3";
$redis->del($set1,$set2,$set3);
//SADD  集合添加元素
$redis->sadd($set1,1,2,3,4,5,6,7,8,9);
$redis->sadd($set2,2,43,54,6,7,8,2);
//SMEMBERS 获取集合全部元素
//@return ARRAY
$item = $redis->smembers($set1);
var_dump("获取集合全部元素(smembers):",$item);


//SCARD  获取集合元素数量
$ret = $redis->scard($set1);
var_dump("获取集合元素数量(SCARD):".$ret);


//SDIFF 求差集,返回第一个集合差集元素,返回结果中无第二个集合元素
//@return ARRAY
$item  = $redis->sdiff($set1,$set2);
var_dump("求差集(SDIFF):",$item);


//SDIFFSTORE   求差集并将差集保存到output的集合 ,如果新集合已经存在则覆盖
//@return 新集合的长度
$item  = $redis->sdiffstore($set3,$set1,$set2);
var_dump("求差集,新集合放到set3,返回新集合长度(SDIFFSTORE):".$item);
$item  = $redis->smembers($set3);
var_dump("求差集,新集合放到set3(SDIFFSTORE):",$item);


//SINTER 求交集
//@return array
var_dump("交集计算++++++++++++++++++++++++++++++++");
$item  = $redis->smembers($set1);
var_dump("set1:",$item);
$item  = $redis->smembers($set2);
var_dump("set2:",$item);


$item  = $redis->sinter($set1,$set2);
var_dump("求交集,返回交集结果(SINTER):",$item);


//SINTERSTORE 求交集并将结果写入新的集合,如果新集合已经存在则覆盖
//@return 交集长度
$item  = $redis->sinterstore($set3,$set1,$set2);
var_dump("求交集,结果写入set3,返回交集长度(SINTERSTORE):".$item);
$item  = $redis->smembers($set3);
var_dump("求交集,新集合放到set3(SINTERSTORE):",$item);


//sismember名称为key的集合中查找是否有value元素,有ture 没有 false
$redis->sIsMember($set1, 7);


//SMOVE 将一个集合中的元素移动到另一个集合
//将set1中的1元素移动到set2中
$ret = $redis->smove($set1,$set2,1);
var_dump("SMOVE返回的结果:",$ret);


//SPOP 在集合中随机弹出一个元素
$item = $redis->spop($set2);
var_dump("SPOP随机弹出得元素:",$item);


//SRANDMEMBER 随机弹出若干个元素
//set1中弹出2个元素
$item = $redis->srandmember($set1,2);
var_dump("SRANDMEMBER随机弹出2个元素:",$item);


//SREM 删除集合元素  ,返回删除的元素个数
//删除set3中的8和7元素
$ret = $redis->srem($set3,8,7);
var_dump("SREM返回结果:",$ret);


//SSCAN 模糊匹配元素名称,并返回
$redis->sadd($set1,"hell",'hall','work','word');
// $item = $redis->sscan();
// var_dump("SSCAN结果:",$item);
//SUNION 取结合并集   sunionstore求并集后赋值给新集合,如果新集合存在则覆盖,省略不表,使用方法参考sdiff,sdiffstore




var_dump("############################################HASH对象##################################################");
//HSET 设置哈希对象中的值
$hash1 = "hash1";
$hash2 = "hash2";
$hash3 = "hash3";
$redis->del($hash1,$hash2,$hash3);
//HSET设置hash对像单个属性值
$redis->hset($hash1,"name",'feiyu');
//HGETALL  获取hash对象所有得key=>value
$item = $redis->hgetall($hash1);
var_dump($item);


//HMSET 批量设置hash对象字段
$ret = $redis->hmset($hash1,array("sex"=>"男","money"=>"$999999999999999999",'age'=>27,'height'=>175.63,"+++"=>"aaaaaa"));
var_dump("HMSET返回结果:",$ret);
$item = $redis->hgetall($hash1);
var_dump("HMSET插入之后的结果:",$item);


//HDEL  根据属性名称删除hash对象的属性
$redis->hdel($hash1,"+++");
$item = $redis->hgetall($hash1);
var_dump("HDEL删除之后:",$item);


//HEXISTS 判断该属性再hash对象中是否存在
$ret = $redis->hexists($hash1,"sex");
var_dump("HEXISTS返回结果:",$ret);
//HGET 获取hash对象的某个值
$item = $redis->hGet($hash1,"name");
var_dump("HGET获取结果",$item);
//HINCRBY 哈希对象字段累加 注:field及value必须为int,否则return false;
$ret = $redis->HINCRBY($hash1,"age",1);
var_dump("HINCRBY执行结果",$ret);
$item = $redis->hGet($hash1,"age");
var_dump("HINCRBY执行之后的结果",$item);


//HINCRBYFLOAT hash对象字段累加浮点数     注:field及value 为int类型时也可以执行,返回值小数点后长度根据累加值决定,但是实际存储位为浮点数,通过HVALS等函数获取时注意舍取
$ret = $redis->HINCRBYFLOAT($hash1,"height",1.223);
var_dump("HINCRBY执行结果",$ret);


//HKEYS 获取hash对象得所有key值
$item = $redis->HKEYS($hash1);
var_dump("KEYS获取hash的所有keys",$item);


//HLEN 获取hash对象的长度
$ret = $redis->hlen($hash1);
var_dump("KEYS获取hash的长度",$ret);


//HMGET 获取多个hash对象的值
$item = $redis->hmget($hash1,array("name","age"));
var_dump("HMGET获取hash的多个值",$item);
//HSETNS 设置hash的值,如果key不存在则创建,如果已经存在则执行失败
$item = $redis->hset($hash1,"name",'feiyu');
var_dump("HSETNS设置已经存在得key",$item);
$item = $redis->hset($hash1,"first",'08');
var_dump("HSETNS设置已经存在得key",$item);
//HVALS 获取hash的所有值
$item = $redis->hvals($hash1);
var_dump("HVALS获取哈希的所有值",$item);
// HSCAN PHP暂时无实例, 服务器命令:HSCAN hash1(哈希对象名称) 0(资源起始) [match nam*] [count 1]
// $redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);
// $item = $redis->hscan($hash1,0);
// var_dump("HVALS获取哈希的所有值",$item);

www.htsjk.Com true http://www.htsjk.com/redis/29975.html NewsArticle php redis 实例及详细注释,phpredis实例注释 ?php header("Content-type:text/html;charset=utf8"); $redis = new redis(); $redis -connect("127.0.0.1",'6379'); $redis -select (1); var_dump("############################################...
相关文章
    暂无相关文章
评论暂时关闭