redis_PHP チュートリアルでハッシュおよび zset 型データを操作するための PHP のメソッドとコード例

WBOY
リリース: 2016-07-13 10:26:43
オリジナル
881 人が閲覧しました

前回のブログでは主に文字列型、リスト型、セット型と、以下のハッシュ型とzset型について説明しました

1,hset

説明: ハッシュ テーブル キーのフィールド field の値を value に設定します。キーが存在しない場合は、新しいハッシュ テーブルが作成され、HSET 操作が実行されます。フィールドがハッシュ テーブルにすでに存在する場合、古い値は上書きされます。
パラメータ: キーフィールドの値
戻り値: field がハッシュ テーブル内の新しいフィールドで、値が正常に設定された場合、1 が返されます。ハッシュ テーブル内のフィールドがすでに存在し、古い値が新しい値で上書きされている場合は、0 が返されます。

2,hsetnx

説明: フィールド field が存在しない場合にのみ、ハッシュ テーブル キーのフィールド field の値を value に設定します。ドメインフィールドがすでに存在する場合、この操作は無効です。キーが存在しない場合は、新しいハッシュ テーブルが作成され、HSETNX コマンドが実行されます。
パラメータ: キーフィールドの値
戻り値: 設定が成功した場合は1を返します。指定されたドメインがすでに存在し、何も操作が実行されなかった場合は、0 が返されます。

3、ゲット

説明: ハッシュ テーブル キーの指定されたフィールドの値を返します。
パラメータ: キーフィールド
戻り値: 指定されたフィールドの値。指定されたドメインが存在しない場合、または指定されたキーが存在しない場合は、nil が返されます。

4,hmset

説明: 複数のフィールドと値のペアを同時にハッシュ テーブル キーに設定します。このコマンドは、ハッシュ テーブルにすでに存在するフィールドを上書きします。キーが存在しない場合は、空のハッシュ テーブルが作成され、HMSET 操作が実行されます。
パラメータ: キーフィールド値 [フィールド値 ...]
戻り値: コマンドが正常に実行された場合は、OK が返されます。キーがハッシュテーブル(ハッシュ)型でない場合はエラーを返します。

5、うーんゲット

説明: ハッシュ テーブル キー内の 1 つ以上の指定されたフィールドの値を返します。指定されたフィールドがハッシュ テーブルに存在しない場合は、nil 値が返されます。存在しないキーは空のハッシュ テーブルとして扱われるため、存在しないキーに対する HMGET 操作は nil 値のみを含むテーブルを返します。
パラメータ: キーフィールド [フィールド ...]
戻り値: 指定されたドメインに関連付けられた複数の値を、要求されたドメイン パラメーターと同じ順序で並べて含むテーブル。

6,hgetall

説明: ハッシュ テーブル キーのすべてのフィールドと値を返します。戻り値では、各フィールド名の直後にフィールドの値が続くため、戻り値の長さはハッシュ テーブルのサイズの 2 倍になります。
パラメータ: キー
戻り値: ハッシュ テーブルのドメインとドメイン値をリスト形式で返します。 キーが存在しない場合は、空のリストが返されます。

7、hdel

説明: ハッシュ テーブル キー内の 1 つ以上の指定されたフィールドを削除します。存在しないフィールドは無視されます。
パラメータ: キーフィールド [フィールド ...]
戻り値: 無視されたドメインを除く、正常に削除されたドメインの数。

8、ヘレン

説明: ハッシュ テーブル キー内のフィールドの数を返します。
パラメータ: キー
戻り値: ハッシュ テーブル内のフィールドの数。キーが存在しない場合は0を返します。

9,hexists

説明: 指定されたドメイン フィールドがハッシュ テーブル キーに存在するかどうかを確認します。
パラメータ: キーフィールド
戻り値: ハッシュ テーブルに指定されたフィールドが含まれている場合は、1 を返します。ハッシュ テーブルに指定されたフィールドが含まれていない場合、またはキーが存在しない場合は、0 が返されます。

10,ヒンクラビー

説明: ハッシュ テーブル キーのフィールド field の値に増分を追加します。増分は負の値にすることもできます。これは、指定されたドメインを減算することと同じです。
パラメータ: キーフィールドの増分
戻り値: HINCRBY コマンド実行後のハッシュ テーブル キーのフィールドの値。

11,hkeys

説明: ハッシュ テーブル キーのすべてのフィールドを返します。
パラメータ: キー
戻り値: ハッシュ テーブル内のすべてのフィールドを含むテーブル。キーが存在しない場合は、空のテーブルが返されます。

12、フヴァルス

説明: ハッシュ テーブル キーのすべての値を返します。
パラメータ: キー
戻り値: ハッシュ テーブル内のすべての値を含むテーブル。キーが存在しない場合は、空のテーブルが返されます。

上記 12 のメソッドのコード例:

コードをコピーします コードは次のとおりです:

$redis = 新しい redis(); 
$redis->connect('192.168.1.108', 6379); 
$redis->delete('test'); 
$redis->hset('test', 'key1', 'hello'); 
echo $redis->hget('test', 'key1');     //結果:こんにちは
 
