Redisson 中で Redis の 5 つの基本データ型を操作する方法
Redis は以下の 5 つのデータ型をサポートしています:
- string(文字列)
- hash(ハッシュ)
- list(リスト)
- set(セット)
- zset (sorted set:ソート済みセット)
string#
string は Redis の最も基本的なデータ型であり、string 型はバイナリセーフです。つまり、Redis の string は任意のデータを含むことができます。例えば、jpg 画像やシリアライズされたオブジェクトなどです。string 型は Redis の最も基本的なデータ型であり、string 型の値は最大で 512MB まで格納することができます。
Redisson は Redis の文字列データ構造を RBucket としてカプセル化し、RedissonClient の getBucket (key) メソッドを使用して RBucket オブジェクトのインスタンスを取得します。このインスタンスを使用して値を設定したり、値と有効期間を設定したりすることができます。
RBucket<Object> rBucket = redissonClient.getBucket("k1");
rBucket.set("v1",500, TimeUnit.MILLISECONDS);
String sValue = (String) rBucket.get();
hash#
Redis のハッシュはキーと値のペアのコレクションです。Redis のハッシュは、string 型のフィールドと値のマッピングテーブルです。ハッシュはオブジェクトの保存に特に適しています。ハッシュはオブジェクトの保存に適しており、データベースのようにプロパティを更新するためにオブジェクト全体を取り出してシリアライズし、変更後に再度シリアライズして保存する必要はありません。例えば、ユーザーのプロパティの保存、読み取り、変更などです。
Redisson は Redis の文字列データ構造を RMap としてカプセル化しました。
final RMap rMap = redissonClient.getMap("m1");
rMap.put("id","1");
rMap.put("name","jk");
rMap.expire(500,TimeUnit.MILLISECONDS);
String mValue = (String) rMap.get("name");
list#
Redis のリストは単純な文字列のリストであり、挿入順に並べ替えられます。要素をリストの先頭(左側)または末尾(右側)に追加することができます。リストは最新のメッセージランキングに使用できます。例えば、フレンドのタイムラインなどの最新のメッセージランキングやメッセージキューなどです。
Redisson は Redis の文字列データ構造を RList としてカプセル化しました。
final RList<Object> rList = redissonClient.getList("l1");
rList.add("tom");
rList.add("king");
rList.add("jack");
rList.expire(500,TimeUnit.MILLISECONDS);
String lValue = (String) rList.get(1);
set#
Redis のセットは string 型の順不同のコレクションです。セットはハッシュテーブルを使用して実装されているため、追加、削除、検索の複雑さはすべて O (1) です。セットは共通の友達を処理するために適しており、一意性を利用してウェブサイトへのアクセスの独立した IP アドレスを統計するために使用することもできます。また、タグに基づいて共通の友達を推薦する場合にも使用できます。
Redisson は Redis の文字列データ構造を RSet としてカプセル化しました。
final RSet<Object> rSet = redissonClient.getSet("s1");
rSet.add("java");
rSet.add("javascript");
rSet.expire(500,TimeUnit.MILLISECONDS);
zset#
Redis の zset は set と同様に、string 型の要素のコレクションであり、重複するメンバーは許可されません。異なる点は、各要素が double 型のスコアに関連付けられていることです。Redis はスコアによって集合のメンバーを昇順にソートします。zset のメンバーは一意ですが、スコア(score)は重複することがあります。zset はランキングや重み付きメッセージキューに適しています。
Redisson は Redis の文字列データ構造を RScoredSortedSet としてカプセル化しました。
RScoredSortedSet<Object> rScoredSortedSet = redissonClient.getScoredSortedSet("zs1");
rScoredSortedSet.addScore("tom",3.0);
rScoredSortedSet.addScore("king",3.5);