หัวไชเท้า LSET

Haw Chi Thea Lset



รายการ Redis คือโครงสร้างข้อมูลที่เก็บลำดับขององค์ประกอบสตริงในลำดับการแทรก มันขึ้นอยู่กับรายการที่เชื่อมโยง ดังนั้น การแทรกองค์ประกอบที่ส่วนหัวและส่วนท้ายจะดำเนินการในเวลาคงที่ ข้อเสียเพียงอย่างเดียวของรายการ Redis ก็คือการสืบค้นองค์ประกอบด้วยดัชนีมีค่าใช้จ่ายเล็กน้อย ซึ่งต้องใช้เวลาตามสัดส่วนโดยตรงกับดัชนีขององค์ประกอบที่เข้าถึง เหตุผลเบื้องหลังการใช้งานแบบ Linked list-based คือการทำให้การแทรกข้อมูลเร็วขึ้นสำหรับรายการที่ยาวมาก

รายการ Redis มีการจัดทำดัชนีตาม 0 องค์ประกอบแรกถูกกำหนดให้เป็น 0 ไทย ดัชนี; อันที่สองอยู่ที่1 เซนต์ ดัชนี เป็นต้น การเข้าถึงองค์ประกอบส่วนท้ายด้วยดัชนีเป็นไปได้ด้วยดัชนีเชิงลบ เช่น องค์ประกอบสุดท้ายถูกสร้างดัชนีเป็น -1 องค์ประกอบสุดท้ายคือ -2 เป็นต้น









องค์ประกอบรายการสามารถตั้งค่าได้ที่ดัชนีที่กำหนดโดยใช้คำสั่ง LSET ซึ่งอธิบายไว้ในส่วนต่อไปนี้



คำสั่ง LSET

คำสั่ง LSET ตั้งค่าองค์ประกอบที่ดัชนีที่กำหนดของรายการ Redis ที่จัดเก็บไว้ที่คีย์ที่ระบุ มีไวยากรณ์ง่าย ๆ ดังต่อไปนี้:





องค์ประกอบดัชนี LSET list_key

list_key : คีย์ของรายการ Redis

ดัชนี : ดัชนีที่คุณต้องการตั้งค่าองค์ประกอบ



ธาตุ : องค์ประกอบสตริงที่จะตั้งค่าที่ดัชนีที่ระบุ

คำสั่งนี้ส่งคืนสตริงอย่างง่าย 'OK' หากองค์ประกอบได้รับการตั้งค่าอย่างถูกต้อง เมื่อใดก็ตามที่พบดัชนีที่อยู่นอกช่วง คำสั่ง LSET จะส่งกลับข้อผิดพลาด

กรณีการใช้งานที่พบบ่อยที่สุดรายการหนึ่งของรายการ Redis คือการจัดเก็บโพสต์โซเชียลมีเดียและการอัปเดตสำหรับผู้ใช้แต่ละราย คำสั่ง LSET มีบทบาทสำคัญที่นั่น ตามที่กล่าวไว้ในหัวข้อต่อไปนี้

ใช้กรณี – อัปเดตโพสต์โซเชียลมีเดีย

สมมติว่าเป็นเหตุการณ์ที่บริษัทดูแลเว็บไซต์โซเชียลมีเดียของตนเองโดยมีผู้ใช้หลายพันคนโพสต์โพสต์และสถานะอย่างแข็งขัน พวกเขาระบุว่ารายการ Redis เป็นผู้สมัครที่เหมาะสมในการเก็บโพสต์และสถานะที่มีการแทรกบ่อยครั้ง และรายการ Redis ดำเนินการแทรกในเวลาคงที่

มาสร้างรายการ Redis สำหรับ ID ผู้ใช้ 100 ที่กำหนดซึ่งจะใช้ในการจัดเก็บโพสต์และข้อความสถานะของผู้ใช้รายนั้น เราจะใช้คำสั่ง LPUSH เพื่อใส่โพสต์จำลองและข้อความสถานะสำหรับ ID ผู้ใช้ 100

LPUSH social-media:user:100 '2022-08-01:วันที่ดีในการเริ่มต้น'
LPUSH social-media:user:100 '2022-08-05:เริ่มงานใหม่ที่ linuxhint'
LPUSH social-media:user:100 '2022-08-06:ปาร์ตี้สุดมันส์วันนี้'
LPUSH social-media:user:100 '2022-08-07:วันแย่ๆ!!!'

เอาท์พุต

สมมติว่าผู้ใช้ที่มี ID ผู้ใช้ 100 จะอัปเดตหนึ่งในโพสต์เก่าของเขา สมมติว่าโพสต์ที่สามที่เขาโพสต์ต้องมีการแก้ไข คำสั่ง LSET สามารถทำได้โดยง่าย ดังแสดงในภาพต่อไปนี้

เนื่องจากองค์ประกอบที่สามอยู่ที่ดัชนี 2 จากส่วนหัว เราจะทำการอัพเดทดังนี้:

LSET social-media:user:100 2 'เริ่มบทบาทใหม่ในฐานะนักเขียนที่ LinuxHint'

เอาท์พุต

ตามที่คาดไว้ คำสั่งดำเนินการได้สำเร็จ และองค์ประกอบที่ดัชนีที่สองได้รับการอัปเดต มาตรวจสอบรายชื่อกันใหม่ดังนี้

เราสามารถทำเช่นเดียวกันโดยระบุดัชนีจากส่วนท้ายดังนี้:

LSET social-media:user:100 -2 'เริ่มบทบาทใหม่ในฐานะนักเขียนที่ LinuxHint'

ตามที่คาดไว้ องค์ประกอบที่สามได้รับการตั้งค่าเป็นสตริงใหม่ “งานเริ่มต้นที่ LinuxHINT”

หากคุณระบุดัชนีที่อยู่นอกช่วง จะทำให้เกิดข้อผิดพลาดดังที่แสดงต่อไปนี้:

LSET social-media:user:100 6 'เริ่มทำงานที่ LinuxHINT'

เอาท์พุต

บทสรุป

คำสั่ง LSET ตั้งค่าองค์ประกอบรายการที่ดัชนีที่ระบุเป็นองค์ประกอบที่กำหนดของรายการ Redis ที่จัดเก็บไว้ในคีย์ที่กำหนด เนื่องจากดัชนีรายการ Redis เริ่มต้นจาก 0 จึงเป็นองค์ประกอบแรก ดัชนี 1 เป็นองค์ประกอบที่สองของรายการ เป็นต้น ตามที่กล่าวไว้ ดัชนีขององค์ประกอบที่เริ่มต้นจากส่วนท้ายสามารถระบุได้โดยใช้ตัวเลขติดลบ เช่น -1 คือองค์ประกอบสุดท้าย -2 คือองค์ประกอบที่อยู่ก่อนองค์ประกอบสุดท้าย เป็นต้น เมื่อใดก็ตามที่ดัชนีที่ไม่มีอยู่ถูกส่งผ่าน คำสั่ง LSET จะส่งคืนข้อผิดพลาด นอกจากนี้ คำสั่งนี้ส่งคืนเอาต์พุตสตริงอย่างง่ายจากการดำเนินการที่สำเร็จ