Redis
 Computer >> コンピューター >  >> プログラミング >> Redis

Redis Jedis入門:Jedisライブラリでセット値に対するCRUD操作を実行する方法

このチュートリアルでは、Javaクライアントライブラリ「Jedis」を使用して、Redisのセット(Set)値に対してCRUD操作(作成・読み取り・更新・削除)を実行する方法を詳しく解説します。

Jedisライブラリとは

Jedisは、Redisデータストア向けのJavaクライアントライブラリです。軽量で非常に使いやすく、Redis 2.8.x、3.x.x以降のバージョンと完全な互換性があります。シンプルなAPI設計により、JavaアプリケーションからRedisを手軽に操作できるのが特徴です。

セット(Set)値とは

セットとは、重複しない一意な要素を格納する順序なしコレクションです。Redisではセットを値として保存でき、さまざまなRedisコマンドを使ってセットの保存・管理・取得を行うことができます。セットの要素の追加や削除、集合演算なども柔軟に実行可能です。

プロジェクトのセットアップ

お好みのIDEでシンプルなMavenプロジェクトを作成し、pom.xmlファイルに以下の依存関係を追加してください。

<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>3.0.1</version>
</dependency>

最新版のJedisライブラリについては、Mavenセントラルリポジトリで確認できます。

Redisのインストール

動作確認には最新版のRedisが必要です。公式ドキュメントを参照して、使用しているOSに合わせてRedisをインストールしてください。

Jedis接続の確立

JavaコードからRedisに接続するには、Jedisクラス(redis.clients.jedis.Jedis)のオブジェクトを作成します。

Jedis jedis = new Jedis();

ローカルマシン上でデフォルトポート(6379)を使用してRedisサービスを起動している場合は、デフォルトコンストラクタでそのまま接続できます。それ以外の場合は、正しいホスト名とポート番号を引数としてコンストラクタに渡す必要があります。

作成と追加(Create & Add)

saddメソッドは、セット値に1つ以上の要素を挿入します。指定したキーのセットが存在しない場合は、挿入操作を実行する前に空のセットを持つキーが自動的に作成されます。

/* 新しいセット <set-1> を作成し、文字列 a, b, c, d を挿入 */
jedis.sadd("set-1", "a", "b", "c", "d");

/* 新しいセット <set-2> を作成し、文字列 1, 2 をバイト配列で挿入 */
jedis.sadd("set-2".getBytes(), "1".getBytes(), "2".getBytes());

メンバーの存在チェック

sismemberメソッドは、指定した要素がセットのメンバーであるかどうかを判定します。

/* ab が <set-1> のメンバーかどうかをチェック */
jedis.sismember("set-1", "ab");

/* 1 が <set-2> のメンバーかどうかをチェック */
jedis.sismember("set-2".getBytes(), "1".getBytes());

削除と取得(Remove & Return)

spopメソッドは、キーに保存されたセット値から1つ以上のランダムな要素を削除し、その要素を返します。

/* <set-1> からランダムな要素を1つ削除して返す */
jedis.spop("set-1");

/* <set-1> からランダムな要素を3つ削除して返す */
jedis.spop("set-1", 3);

サイズの取得

scardメソッドは、キーに保存されたセット値の要素数(サイズ)を取得します。

/* <set-1> のサイズを返す */
jedis.scard("set-1");

削除(Delete)

sremメソッドは、セット値から1つ以上の指定した要素を削除します。

/* <set-1> から a, b, c の要素を削除 */
jedis.srem("set-1", "a", "b", "c");

/* セットから 2, 3 の要素をバイト配列で削除 */
jedis.srem("set-1".getBytes(), "1".getBytes(), "b".getBytes());

全要素の取得

smembersメソッドは、セット値のすべての要素を取得します。

/* <set-1> のすべての要素を返す */
jedis.smembers("set-1");

和集合(Union)

セット値に対して和集合演算を実行するには、以下の2つのメソッドがあります。

  1. sunion:2つ以上のセットに対して和集合演算を実行し、結果を配列として返します。
    /* <set-1> と <set-2> の和集合を取得 */
    jedis.sunion("set-1", "set-2");
  2. sunionstore:2つ以上のセットに対して和集合演算を実行し、結果を新しいセット値として保存します。
    /* <set-1> と <set-2> の和集合を宛先セット <set-3> に保存 */
    jedis.sunionstore("set-3", "set-1", "set-2");

積集合(Intersection)

セット値に対して積集合演算を実行するには、以下の2つのメソッドがあります。

  1. sinter:2つ以上のセットに対して積集合演算を実行し、結果を配列として返します。
    /* <set-1> と <set-2> の積集合を取得 */
    jedis.sinter("set-1", "set-2");
  2. sinterstore:2つ以上のセットに対して積集合演算を実行し、結果を新しいセット値として保存します。
    /* <set-1> と <set-2> の積集合を宛先セット <set-3> に保存 */
    jedis.sinterstore("set-3", "set-1", "set-2");

差集合(Difference)

セット値に対して差集合演算を実行するには、以下の2つのメソッドがあります。

  1. sdiff:2つ以上のセットに対して差集合演算を実行し、結果を配列として返します。
    /* <set-1> と <set-2> の差集合を取得 */
    jedis.sdiff("set-1", "set-2");
  2. sdiffstore:2つ以上のセットに対して差集合演算を実行し、結果を新しいセット値として保存します。
    /* <set-1> と <set-2> の差集合を宛先セット <set-3> に保存 */
    jedis.sdiffstore("set-3", "set-1", "set-2");

参考資料

  1. Redis公式ドキュメント:Set コマンド

以上が、Jedisライブラリを使用してRedisのセット値に対してCRUD操作を実行する方法の解説でした。この記事が役に立った場合は、ぜひコメント欄でご意見をお聞かせください。また、他の方にもシェアしていただければ幸いです。

  1. Redisでキーに文字列値を設定する方法を徹底解説 – SET / SETNX / SETEX / PSETEX コマンドの使い方

    このチュートリアルでは、Redisのデータストア上で指定したキーに文字列値を設定する方法について、SET、SETNX、SETEX、PSETEX の4つのコマンドを使って詳しく解説します。それぞれのコマンドの動作の違いや使い分けのポイントもあわせて紹介するので、Redisの文字列操作をマスターしたい方はぜひ参考にしてください。 SETコマンドとは SETコマンドは、指定したキーに文字列値を設定するための最も基本的なコマンドです。キーがすでに存在する場合は、その型に関係なく値が上書きされます。また、キーに設定されていた以前の有効期限(TTL)も削除される点に注意が必要です。 SETコマンドのオプシ

  2. JedisライブラリでRedisのPub/Subシステムを実装する方法【Javaサンプルコード付き】

    このチュートリアルでは、Java向けクライアントライブラリ「Jedis」を使用して、RedisのPub/Sub(パブリッシュ/サブスクライブ)システムを実装する方法を解説します。 Jedisライブラリとは Jedisは、Redisデータストア用のJavaクライアントライブラリです。軽量で非常に扱いやすく、Redis 2.8.x、3.x.x以降のバージョンと完全な互換性があります。シンプルなAPI设计で、Redisの各種コマンドを直感的に操作できるのが特徴です。 RedisのPub/Subシステムとは Redisは、Publish/Subscribe(パブリッシュ/サブスクライブ)型のメッセージ