php操作redis笔记!

     //验证是否安装OK:打开dos窗口->输入redis-server 在打开一个dos窗口-->输入redis-cli 显示:127.0.0.1:6379>则成功!
        $redis = new redis();
        $redis->connect('127.0.0.1', '6379') || die("连接失败!");
        $redis->auth("admin"); //授权
        //******************************string类型**********************************************************
        //String 是最简单的类型,一个Key对应一个Value,String类型是二进制安全的。Redis的String可以包含任何数据,比如jpg图片或者序列化的对象    
        //$redis->set('test', 200); //赋值 
        //$redis->mset(array('key0' => 'value0', 'key1' => 'value1'));//批量赋值
        //$redis->mget(array('key0', 'key1', 'key2'));//批量获取值  
        //$redis->setnx('key',value);//设置key对应的值为string类型的value,如果key已经存在,返回0,nx是not exist的意思
        //$redis->msetnx(array('key0' => 'value0', 'key1' => 'value1'));//全部成功返回1,否则失败一个也返回0
        //$redis->getset("key",'newvalue');//getset设置key的值,并返回key的旧值
        //$redis->setex('key',10,'value10');//带生存时间的写入值单位s
        //$redis->setrange('key',0,'hello');//设置子字符串替换,key,开始位置,替换值
        //$redis->getrange("key",0,2);//getrange获取子字符串,getrange key start end 
        //$redis->ttl('key');//获取key的生存时间,没设置的为-1
        //$redis->keys("*a*");//获取所有key,也可获取具体key,模糊匹配key
        //$redis->get("test"); //根据key获取value
        //$redis->getMultiple(array('key1', 'key2', 'key3'));
        //$exits = $redis->exists('test'); //判断key是否存在。存在 true 不存在 false
        //echo $exists?$res2:"null";
        // echo $res1?$res2:"null";die; 
        //$redis->delete('key1', 'key2'); //删除,可删除多个
        //$redis->delete(array('key3', 'key4', 'key5'));//删除,可删除多个
        //$redis->delete( $redis->keys("*"));//传数组,删除所有key
        //$redis->incr("key",1);//自增,默认值1 
        //$redis->incrBy('key',10);//必须给定参数值
        //$redis->decr("key",10);//自减,默认值1 
        //$redis->decrBy('key',10);//必须给定参数值
        //$redis->append("key","appendvalue");//给指定的key的字符串追加value,返回新字符串的长度
        //$redis->strlen('key');//获取指定key的字符串长度
        //******************************string类型**********************************************************
        //******************************hash类型**********************************************************
        // Redis hash是一个string类型的field和value的映射表。它的添加删除都是0(1)
        // hash特别适合用于存储对象。相对于将对象的每个字段存成单个string类型。
    //将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。
        // $redis->flushall();die;//清空所有数据库
        // $redis->flushdb();die;//清空当前数据库
        
        
         //$redis->hset("test","username","admin");//单个设置
         //$redis->hget("test","username");//单个获取
         //$redis->hsetnx("test","username","[email protected]");//设置hash field 为指定的值value,如果feild已经存在,返回0,nx是not exist的意思  
         //$redis->hmset("testabc",array("a"=>1,"b"=>2,"c"=>3,'d'=>4));//批量设置
         //$redis->hmget("testabc",array("a","b","c"));//批量获取
         //$redis->hincrBy("test","password","123456");//设置hash field 添加key和value
         //$redis->hexists("test","usernames");//测试hash field  存在1,不存在0
         //$redis->hlen("test"); //返回hash 里所有的 field 的数量
         //$redis->hdel("test","key");//删除指定hash的field
         //$redis->hkeys("test"); //返回hash 所有 field
         //$redis->hvals("test");//返回hash 所有 field values
         //$redis->hgetall("test");//获取hash中全部的field和value
         
        //******************************hash类型**********************************************************
        //******************************list链表**********************************************************
        //輚先进后出;队列先进先出;
        //List 是一个链表结构,主要功能是push,pop,获取一个范围的所有值等等,操作中key理解为链表的名字。
    //Redis的list类型其实就是一个每个子元素都是string类型的双向链表。我们可以通过push,pop操作从链表的头部或者尾部添加删除元素,这样LIST既可以作为栈,又可以作为队列。
          //$redis->lrange("list",0,-1);//取链表list 从0位开始取到最后位置;0代表头  -1代表尾
          //$redis->lpush("list","1"); //在key对应的list的头部添加字符串元素
          //$redis->rpush("list","test"); //在key对应的list的尾部添加字符串元素
          //$redis->lpop("list");//在key对应的list的头部删除字符串元素,并返回删除字符
          //$redis->rpop("list");//在key对应的list的尾部删除字符串元素,并返回删除字符
       // echo  $redis->lrem("list",2,'key');//在list中删除N个和value相同的元素(n<0从尾删除,n=0全部删除),返回的值为删除的个数
          //$redis->lset("list",-1,"啊");//设置list中指定下标的元素值 lset(list,位置,值),位置可以从头或者从尾
          //$redis->lindex("list",0);//返回list中index位置的元素
          //$redis->llen("list");//返回list的长度
          //$redis->ltrim("list",0,1);//保留指定key的值的范围内的数据 0为头  -1为尾  
          //$redis->linsert("list");//********
          //$redis->rpoplpush("list","listt");//从第一个LIST的尾部移除元素并添加到第二个LIST的头部
      
        //******************************list链表**********************************************************
        //******************************set集合**********************************************************
            //  Set是集合,它是string类型的无序集合。set是通过hash table实现的,添加,删除和查找的复杂程度都是0(1)
           //   对集合我们可以取并集,交集,差集。通过这些操作我们可以实现SNS中的好友推荐和blog的tag功能
           //$redis->sadd("col","a","b","c");//向集合中添加元素
           //$redis->smembers("col");//集合元素列表
           //$redis->srem("col",'d');//集合移除元素
           //$redis->spop("col");//随机删除集合元素并返回删除的元素。删除最后一个元素时,则集合也被删除
           //$redis->sdiff("set1","set2");//取多个集合的差集,谁在前面已谁为标准(差集就是前面第一个集合有而后面所有集合都没有)
           //$redis->sdiffstore("dif","set1","set2");//返回多个集合的差集,存在第三个集合里面
           //$redis->sinter("set","set1",'set2');//交集(所有集合都有的元素)
           //$res = $redis->sinterstore("inter","set","set1");///取多个集合的交集,存在第三个集合里面
           //$redis->sunion("set","set1",'set2');//并集(所有集合合并去重的元素)
           //$redis->sunionstore("union","set","set1");///取多个集合的并集,存在第三个集合里面
           //$redis->smove("set1","set2","value");///第一个集合元素剪切到第二个集合里面。
           //$redis->scard("set");//返回集合中元素的个数
           //$redis->sismember("set","value");//判断某个元素是否为集合的元素
           //$redis->srandmember("set");//随机返回集合内的一个元素,不会删除元素
           
