【redis】 redis常用方法输出整理

1,咱们使用的redis 很多是经过封装的 源码 使用 ,原始的则是 

redis/autoload.php 加载后 使用的 <pre name="code" class="php">new Predis\Client($redisConfig);
2,

 

<?php
       require_once 'redis/autoload.php' ;
       $redisHost = '127.0.0.1' ; //reids配置主机ip
       $redisPort = '6379' ; //redis配置主机端口
       $redisDatabase = '97' ; //redis读写时选择的库

       $redisConfig = array("host"=>$redisHost, "port"=>$redisPort, "database"=>$redisDatabase) ;
       $redis = new Predis\Client($redisConfig);
       //获取
    <span style="color:#cc0000;">   $val = $redis->get('admin');</span>
       //设置
      <span style="color:#cc0000;"> $happy=$redis->set('str','happy');//set 还回 true </span>
       //var_dump($happy) ;//bool(true)
       //设置 setex
       <span style="color:#990000;">$setex = $redis->setex ( 'str' , 10 ,  'bar' ) ; </span>
       //表示 将key 'str'的值 设置为 bar 并且有效时期是10s
       //表示存储有效期为10秒
       //var_dump($setex);
       //setnx 相当于add 操作  不会覆盖已有值
      // $setnx=$redis->setnx('shi','1226');
       //var_dump($setnx);//bool(true)
       //
       //$setnx1=$redis->setnx('shi','1223');
       //var_dump($setnx1);//bool(false)
       //set的变种  值为 56了
       //$getset =$redis -> getset ( 'shi' , 56 ) ;
       //使用递增递减
       // $redis->incr('shi');
       //按照长度进行递增
       //   $redis->incrby('shi',4);
       //exists检测是否存在某值
     <span style="color:#990000;">  //  $exists=$redis -> exists ( 'foo' );
       //  var_dump($exists); bool(false)</span>
       //  $redis -> del ( 'hui' ) ; //true
       //type 类型检测,字符串返回string,列表返回 list,set表返回set/zset,hash表返回hash
<span style="color:#990000;">//         $val1= $redis -> type ( 'foo' ) ; //不存在,返回none
//         var_dump($val1);//string(4) "none"</span>
//         $val2= $redis -> set ( 'str' , 'test' ) ;//set 成功则还回 true
//         var_dump($val2);//bool(true)
<span style="color:#990000;">//         $val3= $redis -> type ( 'str' ) ;  //字符串,返回string
//         var_dump($val3);//string(6) string</span>
        
        //append 连接到已存在字符串 追加在 当前 key的value后面 继续赋值
<span style="color:#990000;">        // $redis -> append ( 'str','_123' ) ;  //返回累加后的字符串长度8,此进str为 ‘xx_123′</span>
        //setrange 部分替换操作
<span style="color:#660000;">        //$redis -> setrange ( 'str' , 0 , 'abc' ) ;  //返回3,参数2为0时等同于set操作
        // $redis -> setrange ( 'str' , 2 , 'ef') ; //返回4,表示从第2个字符后替换,这时 abef </span>
         //$redis ->set( 'str','abcdef') ;
        //substr 部分获取操作
 <span style="color:#990000;">       // $substr= $redis -> substr ( 'str', 0 , 1 ) ; //表示从第0个起,取到第1个字符,共3个,返回’abc’
        // var_dump($substr);
//          $strlen= $redis -> strlen ('shi') ;  //返回长度</span>
//          var_dump($strlen);
       //setbit/getbit 位存储和获取
//        // redis 用setbit(bitmap)统计活跃用户
//        $redis -> setbit ( 'binary' , 31 , 1 ) ;   //表示在第31位存入1,这边可能会有大小端问题?不过没关系,getbit 应该不会有问题
//        $getbit =$redis -> getbit ( 'binary' , 31 ) ;       //返回
//        var_dump($getbit);
       
