ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับวิธีการดำเนินการ CRUD กับค่าแฮชโดยใช้ไลบรารี Jedis
ห้องสมุดเจดิส
Jedis เป็นไลบรารีไคลเอ็นต์ Java สำหรับที่เก็บข้อมูล Redis มันมีขนาดเล็กและใช้งานง่ายมาก และเข้ากันได้อย่างสมบูรณ์กับ redis 2.8.x, 3.x.x และที่เก็บข้อมูลด้านบน คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับห้องสมุดเจดิสได้ที่นี่
ค่าแฮช
แฮชคือแผนที่ของคู่ฟิลด์-ค่า ซึ่งสามารถใช้เพื่อแสดงถึงประเภทอ็อบเจ็กต์ เช่น ออบเจ็กต์ Java ใน Redis แฮชสามารถจัดเก็บเป็นค่าได้ และคำสั่ง redis ต่างๆ จะถูกใช้เพื่อจัดเก็บ จัดการ และดึงค่าแฮชที่เก็บไว้ในฐานข้อมูล redis ดูข้อมูลเพิ่มเติมเกี่ยวกับคำสั่งแฮชได้ที่นี่
การตั้งค่าโครงการ
สร้างโปรเจ็กต์ maven อย่างง่ายใน IDE ที่คุณชื่นชอบและเพิ่มการพึ่งพาที่กล่าวถึงด้านล่างใน pom.xml ของคุณ ไฟล์.
redis.clients jedis 3.0.1
สำหรับไลบรารี jedis เวอร์ชันล่าสุด ตรวจสอบหน้านี้
การติดตั้ง Redis
คุณจะต้องติดตั้ง Redis เวอร์ชันล่าสุด ตรวจสอบหน้านี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้ง redis
การเชื่อมต่อของเจดิส
สร้างวัตถุของ เจดิส ( redis.clients.jedis.Jedis ) คลาสสำหรับเชื่อมต่อโค้ด java ของคุณกับ redis
Jedis jedis =เจดิสใหม่ ();
หากคุณได้เริ่มบริการ redis หนึ่งรายการในเครื่องของคุณ และบนพอร์ตเริ่มต้น (6379) คอนสตรัคเตอร์เริ่มต้นก็จะทำงานได้ดี มิฉะนั้น คุณต้องส่ง URL โฮสต์และหมายเลขพอร์ตที่ถูกต้อง เป็นอาร์กิวเมนต์ในตัวสร้าง
สร้างและตั้งค่าของฟิลด์
มีสามวิธีในการตั้งค่าที่เกี่ยวข้องกับฟิลด์ที่อยู่ภายในค่าแฮช มีดังนี้ :-
- hset :- มันตั้งค่าที่ระบุเป็นฟิลด์ที่เกี่ยวข้องในค่าแฮช หากมีฟิลด์อยู่แล้ว ค่านั้นจะถูกเขียนทับ หากไม่มีคีย์ จะมีการสร้างคีย์ใหม่ที่ถือค่าแฮชก่อนที่จะดำเนินการตั้งค่า
/* ใส่ฟิลด์ชื่อใน
*/jedis.hset("hash-1", "name ", "จอห์น"); /* ใส่ชื่อฟิลด์ใน */jedis.hset("hash-2".getBytes(), "name".getBytes(), "john".getBytes()); - hsetnx :- โดยตั้งค่าที่ระบุเป็นฟิลด์ที่เกี่ยวข้องในค่าแฮช เฉพาะในกรณีที่ไม่มีฟิลด์ หากมีฟิลด์อยู่แล้ว การดำเนินการนี้จะไม่มีผลใดๆ หากไม่มีคีย์ คีย์ใหม่ที่ถือค่าแฮชจะถูกสร้างขึ้นก่อนดำเนินการตั้งค่า
/* ใส่ฟิลด์ชื่อใน
*/jedis.hsetnx("hash-1", "name ", "จอห์น"); /* ใส่ชื่อฟิลด์ใน */jedis.hsetnx("hash-2".getBytes(), "age".getBytes(), "23".getBytes()); - hmset :- มันตั้งค่าที่ระบุเป็นฟิลด์ที่เกี่ยวข้อง ( หลายฟิลด์/คู่ค่า ) ในค่าแฮช หากมีฟิลด์ที่ระบุอยู่แล้ว ค่านั้นจะถูกเขียนทับ หากไม่มีคีย์ ระบบจะสร้างคีย์ใหม่ที่ถือค่าแฮชก่อนที่จะดำเนินการตั้งค่า
/* ใส่ฟิลด์ชื่อและอายุใน
*/Map map =new HashMap ();map.put("name","john");map.put("age","23");jedis.hmset("hash-1", map);
รับค่าของฟิลด์
มีสองวิธีในการรับค่าที่เกี่ยวข้องกับฟิลด์ที่อยู่ภายในค่าแฮช มีดังนี้ :-
- hget :- ส่งคืนค่าที่เกี่ยวข้องกับฟิลด์เดียวที่อยู่ภายในค่าแฮช
/* รับค่าของฟิลด์ชื่อใน
*/jedis.hget("hash-1", "name");ก่อน> - hmget :- ส่งคืนค่าที่เกี่ยวข้องกับฟิลด์อย่างน้อยหนึ่งฟิลด์ที่อยู่ภายในค่าแฮช
/* รับค่าของฟิลด์ชื่อและอายุใน
*/jedis.hmget("hash-1", "name", "อายุ");
ขนาด
เฮเลน เมธอดถูกใช้เพื่อรับจำนวนฟิลด์ที่มีอยู่ในค่าแฮชที่เก็บไว้ที่คีย์
/* ส่งกลับจำนวนฟิลด์ใน*/jedis.hlen("hash-1");
ลบ
hdel เมธอดใช้เพื่อลบฟิลด์ตั้งแต่หนึ่งฟิลด์ขึ้นไปจากค่าแฮชที่จัดเก็บไว้ที่คีย์
/* ลบฟิลด์ชื่อและอายุออกจาก*/jedis.hdel("hash-1", "name", "age"); /* ลบฟิลด์ชื่อและอายุออกจาก */jedis.hdel("hash-2".getBytes(),"name".getBytes(),"age".getBytes());
ตรวจสอบการมีอยู่ของฟิลด์
เลขฐานสิบหก เมธอดที่ใช้ในการตรวจสอบว่าฟิลด์ที่ระบุเป็นสมาชิกของแฮชหรือไม่
/* ตรวจสอบว่าชื่อเป็นสมาชิกของหรือไม่ */jedis.hexists("hash-1", "name");/* ตรวจสอบว่าชื่อเป็นสมาชิกของ หรือไม่ */jedis.hexists("hash-2".getBytes(),"name".getBytes());
รับทั้งหมด
hgetall เมธอดใช้เพื่อรับฟิลด์ทั้งหมดและค่าที่เกี่ยวข้องที่มีอยู่ในค่าแฮชที่เก็บไว้ที่คีย์
/* ส่งกลับฟิลด์ทั้งหมดและค่าของมันจาก*/jedis.hgetAll("hash-1");/* ส่งกลับฟิลด์ทั้งหมดและค่าของมันจาก */jedis.hgetAll( "hash-2".getBytes());
รับกุญแจทั้งหมด
hkeys เมธอดถูกใช้เพื่อรับชื่อของฟิลด์ทั้งหมดที่มีอยู่ในค่าแฮชที่เก็บไว้ที่คีย์
/* ส่งกลับชื่อฟิลด์ทั้งหมดจาก*/jedis.hkeys("hash-1");/* ส่งคืนชื่อฟิลด์ทั้งหมดจาก */jedis.hkeys("hash-2 ".getBytes());
รับค่าทั้งหมด
hvals เมธอดใช้เพื่อรับค่าของฟิลด์ทั้งหมดที่มีอยู่ในค่าแฮชที่เก็บไว้ที่คีย์
/* ส่งคืนค่าทั้งหมดจาก*/jedis.hvals("hash-1");/* ส่งคืนค่าทั้งหมดจาก */jedis.hvals("hash-2" getBytes());
อ้างอิง :-
- เอกสารคำสั่งแฮช
นั่นคือทั้งหมดสำหรับวิธีดำเนินการ CRUD กับค่าแฮชโดยใช้ไลบรารี Jedis หากคุณชอบโปรดแบ่งปันความคิดของคุณในส่วนความคิดเห็นและแบ่งปันกับผู้อื่นด้วย