PHP+Redis: ハッシュ ハッシュ型

高洛峰
リリース: 2016-10-20 14:04:04
オリジナル
2674 人が閲覧しました

3. ハッシュの種類

概要

ハッシュは小規模な Redis データベースに似ています

ハッシュには複数のキーと値のペアを含めることができます

ハッシュの各キーは繰り返すことができず、順序付けされていないものでも構いません

。文字列または数値です

数値の場合、インクリメントまたはデクリメント操作を実行できます

ハッシュ構造

以下の構造では、ユーザーはキー名を表し、複数の異なるキーと値のペアを含めることができます

[
    "user":[
        "name1":"yanying1",
        "name2":"yanying2",
        "name3":"yanying3"
    ]
]
ログイン後にコピー

ハウツー

PHP+Redis: ハッシュ ハッシュ型

デモ (コマンドライン + PHP デモ)

コマンドライン:

まず、キーと値のペアをハッシュに追加します。成功した場合は 1 を返し、キーが既に存在する場合は 0 を返します

hset hash-key sub-key1 value1 // 返回 1
ログイン後にコピー

存在しないキーと値のペアを追加します

hset hash-key sub-key2 value2 // 返回 1
ログイン後にコピー

この時点で、キー sub-key1 と sub-key2 は既にハッシュに存在します。次に、「同一のキー sub-key1 をハッシュに追加」を追加して、何が起こるかを確認します。

hset hash-key sub-key1 value1 // 返回 0,由于该键已经存在
ログイン後にコピー

以下では、hget を通じて指定されたキー sub-key1 の値を取得します。

hget hash-key sub-key1 // "value1"
ログイン後にコピー

値の取得に成功しました。追加されたすべての要素を取得して、どの値が追加されたのかを確認してみましょう

hgetall hash-key
ログイン後にコピー
ログイン後にコピー

結果は次のとおりです。最初の結果は最初のキーと値のペアのキー、2 番目の結果はキーと値のペアの値というように、2 つごとが 1 つのグループであることがわかりました。

"sub-key1""value1""sub-key2""value2"
ログイン後にコピー

キーを削除してみます。キーが以前にハッシュに存在していた場合は 1 が返されることがわかります。それ以外の場合は 0 が返されます。

hdel hash-key sub-key1 // 该键之前存在于散列,返回1
ログイン後にコピー

もう一度 sub-key1 を削除してみます。 , 存在しないキーを削除すると、返される結果は 0 であることがわかります

hdel hash-key sub-key1
ログイン後にコピー

何が残っているかを確認するために、すべてのキーと値のペアを再度取得します。

hgetall hash-key
ログイン後にコピー
ログイン後にコピー

結果は、キーと値のペアが削除されたばかりです

"sub-key1""value1"
ログイン後にコピー

PHP バージョンのデモ

最初のステップは、Redis データベースをリンクすることです

$redis = new Redis();$redis->connect('127.0.0.1', 6379);
ログイン後にコピー

最初にキーを挿入します。 -値のペアをハッシュキーハッシュに変換します。 1 は挿入が成功したことを意味し、0 の要素はすでに存在していることを意味します

$redis->hset('hash-key','sub-key1','value1'); // int 1,元素插入成功,之前不存在该键
ログイン後にコピー

同じキーと値のペアを再度挿入します

$redis->hset('hash-key','sub-key1','value1'); // int 0,元素插入失败,该键已经存在
ログイン後にコピー

次のデモでは、引き続き他の値を挿入します

$redis->hset('hash-key','sub-key2','value2'); // int 0
ログイン後にコピー

今度は hget を使用してキーに対応する値。 sub-key2 の値を取得してみます。

$redis->hget('hash-key','sub-key2'); // 'value2'
ログイン後にコピー

取得後、hgetall を使用して、挿入したばかりのすべての値を取得して、どのキーと値のペアが含まれているかを確認します

$redis->hgetall('hash-key');
ログイン後にコピー
ログイン後にコピー

結果は、完全なキー値を含む配列になります

array (size=2)  'sub-key1' => string 'value1' (length=6)  'sub-key2' => string 'value2' (length=6)
ログイン後にコピー

すべてのキーの値を表示したら、キーの 1 つを削除してみましょう。キーが以前にハッシュに存在していた場合は 1 を返します。それ以外の場合は 0 を返します

$redis->hdel('hash-key','sub-key1'); // 该键之前存在,返回int 1
ログイン後にコピー

sub-key1 キーを再度削除しようとすると、0 が返されることがわかります。これは、キーがセットに存在せず、削除に失敗しました

$redis->hdel('hash-key','sub-key1'); // 该键不存在,返回int 0
ログイン後にコピー

次に、hgetall を使用してハッシュ

$redis->hgetall('hash-key');
ログイン後にコピー
ログイン後にコピー

に残っているすべてのキーと値のペアを確認し、1 つのキーと値のペアを含む配列のみが返されることを確認します。

えー

その理由は、sub-key1 が削除されたばかりだからです


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!