//       $redis->keys("*");   //返回所有key
//       $redis->keys("*t");   //返回所有s开头的key
//               $res = $redis->keys("*");
//                        foreach ($res as $k => $v) {
//                              echo $v."=>".$redis->get($v)."
"; // } // $redis->exists("set"); //判断该key是否存在 // $redis->del("inter"); //删除该key // $redis->expire("set2",100); //设置key 过期时间10s // $redis->ttl("set3");//查看过期剩余时间s //$redis->select("1");// 选择数据库 //$redis->set("name","test");// 设置key=>value //$redis->get("name");// 根据key获取value //$redis->move("get",1);// 把key移到另一个数据库 //$redis->persist("set2");// 移除过期时间 //$redis->randomkey();//随机返回一个key //$redis->rename("names","newname");//重命名key //$redis->type("zset");//获取key类型 //$redis->dbsize();//获取数据库key个数 //$redis->info();//获取redis服务信息 //$redis->echo("hello,world");//输出函数 //******************************set集合********************************************************** //redis有五大数据类型 //字符串 string //hash 表 //链表结构 list //set 集合(无序) //zset 有序集合 //string来存储用户的最大id,用来id的自增 //hash 表来存储用户的详细信息 //list链表结构来存储用户的id号 // $uid = $redis->incr("blog:id"); //自增长 // $res = $redis->hmset('blog:user:' . $uid, array('id' => $uid, 'username' => 'admin'.time() . time(), 'password' => md5(time()))); //hash表插入一条记录 // $redis->rpush("blog:uid", $uid); // // // $res = $redis->hgetall("blog:user:".$uid); // $redis->del("blog:user:".$uid);//删除用户 // $redis->lrem("blog:uid",$uid);//删除链表中的id // print_R($res);die; // $count = $redis->lsize("blog:uid"); //list类型count总数 // $page_size = 3; // $page_num = !empty($_GET['page']) ? $_GET['page'] : 1; // $page_count = ceil($count / $page_size); // $ids = $redis->lrange("blog:uid", ($page_num - 1) * $page_size, (($page_num - 1) * $page_size + $page_size - 1)); // // foreach ($ids as $v) { // // $ress[] = $redis->hgetall("blog:user:" . $v); //获取记录 // } // echo"
";
//        print_R($ress);
     

你可能感兴趣的:(php操作redis笔记!)