Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Redis

Redis Jedis – วิธีดำเนินการ CRUD กับค่ารายการโดยใช้ jedis library

ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับวิธีการดำเนินการ CRUD กับค่ารายการโดยใช้ไลบรารี Jedis

ห้องสมุดเจดิส

Jedis เป็นไลบรารีไคลเอ็นต์ Java สำหรับที่เก็บข้อมูล Redis มันมีขนาดเล็กและใช้งานง่ายมาก และเข้ากันได้อย่างสมบูรณ์กับ redis 2.8.x, 3.x.x และที่เก็บข้อมูลด้านบน คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับห้องสมุดเจดิสได้ที่นี่

ค่ารายการ

รายการคือลำดับของสตริงที่จัดเรียงตามลำดับการแทรก ใน Redis รายการสามารถจัดเก็บเป็นค่าได้ และคำสั่ง redis ต่างๆ สามารถใช้ในการจัดเก็บ จัดการ และเรียกข้อมูลค่ารายการที่จัดเก็บไว้ในฐานข้อมูล redis ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง List ได้ที่นี่

การตั้งค่าโครงการ

สร้างโปรเจ็กต์ maven อย่างง่ายใน IDE ที่คุณชื่นชอบและเพิ่มการพึ่งพาที่กล่าวถึงด้านล่างใน 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();

หากคุณได้เริ่มบริการ redis หนึ่งรายการในเครื่องของคุณ และบนพอร์ตเริ่มต้น (6379) คอนสตรัคเตอร์เริ่มต้นก็จะทำงานได้ดี มิฉะนั้น คุณต้องส่ง URL โฮสต์และหมายเลขพอร์ตที่ถูกต้อง เป็นอาร์กิวเมนต์ในตัวสร้าง

สร้างและเพิ่ม

ห้องสมุด Jedis มีหลายวิธีในการสร้างและแทรกองค์ประกอบในค่ารายการ วิธีการที่สำคัญบางประการมีดังนี้ :-

  1. lpush :-  มันแทรกองค์ประกอบอย่างน้อยหนึ่งองค์ประกอบที่ส่วนหัวของค่ารายการ หากไม่มีรายการค่า อันดับแรกจะสร้างคีย์ที่ถือค่ารายการว่างก่อนดำเนินการแทรก
    /* 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 :- โดยจะแทรกองค์ประกอบอย่างน้อยหนึ่งองค์ประกอบที่ส่วนท้ายของค่ารายการ หากไม่มีค่ารายการ อันดับแรกจะสร้างคีย์ที่มีค่ารายการว่างก่อนดำเนินการแทรก
    /* 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 :- มันแทรกองค์ประกอบอย่างน้อยหนึ่งองค์ประกอบที่ส่วนหัวของค่ารายการก็ต่อเมื่อค่ารายการมีอยู่แล้ว
    /* 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 :- มันแทรกองค์ประกอบอย่างน้อยหนึ่งองค์ประกอบที่ส่วนท้ายของค่ารายการก็ต่อเมื่อค่ารายการมีอยู่แล้ว
    /* 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());

นำออกและส่งคืน

มีสองวิธีในการดำเนินการสแต็กเช่นการดำเนินการป๊อปกับค่ารายการ มีดังนี้ :-

  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());

ความยาว

เลน วิธีถูกใช้เพื่อรับความยาวของค่ารายการที่เก็บไว้ที่คีย์ ตัวอย่างโค้ด :- 

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

ลบ 

เลม เมธอดใช้เพื่อลบการเกิดขึ้นทั้งหมดขององค์ประกอบออกจากค่ารายการ

/* 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());

รับตามดัชนี 

ดัชนี ใช้เพื่อรับองค์ประกอบโดยอาร์กิวเมนต์ดัชนี

/* 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());

รับหลายองค์ประกอบ

ยาว ใช้เพื่อรับหนึ่งหรือองค์ประกอบจากค่ารายการที่กำหนดโดยอาร์กิวเมนต์ออฟเซ็ต

/* 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. แสดงรายการเอกสารคำสั่ง

นั่นคือทั้งหมดสำหรับวิธีดำเนินการ CRUD กับค่ารายการโดยใช้ไลบรารี Jedis หากคุณชอบโปรดแบ่งปันความคิดของคุณในส่วนความคิดเห็นและแบ่งปันกับผู้อื่นด้วย