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

Redis Jedis –jedisライブラリを使用してリスト値に対してCRUD操作を実行する方法

このチュートリアルでは、Jedisライブラリを使用してリスト値に対してCRUD操作を実行する方法について学習します。

ジェダイライブラリ

Jedisは、redisデータストア用のJavaクライアントライブラリです。小さくて非常に使いやすく、redis 2.8.x、3.x.x以降のデータストアと完全に互換性があります。 jedisライブラリの詳細についてはこちらをご覧ください。

リスト値

リストは、挿入順序でソートされた文字列のシーケンスです。 Redisでは、リストを値として保存でき、さまざまなredisコマンドを使用して、redisデータベースに保存されているリスト値を保存、管理、および取得できます。リストコマンドの詳細については、こちらをご覧ください。

プロジェクトの設定

お気に入りのIDEで単純なMavenプロジェクトを作成し、以下の依存関係を pom.xmlに追加します。 ファイル。

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

jedisライブラリの最新バージョンについては、このページを確認してください。

Redisのインストール

最新バージョンのRedisをインストールする必要があります。 redisのインストールの詳細については、このページを確認してください。

ジェダイコネクション

ジェダイのオブジェクトを作成します ( redis.clients.jedis.Jedis )Javaコードをredisに接続するためのクラス。

Jedis jedis = new Jedis();

ローカルマシンとデフォルトポート(6379)で1つのredisサービスを開始した場合、デフォルトのコンストラクターは正常に機能します。それ以外の場合は、正しいホストURLとポート番号を渡す必要があります。コンストラクターへの引数として。

作成と追加

Jedisライブラリは、リスト値に要素を作成および挿入するためのいくつかのメソッドを提供します。重要な方法のいくつかは次のとおりです:-

  1. lpush:- リスト値の先頭に1つ以上の要素を挿入します。リスト値が存在しない場合は、挿入操作を実行する前に、最初に空のリスト値を保持するキーを作成します。
    /* Creating a new list and inserting string values a, b, c at head */
    jedis.lpush("list-1", "a", "b", "c");
    		
    /* Creating a new list and inserting byte array of string value 1, 2 at head */
    jedis.lpush("list-2".getBytes(),new BigInteger("1").toByteArray(),new BigInteger("2").toByteArray());
  2. rpush:- リスト値の末尾に1つ以上の要素を挿入します。リスト値が存在しない場合は、挿入操作を実行する前に、まず空のリスト値を保持するキーを作成します。
    /* Creating a new list and inserting string values a, b, c at tail */
    jedis.rpush("list-3", "a", "b", "c");
    		
    /* Creating a new list and inserting byte array of string value 1, 2 at tail */
    jedis.rpush("list-4".getBytes(),new BigIntege r("1").toByteArray(),new BigInteger("2").toByteArray());
  3. lpushx:- リスト値がすでに存在する場合にのみ、リスト値の先頭に1つ以上の要素を挿入します。
    /* Inserting string values d, e at head of the list <list-1> */
    jedis.lpushx("list-1", "d", "e");
    		
    /* Inserting string values 3, 4 at head of the list <list-2> */
    jedis.lpushx("list-2".getBytes(),new BigInteger("3").toByteArray(),new BigInteger("4").toByteArray());
  4. rpushx:- リスト値がすでに存在する場合にのみ、リスト値の末尾に1つ以上の要素を挿入します。
    /* Inserting string values d, e at tail of the list <list-3> */
    jedis.rpush("list-3", "d", "e");
    		
    /* Inserting string values 3, 4 at tail of the list <list-4> */
    jedis.rpush("list-4".getBytes(),new BigInteger("3").toByteArray(),new BigInteger("4").toByteArray());

削除して返却

リスト値に対してポップ操作のようなスタックを実行するには、2つの方法があります。それらは次のとおりです:-

  1. lpop:- リスト値の最初の要素を削除して返します。
    /* Removes and return single element from the head of <list-1> */
    jedis.lpop("list-1");
    		
    /* Removes and return single element from the head of <list-2> */
    jedis.lpop("list-2".getBytes());
  2. rpop:- リスト値の最後の要素を削除して返します。
    /* Removes and return single element from the tail of <list-3> */
    jedis.rpop("list-3");
    		
    /* Removes and return single element from the tail of <list-4> */
    jedis.rpop("list-4".getBytes());

長さ

llen メソッドは、キーに格納されているリスト値の長さを取得するために使用されます。コード例:-

/* Returns size of <list-1> */
jedis.llen("list-1");
		
/* Returns size of <list-2> */
jedis.llen("list-2".getBytes());

削除

lrem メソッドは、リスト値から要素のすべてのオカレンスを削除するために使用されます。

/* Remove one occurrence of element a from <list-1> */
jedis.lrem("list-1", 1, "a");
		
/* Remove two occurrence of element 1 from <list-2> */
jedis.lrem("list-2".getBytes(), 2, "1".getBytes());

インデックスで取得

lindex メソッドは、インデックス引数によって要素を取得するために使用されます。

/* Get an element at index 3 from <list-1> */
jedis.lindex("list-1", 3);
		
/* Get an element at index 2 from <list-2> */
jedis.lindex("list-2".getBytes(), 2);

インデックスによる更新

lset メソッドは、インデックス引数によって要素を更新するために使用されます。

/* Set an element g at index 3 from <list-1> */
jedis.lset("list-1", 3, "g");
		
/* Set an element 6 at index 2 from <list-2> */
jedis.lset("list-2".getBytes(), 2, "6".getBytes());

複数の要素を取得する

lrange メソッドは、offsets引数で定義されたリスト値から1つまたは複数の要素を取得するために使用されます。

/* Returns elements from index 1 to 5 from <list-1> */
jedis.lrange("list-1", 1, 5);
		
/* Returns all elements from <list-2> */
jedis.lrange("list-2".getBytes(), 0, -1);

参照:-

  1. コマンドドキュメントの一覧表示

Jedisライブラリを使用してリスト値に対してCRUD操作を実行する方法は以上です。気に入った場合は、コメントセクションで自分の考えを共有し、他の人にも共有してください。


  1. Redis LRANGE –Redisデータストアのリスト値のすべての要素を取得する方法

    このチュートリアルでは、リスト値のすべての要素をキーに格納する方法について学習します。このために、redis LRANGEを使用します 指図。 LRANGEコマンド このコマンドは、指定されたオフセットによって定義された、指定されたキーに格納されているリスト値の1つ以上の要素を返します。開始(包括的)オフセットと終了(包括的)オフセットを取ります。これらのオフセットはゼロベースのインデックスであり、0は最初の要素を意味し、1は2番目の要素を意味します。負の数を使用して、リスト値の末尾からオフセットを指定することもできます。ここで、-1は最後の要素を意味し、-2は最後から2番目の要素を意

  2. Redis Jedis pubsub-jedisライブラリを使用してpub/subシステムを実装する方法

    このチュートリアルでは、Jedisライブラリを使用してredispubサブシステムを実装する方法について学習します。 ジェダイライブラリ Jedisは、redisデータストア用のJavaクライアントライブラリです。小さくて非常に使いやすく、redis 2.8.x、3.x.x以降のデータストアと完全に互換性があります。 jedisライブラリの詳細についてはこちらをご覧ください。 Redis Pub / Sub System Redisは、パブリッシュ/サブスクライブメッセージングパラダイムを実装します。このメッセージングパラダイムによれば、メッセージの送信者(発行者)は、メッセージ