<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ## 接口 ### 字符串 ``` $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->ping() //輸出PONG 為正常 ,錯誤會報 RedisException 異常 ``` #### set/get/ setnx / getset ``` //字符串操作 $redis->set("tutorial-name", "Redis tutorial"); $redis->get("tutorial-name"); $redis->setnx('key', 'value'); //不存在則fasle ,存在則 true $redis->delete("tutorial-name"); ``` #### getset 先獲得key的值,然后重新賦值 ``` $redis->set("tutorial-name", "Redis tutorial"); $redis->getset('tutorial-name', 'Redis'); //Redis tutorial ``` #### mset 存入多個值 key/value ``` //存入多個值 $array_mset=array('first_key'=>'first_val', 'second_key'=>'second_val', 'third_key'=>'third_val' ); $redis->mset($array_mset); #用MSET一次儲存多個值 print_r($redis->get('third_key')); // third_val ``` #### mget 獲取多個 key 對應的 value ``` $redis->set("key1", "1"); $redis->set("key2", "2"); var_export($redis->mget(["key1","key2"])); /** * array ( 0 => '1', 1 => '2', )*/ ``` #### setex / ttl /persist 設置一個有效期的值 /移除有效期 ``` $redis->setex("count", 5, "123"); // $redis->persist('count'); //移除失效時間 while(true){ $data = $redis->get("count"); if ($data){ print_r($redis->ttl("count")."\n"); //查看失效倒計時 print_r($data."\n"); }else{ return true; } sleep(1); } ``` #### incr / incrby / decr /decrby 自增自減 ``` $redis->set("name", 123); $redis->incr("name",2); print_r($redis->get("name")); //125 ``` #### strlen 字符串長度 ``` $redis->set("name", 123); print_r($redis->strlen("name")); //3 ``` ### 列表(List) 簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊) #### lpush / lrange / Len 隊列存儲 /列表長度 ``` //向右追加 $redis->rPush("tutorial-list", "Redis",'Oracle'); $redis->rPush("tutorial-list", "Mongodb"); $redis->rPush("tutorial-list", "Mysql"); print_r($redis->lPop("tutorial-list")); //先進后出 $arList = $redis->lrange("tutorial-list",0,0); //取第一個 $arList = $redis->lrange("tutorial-list",0,-1); //取全部 print_r($redis->lLen("tutorial-list")); //3 print_r($arList); //數組形式的值 ``` ### Hash 接口 數據存儲為`key` `field`、`value`的格式存儲,可用來存儲對象,避免序列化的開銷與并發修改的控制問題 ![54EB8D6C-5613-49FE-B6E9-CB5FDF50CD36.png](http://yanxuan.nosdn.127.net/d4ae1e54292bba4fd23924018f0eddc9.png) 使用 string 還是 hash? 1. 如果一個數據中如果filed比較多,但是每次只需要使用其中的一個或者少數的幾個,使用hash是一個好的選擇,因為它提供了hget 和 hmget,而無需取出所有數據再在代碼中處理。 2. 反之,如果數據差異較大,操作時常常需要把所有數據都讀取出來再處理,使用string 是一個好的選擇。 3. 也可以聽Redis 官方的,放心的使用hash 4. 如果一個hash中有大量的field(成千上萬個),需要考慮是不是使用string來分開存儲是不是更好的選擇 `語法`: HSET key field value `作用`: 設置一對 field value ``` $redis->hset('key', 'field', 'value'); //增,改,將哈希表key中的域field的值設為value, 不存在創建, 存在就覆蓋【1 | 0】 $redis->hget('key', 'field'); //查,取值【value|false】 $arr = array('one'=>1, 2, 3);$arr2 = array('one', 0, 1); $redis->hmset('key', $arr); //增,改,設置多值$arr為(索引|關聯)數組, $arr[key]=field, [ true ] $redis->hmget('key', $arr2); //查,獲取指定下標的field,[$arr | false] $redis->hgetall('key'); //查,返回哈希表key中的所有域和值。[當key不存在時,返回一個空表] $redis->hkeys('key'); //查,返回哈希表key中的所有域。[當key不存在時,返回一個空表] $redis->hvals('key'); //查,返回哈希表key中的所有值。[當key不存在時,返回一個空表] $redis->hdel('key', $arr2); //刪,刪除指定下標的field, 不存在的域將被忽略, [num | false] ``` ### Set 唯一列表 ``` $redis->sRem('key', 'value1', 'value2', 'value1'); //刪,移除集合key中的一個或多個member元素,不存在的member元素會被忽略 [del_num | false] $redis->sMembers('key'); //查,返回集合key中的所有成員 [array | ''] $redis->sIsMember('key', 'member'); //是否存在 $redis->sPop('key'); // 移除并返回集合中的一個隨機元素 [member | false] $redis->sRandMember('key'); //查,返回集合中的一個隨機元素 [member | false] $redis->sInter('key1', 'key2', 'keyn'); //查看多個 key 的交集的值 [array | false] $redis->sUnion('key1', 'key2', 'keyn'); //查看多個 key 合集 [array | false] $redis->sDiff('key1', 'key2', 'keyn'); //差差集 [array | false] ``` ### Zet 帶順序的 set ``` $redis->delete("z"); $redis->zAdd('z', 1, 'v2', 2, 'v2', 3, 'v3', 4, 'v4' ); $redis->zRem('z', 'v2', 'v3'); // $redis->zAdd("z", 3, "v5"); $redis->zAdd("z", 7, "v5"); //此賦值無效 $redis->zAdd("z", 3, "v6"); $redis->zAdd("z", 5, "v7"); var_export($redis->zRange("z", 0, -1)); // array ( 0 => 'v5', 1 => 'v6', 2 => 'v4', ) var_dump($redis->zScore('z', 'v5')); // 3 //var_dump($redis->zScore('z', 'v6')); // 3 var_export($redis->zRevRange('z', 0, -1)); // 返回從大到小 var_export($redis->zRangeByScore('z', 0, 4));//查排 0 到 4 的 value array ( 0 => 'v5', 1 => 'v6', ) var_export($redis->zRangeByScore('z', 0, 4,['withscores' => TRUE]));//array ( 'v5' => 3.0, 'v6' => 3.0, 'v4' => 4.0, ) var_export($redis->zRangeByScore('z', 0, 4,['limit' => [0, 1]]));// 分頁 array ( 0 => 'v5',) //$redis->zRevRangeByScore('z', $max, $min,[$config]); //從大到小排 var_dump($redis->zRank('z', 'v4')); //查,在全部排序中的 從開數起的索引 //$redis->zRevRank('key', 'member'); //反向查找 ``` ### HyperLogLog (基數統計的算法) 計算不重復元素的數量 ``` redis 127.0.0.1:6379> PFADD runoobkey "redis" 1) (integer) 1 redis 127.0.0.1:6379> PFADD runoobkey "mongodb" 1) (integer) 1 redis 127.0.0.1:6379> PFADD runoobkey "mysql" 1) (integer) 1 redis 127.0.0.1:6379> PFCOUNT runoobkey (integer) 3 //返回不重復數3 ``` ### 其他 #### del / delete 清空隊列或 set ``` $redis->del(["key1","key2"]); $redis->delete("key1","key2"); ``` #### expire 設置失效時間 `$redis->expire('key', 10); //設置失效時間[true | false]` #### keys 獲取所有的 key ``` //獲取key值 $arList = $redis->keys("*"); print_r($arList); // 數組形式 Array ( [0] => tutorial-list [1] => tutorial-name ) ``` #### 模糊查找 ``` $arList = $redis->keys("user:data:*"); ``` #### select / move 切換數據庫 移動數據 默認為 16 可在配置文件中修改 ``` $redis->select(0); // switch to DB 0 $redis->set('x', '42'); // write 42 to x $redis->move('x', 1); // move to DB 1 $redis->select(1); // switch to DB 1 $redis->get('x'); // will return 42 ``` #### 把數據存儲到磁盤 ``` $redis->save(); //同步?? 把數據存儲到磁盤-dump.rdb[true] $redis->bgsave(); //異步??把數據存儲到磁盤-dump.rdb[true] ``` #### 服務 接口 ``` $redis->dbSize(); //返回當前庫中的key的個數 $redis->flushAll(); //清空整個redis[總true] $redis->flushDB(); //清空當前redis庫[總true] $redis->info(); //查詢當前redis的狀態 [verson:2.4.5....] $redis->lastSave(); //上次存儲時間key的時間[timestamp] ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看