//        //keys 模糊查找功能,支持*号以及?号(匹配一个字符)
//        $redis -> set ( 'foo1' , 123 ) ;
//        $redis -> set ( 'foo2' , 456 ) ;
<span style="color:#cc0000;">//        $keys1 =$redis -> keys ( 'foo*' ) ;                //返回foo1和foo2的array  *模糊查询
//        var_dump($keys1);
//        $keys2=$redis -> keys ( 'f?o?' ) ;                //同上?</span>
//        var_dump($keys2);
       //randomkey 随机返回一个key
      //$randomkey= $redis -> randomkey() ;  //可能是返回 ‘foo1′或者是’foo2′及其它任何一存在redis的key
      //var_dump($randomkey);
       //rename/renamenx 对key进行改名,所不同的是renamenx不允许改成已存在的key
       //重命名
<span style="color:#cc0000;">//        $rename=$redis -> rename ( 'str' , 'str2' ) ;  //把原先命名为’str’的key改成了’str2′</span>
//        var_dump($rename);
       //expire 设置key-value的时效性,ttl 获取剩余有效期,persist 重新设置为永久存储
       //$redis ->set('foo','qiuhui');
       
       //报错 暂停
//        $expire = $redis->expire('xiaoqiu', 10 );  //设置有效期为10秒
//        var_dump($expire);
//        $ttl = $redis -> ttl ('xiaoqiu');  //返回有效期值1s
//        var_dump($ttl);
//        $expire = $redis -> expire ('xiaoqiu');  //取消expire行为
//        var_dump($expire);
       //dbsize 返回redis当前数据库的记录总数
//        $dbsize=$redis->dbsize();
//        var_dump($dbsize);
       /*
        队列操作
        */
       
       //rpush/rpushx 有序列表操作,从队列后插入元素
       //lpush/lpushx 和rpush/rpushx的区别是插入到队列的头部,同上,’x'含义是只对已存在的key进行操作
<span style="color:#cc0000;">//        $redis -> rpush ( 'fooList' ,  'bar1' ) ;  //返回一个列表的长度1 后
//        $redis -> lpush ( 'fooList' ,  'bar0') ;  //返回一个列表的长度2  头
//        $redis -> rpushx ( 'fooList' ,  'bar2' ) ;  //返回3,rpushx只对<strong>已存在</strong>的队列做添加,否则返回0</span>
//        //llen返回当前列表长度
<span style="color:#990000;">//        $redis -> llen ( 'fooList' ) ; //3</span>
       
//        //lrange 返回队列中一个区间的元素
<span style="color:#990000;">//        $lrange1=$redis -> lrange ( 'fooList' , 0 , 1 ) ;  //返回数组包含第0个至第1个共2个元素  还回的 0-1 即[0],[1] </span>
        //这里显示的是 bar0 bar1 
//         array(2) {
//             [0]=>
//             string(4) "bar0"
//                 [1]=>
//                 string(4) "bar1"
//         }
//      var_dump($lrange1);
<span style="color:#cc0000;">//      $lrange2=$redis -> lrange ( 'fooList' , 0 ,-1 ) ; //返回第0个至倒数第一个,相当于返回所有元素,注意redis中很多时候会用到负数,下同
//        var_dump($lrange2);</span>
        //显示的 bar0 bar1 bar2 
//         array(3) {
//             [0]=>
//             string(4) "bar0"
//                 [1]=>
//                 string(4) "bar1"
//                     [2]=>
//                     string(4) "bar2"
//         }
//        //lindex 返回指定顺序位置的list元素
<span style="color:#990000;">//           $lindex =$redis -> lindex ( 'fooList' , 1 ) ;  //返回’bar1′</span>
//           var_dump($lindex);//string(4) "bar1"  取的是index
       
//        //lset 修改队列中指定位置的value
         // $redis -> lset ( 'fooList' , 1 , '123' ) ; //修改[1]位置1的元素,返回true
          //再次获取一下值
          //$lrange3=$redis -> lrange ( 'fooList' , 0 ,-1 ) ;
         // var_dump($lrange3);
       
//        //lrem 删除队列中左起指定数量的字符
         // $lrem=$redis -> lrem ( 'fooList' , 1 , '123' ) ;  //删除队列中左起(右起使用-1)1个字符’_'(若有)
         // var_dump($lrem);//返回的是 int(1)
