ในบทเรียนนี้ เราจะเรียนรู้วิธีการทำ CRUD operation บน key โดยใช้ Jedis library
Jedis Library
Jedis เป็น Java client library สำหรับ Redis datastore มีขนาดเล็ก ใช้งานง่าย และรองรับ Redis 2.8.x, 3.x.x และขึ้นไป
Keys
ใน Redis Keys ใช้เป็น unique identifier เพื่อจัดเก็บ จัดการ และดึงข้อมูล value ที่เก็บใน datastore
Project Setup
สร้าง Maven project และเพิ่ม dependency ใน pom.xml:
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.0.1</version> </dependency>
Redis Installation
ติดตั้ง Redis เวอร์ชันล่าสุด
Jedis Connection
Jedis jedis = new Jedis();
ตั้งค่า Timestamp บน Key
มี 4 method สำหรับตั้งค่า expiration time:
- expire: ตั้งค่า expiration ในวินาที
jedis.expire("key-1", 300); - pexpire: ตั้งค่า expiration ในมิลลิวินาที
jedis.pexpire("key-1", 30000); - expireAt: ตั้งค่า expiration เป็น Unix timestamp วินาที
jedis.expireAt("key-1", 1543622400); - pexpireAt: ตั้งค่า expiration เป็น Unix timestamp มิลลิวินาที
jedis.pexpireAt("key-1", 154362240000);
ดึง Timestamp ของ Key
- ttl: คืนค่า expiration ในวินาที
jedis.ttl("key-1"); - pttl: คืนค่า expiration ในมิลลิวินาที
jedis.pttl("key-1");
ลบ Timestamp
persist ลบ expiration time ของ key:
jedis.persist("key-1");
ดึง Key ทั้งหมด
keys คืนค่า key ที่ตรงกับ pattern:
jedis.keys("*");
jedis.keys("a*b");
ลบ Key
del ลบ key จาก Redis:
jedis.del("key-1");
jedis.del("key-1", "key-2", "key-3");
ตรวจสอบ Key Exists
exists ตรวจสอบ key มีอยู่หรือไม่:
Boolean exist = jedis.exists("key-1");
Long exist = jedis.exists("key-1", "key-2", "key-3");
ดู Type ของ Value
type คืนค่า datatype ของ value ใน key:
jedis.type("key-1");
Dump Value
dump คืนค่า serialized version ของ value:
jedis.dump("key-1");
Rename Key
- rename: เปลี่ยนชื่อ key จากเก่าเป็นใหม่ หาก key ใหม่มีอยู่แล้วจะถูกทับที
jedis.rename("old-key", "new-key"); - renamenx: เปลี่ยนชื่อ key เฉพาะเมื่อ key ใหม่ไม่มีอยู่
jedis.renamenx("old-key", "new-key");
อ้างอิง
- Key Command Docs
ขอจบบทเรียนสำหรับวิธีทำ CRUD operation บน key โดยใช้ Jedis library หากชอบบทเรียนนี้ กรุณาแบ่งปันความคิดเห็นและแชร์ให้ผู้อื่นด้วยครับ