echo "
"; 
$redis->hSetNx('test', 'key1', 'world'); 
echo $redis->hget('test', 'key1');   //結果:こんにちは
 
$redis->delete('test'); 
$redis->hSetNx('test', 'key1', 'world'); 
echo "
"; 
echo $redis->hget('test', 'key1');   //結果:世界
 
echo $redis->hlen('test');   //結果:1
var_dump($redis->hdel('test','key1'));  //結果:bool(true)
 
$redis->delete('test'); 
$redis->hSet('test', 'a', 'x'); 
$redis->hSet('test', 'b', 'y'); 
$redis->hSet('test', 'c', 'z'); 
print_r($redis->hkeys('test'));  //結果:Array ( [0] => a [1] => b [2] => c )
 
print_r($redis->hvals('test'));  //結果:Array ( [0] => x [1] => y [2] => z )
 
print_r($redis->hgetall('test'));  //結果:Array ( [a] => x [b] => y [c] => z )
 
var_dump($redis->hExists('test', 'a'));  //結果:bool(true)
 
$redis->delete('test'); 
echo $redis->hIncrBy('test', 'a', 3);    //結果:3
echo $redis->hIncrBy('test', 'a', 1);    //結果:4
 
$redis->delete('test'); 
var_dump($redis->hmset('test', array('name' =>'tank', 'sex'=>"man"))); //結果:bool(true)
print_r($redis->hmget('test', array('name', 'sex')));  //結果:配列 ( [名前] => タンク [性別] => 男 )
?> 

13、ザッド

説明:
1 つ以上の要素を追加します。要素が既に存在する場合は、その socre 値を更新します
順序付きセットは順序付けされていますが、セットでもあるため、重複した要素を追加しても
だけが発生します。 元の要素のスコア値を更新します
パラメータ:

スコア: ダブル
値: 文字列
戻り値: 1 または 0

14,zrange

説明: 特定の範囲内で並べ替えられた要素を取得します。0 は最初の要素を表し、1 は 2 番目の要素を表します。 -1 は最後のものを表し、-2 は最後から 2 番目のものを表します...
パラメータ:

開始: 長い
最後: 長い
withscores: bool = false
戻り値: 配列

15、zdelete、zrem

説明: 指定されたメンバーを順序付きセットから削除します。
パラメータ:

メンバー
戻り値: 1 または 0

16,zrevrange

説明: キーに対応する順序付きセット内の指定された範囲内のすべての要素を返します。これらの要素は、スコアの高いものから低いものの順に配置されています。同じスコアを持つ要素は、辞書編集順に降順に並べ替えられます。このコマンドは ZRANGE に似ていますが、このコマンド内の要素の順序が前者とは異なります。
パラメータ:

開始: 長い
最後: 長い
withscores: bool = false
戻り値: 配列

17、zrangebyscore、zrevrangebyscore

説明: スコアが最小と最大の間のキーに対応するソートされたセット内のすべての要素を返します (スコアが最小または最大に等しい要素を含む)。要素はスコアの低いものから高いものの順に並んでいます。要素のスコアが同じ場合、辞書順に並べ替えられます。
オプションの LIMIT オプションを使用すると、特定の範囲内で一致する要素を取得できます。オフセット値が大きい場合、返される要素を取得する前にソートされたコレクションを走査する必要があるため、O(N) の時間計算量が増加します。オプションの WITHSCORES を使用すると、要素のスコアを要素とともに返すことができます。このオプションは Redis 2.0 以降で使用できます。
パラメータ:

開始: 文字列
終了: 文字列
オプション: 配列
戻り値: 配列

18,zcount

説明: キーに対応する順序付きセット内の最小値と最大値の間の要素の数を返します。
パラメータ:

開始: 文字列
終了: 文字列
戻り値: 配列の長さ

19、zremrangebyscore、zreletrangebyscore

説明: キーに対応する順序付きセット内の最小値と最大値の間の値を持つすべての要素 (エンドポイントを含む) を削除します。バージョン 2.1.6 以降、間隔エンドポイントの min と max を除外できます。これは、ZRANGEBYSCORE の構文と同じです。
パラメータ:

start: double または "+inf" または "-inf" 文字列
end: double または "+inf" または "-inf" 文字列
戻り値: 削除された要素の数

20、zremrangebyrank、zdeleterangebyrank

説明: キーに対応する順序付きセット内のランク値が start と stop の間にあるすべての要素を削除します。 start と stop はどちらも 0 から始まり、どちらも負の値にすることができます。インデックス値が負の場合、オフセット値はソートされたセット内で最も高いスコア値を持つ要素から始まることを示します。たとえば、-1 はスコアが最も高い要素を表し、-2 はスコアが 2 番目に高い要素を表し、以下同様となります。
パラメータ:

開始: 長い
最後: 長い
戻り値: 削除された要素の数

21、zサイズ、zカード