<span style="color:#990000;">//        $lrange3=$redis -> lrange ( 'fooList' , 0 ,-1 ) ;</span>
//          var_dump($lrange3);
//           array(2) {
//               [0]=>
//               string(4) "bar0"
//                   [1]=>
//                   string(4) "bar2"
//           }
//        //lpop/rpop 类似栈结构地弹出(并删除)最左或最右的一个元素
<span style="color:#990000;">//         $lpop1=$redis -> lpop ( 'fooList' ) ;  //’bar0′</span>
//         var_dump($lpop1);
<span style="color:#990000;">//         $lpop2=$redis -> rpop ( 'fooList' ) ;  //’bar2′</span>
//         var_dump($lpop2);
//         string(4) "bar0"
//         string(4) "bar2"
       
//        //ltrim 队列修改,保留左边起若干元素,其余删除
<span style="color:#990000;">//           $ltrim=$redis -> ltrim ( 'fooList' ,  0 , 1 );  //保留左边起第0个至第1个元素  bool(true)</span>
//           var_dump($ltrim);
//           //进行打印一下
//           $lrange4=$redis -> lrange ( 'fooList' , 0 ,-1 ) ;
//           var_dump($lrange4);
          //array(0) {**
          //  }    
        //rpoplpush 从一个队列中pop出元素并push到另一个队列
        // $redis -> rpush ( 'list1' , 'ab0' );//后
//         $redis -> rpush ( 'list1' , 'ab4' );
//         $redis -> rpush ( 'list1' , 'ab5' );
//         // $redis -> rpush ( 'list2' , 'ab2' );
//         //$redis -> rpush ( 'list2' , 'ab3' );
<span style="color:#990000;">//         $rpoplpush = $redis -> rpoplpush ( 'list1' , 'list2' ); //从尾部list1拿出   推到list2</span>
//         //结果list1 =>array(‘ab0′),list2 =>array(‘ab1′,’ab2′,’ab3′)
//         var_dump($rpoplpush);
//         //进行打印
//         $resul1= $redis->lrange('list1',0,-1);
//         var_dump($resul1);
//         $resul2= $redis->lrange('list2',0,-1);
//         var_dump($resul2);
        //结果
//         string(3) "ab1"
//         array(1) {
//             [0]=>
//             string(3) "ab0"
//         }
//         array(3) {
//             [0]=>
//             string(3) "ab1"
//                 [1]=>
//                 string(3) "ab2"
//                     [2]=>
//                     string(3) "ab3"
//         }
//       $redis -> rpoplpush ( 'list2' , 'list2' ); //也适用于同一个队列, 这相当于翻转队列,把最后一个元素移到头部list2 =>array(‘ab3′,’ab1′,’ab2′)
       
<span style="color:#990000;">//        //linsert 在队列的中间指定元素前或后插入元素
        $redis -> linsert ( 'list2' ,  'before' , 'ab1' , '123' );  //表示在元素’ab1′之前插入’123′</span>
                 $resul2= $redis->lrange('list2',0,-1);
                 var_dump($resul2);
                 //结果
//                  [2]=>
//                  string(3) "123"
//                      [3]=>
//                      string(3) "ab1"
//                          [4]=>
//                          string(3) "ab2"
//                              [5]=>
<span style="color:#990000;">        $redis -> linsert ( 'list2' ,  'after' , 'ab1' , '456' );    //表示在元素’ab1′之后插入’456′</span>
                 $resul3= $redis->lrange('list2',0,-1);
                 var_dump($resul3);
                 //结果
                 [2]=>
//                  string(3) "123"
//                      [3]=>
//                      string(3) "ab1"
//                          [4]=>
//                          string(3) "456"
//                              [5]=>
//                              string(3) "ab2"
//                                  [6]=>
       
//        //blpop/brpop 阻塞并等待一个列队不为空时,再pop出最左或最右的一个元素(这个功能在php以外可以说非常好用)
//        //brpoplpush 同样是阻塞并等待操作,结果同rpoplpush一样
//        $redis -> blpop ( 'list3' , 10 ) ;  //如果list3为空则一直等待,直到不为空时将第一元素弹出,10秒后超时
       
       
      
      


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值