簡単な紹介
Redisのは、NoSQLの製品のキー値であり、我々はMemcachedのはやや似ているけど、彼が格納された値の型が比較的多く存在し、文字列(文字列)を含め、リスト(一覧)、セット(コレクション)、ZSET(ソートセット注文しますコレクション)とハッシュ。memcachedのと同じように、高い効率を確保するために、データはメモリにキャッシュされています。Redisの差もNoSQLの構造化データベースと呼ばれる多数の種類、データの各タイプとPHPとのロールインスタンスを使用するために以下の説明です。
接続
// 接続を作成するのRedis $ Redisのを = 新しい新しいRedisの(); // インスタンス化、一般的にアドレス127.0.0.1、デフォルトのポート6379に接続されている $のRedisの - >接続( '127.0.0.1'、 '6379' ); / / 認証パスワード、パスワードが設定されていない場合のRedisは、この無視できるほど の$ Redisのを - > AUTH( '123456');
データの種類
文字列
Redisの$ - > SET( 'テスト'、 'こんにちはのRedis'); // ストアまたは文字列型を変更
リスト一覧
操作リストLの代表方法
メモリ
Redisの$ - > LPUSH( 'リスト'、 'Xiaohua'); // 左から追加
$のRedis - > RPUSH( 'リスト'、 'ボブ'); // 右から追加された
$のRedis - > LSET( 'リスト' 2は、)「SA長い一日赤」; // セットや位置を指定された値のリストを変更するには、成功を返し、失敗のエラーメッセージが返されます
[削除]
Redisの$ - > LPOP(「リスト」); // 最初の左を削除 $のRedis - > RPOP(「リスト」); //は、最初の右削除 / * 値に基づいて*削除要素を、2番目のパラメータはにあります削除の値(これは削除する要素の値である) *削除三番目のパラメータが開始することを示し、いくつかは削除 ヘッドからテーブルの末尾に*パラメータ> 0を削除し始め、いくつかの端の最初のを削除 *パラメータ<0フッタからヘッダへの削除を開始、いくつかを削除します。 *パラメータ値= 0暁明すべての要素を削除する * / $のRedis - > lRem( 'リスト'、 'ボブ'、1);
得ます
/ * *最初のパラメータは、名前のリストであり、 第二のパラメータ・インデックス開始位置である 第三のパラメータ・インデックス(ビットが終了要素を含む)の端部の位置で 相互負の*代表-1最初の逆数を示し 空の場合*スタートに戻るよりも大きい場合、直接バック最後の要素の端の実際の長さよりも大きい * * / // 戻りアレイ。キーのリストの要素の指定された範囲に保存されている $のRedis - > LRANGE(「リスト」、0、-1 ); // 指定されたセクションの値リストを取得し、前掲 $のRedis - > lGetRange(「リスト」、0,2 ); // 切片と残りの値を削除し、指定されたセクションのリストに値を保持します。成功したリターン1、そうでないリターンエラーメッセージが表示されます。負の数の逆数 $のRedis - > LTRIM( 'リスト'、0,2 ); // 長さのリストを取得 $ Redisのを - >( 'リスト'のLSIZE数); // 指定された位置の値のリストを取得 $ Redisのを - > LGET( '一覧」、1。); - > LINDEX( 'リスト'、1);
ハッシュ辞書
マッピングテーブルの列フィールドタイプおよび値のハッシュは、特にオブジェクトを格納するのに適し。各ハッシュキー32の電源を格納することができる-1 2(4000万)に対応する鍵のハッシュテーブルRedisのストレージ・キー=>値に、ハッシュ値hにコンテンツ対応のテーブルは、操作方法を表します
メモリ
/ * 値は、*ハッシュテーブルに対応するキーを1つの(整数)だけインクリメントされる *最初のパラメータ辞書名 2番目のパラメータは名前キーである*、 * 3番目のパラメータは振幅の増分です。キーがテーブルに存在しない場合は、自動的にキーに加え、から増加の値を設定されています * * / $をRedisの - > hIncrBy(,. 1、 'hashtest'」1' ); // インクリメント値指定されたハッシュテーブルキーに $のRedis - > hIncrByFloat( 'hashtest'、 '2'、1.5);
得ます
// hashtestで指定された値を取得します $のRedis - ( 'hashtest'、 ''> hGet ); // ハッシュテーブル内のすべてのキー(鍵)は、配列を返します $をRedisの - > hKeys(「hashtest 「); // 配列を返す、ランダムな順序でテーブル内のすべてのハッシュ値を取得 $のRedisを - > hVals(」hashtest " ); //は、配列を返す、ランダムな順序で、ハッシュテーブル内のキーと値のすべてを取得 $のRedis - > hGetAll(「hashtest」); // ハッシュテーブルのキーの数取得 $ Redisの - >さhLen(「hashtestを」); // 、2番目のパラメータが配列である配列を返す、キーに対応する複数のバルク値を取得します Redisの$ - > hMGet( 'hashtest'、[1,2,3 ]); // ハッシュテーブルのキーが存在するか否かを判定し、リターンが存在し、空の不在返す $ Redisのを - > hExists( 'hashtest'、 '2020' );
[削除]
// ハッシュテーブルは、キー、成功を返す真である、またはキーがテーブルに戻り存在しない場合は、true $のRedis - > HDEL(「hashtest」、」1' );
セットコレクション
セットのRedisの文字列型は、順不同のコレクションです。これは、重複データの収集が表示されないことを意味し、コレクションの唯一のメンバーです。32番目の最大のメンバーのセット-12(4,294,967,295、各セット40万人を格納することができる)。オペレーションセットの代表方法
メモリ
/ * *成功したリターンの数を追加し、設定値を設定するために添加し、それ以外の戻り値は0 最初のパラメータは、コレクションセットの名前である* *二番目のパラメータは、新しい値に設定されている、すなわち、挿入されている:の新しいセットを挿入します値 * / // 戻ります1。 $ Redisの - >サッド( 'settest1'、 'A' ); // 戻ります1つの。 $ Redisの - >サッド( 'settest1'、 'BB'、 'C' ); // 0を返します $ Redisの - >サッド( 'settest1'、 'A' ); $のRedis - >サッド( 'settest2'、 'C' ); // 4.0 Redisの延長上に複数の値を追加しますが、サポートされて Redisの$を - 「settest(> sAddArray '[' C '' D '' EE「])。
得ます
// すべてのセットにすべての要素を取得します $のRedis - > sMembers( 'settest1'を); //は、要素が代わりに空返すので、返されたセット1のメンバーであるかどうかを決定する $ Redisのを - > sIsMember( 'settest1'、 'B-B' ); // コレクション内の要素の数を確認してください $ Redisのを - > SCARD( 'settest1' ); //は、二組の交点を返す $ Redisのを - >シンター( 'settest1'、 'settest2' ); // 交差点settest1とsettest2コレクションsettest3に $のRedis > sInterStore( 'settest3'、 'settest1'、 'settest2' - ;) //は、二組の和集合を返す $ Redisのを - > SUNION( 'settest1'、 'settest2' ); // 組合settest1とsettest2セットsettest4に置か $のRedis - > sUnionStore( 'settest4'、 'settest1'、 'settest2'); // 戻りの二組の差集合 $ Redisの - > sdiffの( 'settest1'、 'settest2' ); // セット差settest2のsettest1とコレクションsettset5に $のRedis - > sDiffStore( 'settest5'、 'settest1'、 'settest2') ;
[削除]
// 値セットを削除するには $ Redisのを - > SREM( 'settest1'、 'A' ); // 削除の複数の値 $のRedis - > SREM( 'settest1'、 'AA'、 'B-B' ); / / コレクションを返す要素のランダムな要素の除去 $のRedis - > SPOP(「settest1」);
ソートセットはセットを注文しました
Redisのセットを注文し、同じコレクションも、文字列型要素の集合であり、重複するメンバーを許可していません。違いは、各要素がダブルスコアに関連付けされるということです。4,294,967,295( - それは1の32乗にメンバーの最大数を設定して繰り返すことができるユニークであるコレクションのメンバーのスコアによって設定された順序大ソートする小のメンバーへのRedisが、得点(スコア) 、各セット)は4000万人以上のメンバーを格納することができます。zは順序付きコレクションの操作方法です。
メモリ
/ * * ZTESTは、スコア値が整数または倍精度浮動小数点値であってもよいし、順序集合の値に追加さ 実行されたとき* Zadd、そうでない場合は、新しい順序付きセットを作成し、注文しなく他がある場合コレクション型、エラーが返されたとき * / $のRedis - > Zadd( '2019'、1 ,. 'ZTEST' ); $のRedis - > Zadd( '2019'、2 'ZTEST' ); / * *要素が存在する場合場合、この要素のスコアを更新し、正しい位置に要素ことを確実にするために要素を再挿入。 *新しいしかし、添加していない$ redis-> zadd( 'ZTEST' 、 1のスコア、値1は、2得点、値2); *複数の値の順序付きコレクションを挿入する * / $のRedis - > Zadd( 'ZTEST'図2に示すように、 '2020'、3、 '2021'、4、 '2022' ); // 指定された値は、2033年2つの増加 $ Redisの - > Zadd( 'SET'、2、 '2022')。
得ます
/ * *順序集合の指定範囲を取得し、それが小から大部分に、配列を返す 最初のパラメータ*:名前順序集合 * 2番目のパラメータ:開始位置 *第三のパラメータ:(含む終了位置最後から二番目のいくつかの負の代わりに位置)、 *第四パラメータ:オプション、ブール値、持つかのスコアなしで、デフォルトはfalse * / // スコアで並べ替えではなく、混合数 $のRedis - > Zレンジザ・(「ZTESTは」 、0,1 ); // 得点、得点をソートして運ぶことで $ Redisのを - > Zの範囲は(0,1、 'ZTEST' 真の); // 順序集合の指定した範囲を取得します。配列を返します。降順スコア $ Redisの > zRevRange( 'ZTEST'、1,2 - ); // 指定された要素のスコアを取得 $ Redisのを - > zScore( 'ZTEST'、 '2019' ); // 要素の数が格納されます Redisの$ - > zCard( 'ZTEST' ); - > ZCOUNT( 'ZTEST'、2,5 ); // 2-3要素ではなく、分数の間の戻り率が、Zレンジザで表示 $ Redisの - > zRangeByScore( 'ZTEST'、2,3 ); // バック要素間の画分2-3、混合番号表示方法は、同じz範囲である $のRedis - > zRangeByScore([ 'withscore' => 'ZTEST'、2,3、真へ ])。
[削除]
// 指定されたメンバーを削除 $ Redisのを( '2019'、 'ZTEST'> zRem - ;) //は要素2-3、削除されたリターンの数の間の画分を除去 $のRedis - > zRemRangeByScore( 'ZTEST'、2 、3);
他の一般的に使用される方法と(拡張)
関連キーを探します
/ * 条件は、対応するキー(キー)によって検出された*、サポート文字列の連結(戻り値は、データを識別しませんでしたまた、空の配列を返す場合でも、配列である) 、任意の長さの代わりに、* *は任意の文字を?任意の文字の長さ * * / // キーを見つけるには、Aに等しい $のRedis - >キー( 'A' ); // キーを見つけ、で始まる、背中の任意の値 $のRedis - >キー(「A * ' ;) //は、中間リンクを見つけることは、Bキーを備え、 $ Redisの * B *' - >キー(' ;) // 3の長さ、および$を= Cキーの最初の文字を見つける; $ Redisのを - >キー(「C ??」); // 使用後にキーがループに使用プラス(取得されてもよい)のキーが関連付けられた値に対応する取得する $ Redisの - >キー($「*」);
有効期限を設定します
/ * *キーが有効で、秒数を返します残り時間を確認してください。 * NOの場合有効期限、-1 *このキーの値がない、戻る-2ではない * / $ Redisの - > TTL( 'SET')。
チェックの有効期限
/ * *秒数が満了 *(秒)特定のタイムスタンプに満了する場合 * / $ Redisの - ( 'SET'、120)期限切れ>。