説明: キーに対応する順序付きセットに格納されている要素の数を返します。
パラメータ: キー
戻り値: 要素数

22,zスコア

説明: キーに対応する順序付きセット内のメンバーのスコア値を返します。ソートされたセットにメンバーが存在しない場合は、null が返されます。
パラメータ: 主要メンバー

23、zrank、zrevrank

説明: キーに対応する順序付きセット内のメンバー要素のインデックス値を返します。要素はスコアに従って低いものから高いものへと並べられます。ランク値 (またはインデックス) は 0 ベースです。これは、スコア値が最も低い要素のランク値が 0 であることを意味します。 ZREVRANK を使用して、高位から低位に並べられた要素のランク (またはインデックス) を取得します。
パラメータ: 主要メンバー
戻り値: 数値

24、ジンクルビー

キーに対応する順序付きセットのメンバー要素の値に増分を追加します。指定されたメンバーが存在しない場合、要素が追加され、その初期スコアが増分されます。キーが存在しない場合は、唯一の要素メンバーを含む新しい順序付きリストが作成されます。キーに対応する値が順序付きリストでない場合、エラーが発生します。指定されたスコアの値は、数値に変換できる文字列である必要があり、倍精度浮動小数点数を受け入れます。また、スコア値を下げる負の値を指定することもできます。
パラメータ: キー値メンバー
戻り値: 文字データ

25、ズニオン

説明: キーに対応する numkeys 順序付きセットのコレクションを計算し、結果を destination に保存します
パラメータ: keyOutput arrayZSetKeys arrayWeights 集約関数
戻り値: ユニオン配列

26、ジンター

説明: キーに対応する numkeys 順序付きセットの交差を計算し、結果を destination に保存します
パラメータ: keyOutput arrayZSetKeys arrayWeights 集約関数
戻り値: 交差配列


13-26 のコード例:

コードをコピーします コードは次のとおりです:

$redis = 新しい redis(); $redis->connect('192.168.1.108', 6379); $redis->delete('テスト'); $redis->zadd('test', 1, 'val1'); $redis->zadd('test', 0, 'val2'); $redis->zadd('test', 3, 'val3');
print_r($redis->zrange('test', 0, -1)); //結果: Array ( [0] => val2 [1] => val1 [2] => val3 )

$redis->zdelete('test', 'val2'); print_r($redis->zrange('test', 0, -1)); //結果: Array ( [0] => val1 [1] => val3 )

$redis->zadd('test',4, 'val0'); print_r($redis->zrevrange('test', 0, -1)); //結果: Array ([0] => val0 [1] => val3 [2] => val1 )
print_r($redis->zrevrange('test', 0, -1,true)); //結果: Array ([val0] => 4 [val3] => 3 [val1] => 1 )

エコー "
"; $redis->zadd('key', 0, 'val0'); $redis->zadd('key', 2, 'val2'); $redis->zadd('key', 10, 'val10');
print_r($redis->zrangebyscore('key', 0, 3, array('limit' => array(1, 1),'withscores' => TRUE))); //結果: Array ( [ val2] => 2 )
print_r($redis->zrangebyscore('key', 0, 3, array('limit' => array(1, 1)))); //結果: Array ( [0] => val2 )

echo $redis->zcount('key', 0, 3) //結果: 2
;
$redis->zremrangebyscore('key', 0, 3); print_r($redis->zrange('key', 0, -1)); //結果: 配列 ([0] => val10)

echo $redis->zsize('key'); //結果: 1

$redis->zadd('key', 2.5, 'aaaa'); echo $redis->zscore('key', 'aaaa') //結果: 2.5

echo $redis->zrank('key', 'aaaa') //結果: 0
echo $redis->zrevrank('key', 'aaaa') //結果: 1

$redis->delete('key');
echo $redis->zincrby('key', 2, 'aaaa') //結果: 2
echo $redis->zincrby('key', 1, 'aaaa') //結果: 3

$redis->delete('key'); $redis->delete('テスト');
$redis->zadd('key', 0, 'val0'); $redis->zadd('key', 1, 'val1'); $redis->zadd('key', 4, 'val2'); $redis->zadd('test', 2, 'val2'); $redis->zadd('test', 3, 'val3'); $redis->zunion('k01', array('key', 'test')); print_r($redis->zrange('k01',0, -1)); //結果: Array ( [0] => val0 [1] => val1 [2] => val3 [3] => val2)

$redis->zunion('k03', array('key', 'test'), array(5, 1)); print_r($redis->zrange('k03',0, -1)); //結果: Array ( [0] => val0 [1] => val3 [2] => val1 [3] => val2)

$redis->zinter('k02', array('key', 'test')); print_r($redis->zrange('k02',0, -1)); //結果: Array ( [0] => val2 )
?>






http://www.bkjia.com/PHPjc/824605.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/824605.html

技術記事

前回のブログでは、主に文字列型、リスト型、セット型について説明しました。 以下のハッシュ型と zset 型 1、hset の説明: ハッシュ テーブルのフィールドの値を key に設定します。キーが存在しない場合は...





関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート