Redis เก็บคีย์ที่ชี้ไปที่ค่า คีย์สามารถเป็นค่าไบนารีใดก็ได้จนถึงขนาดที่เหมาะสม (แนะนำให้ใช้สตริง ASCII แบบสั้นเพื่อการอ่านและการดีบัก) ค่าเป็นหนึ่งในห้าประเภทข้อมูล Redis ดั้งเดิม
1.strings - ลำดับของไบนารี่เซฟไบต์สูงสุด 512 MB
2.hashes - ชุดของค่าคีย์คู่
3.lists - ชุดของคำสั่งในชุดคำสั่ง
4.sets - ชุดของสตริงที่ไม่ซ้ำกันโดยไม่มีการสั่งซื้อ
5. ชุดสารพัน - ชุดของสตริงที่ไม่ซ้ำกันซึ่งเรียงลำดับตามการให้คะแนนที่ผู้ใช้กำหนด
เงื่อนไข
สตริง Redis เป็นลำดับของไบต์
สตริงใน Redis นั้นปลอดภัยแบบไบนารี (หมายถึงพวกเขามีความยาวที่รู้จักซึ่งไม่ได้พิจารณาจากอักขระที่ยกเลิกพิเศษใด ๆ ) ดังนั้นคุณสามารถเก็บอะไรได้มากถึง 512 เมกะไบต์ในหนึ่งสตริง
Strings เป็นแนวคิด "ที่เก็บค่าคีย์" ของปืนใหญ่ คุณมีคีย์ที่ชี้ไปที่ค่าโดยที่ทั้งคีย์และค่าเป็นข้อความหรือสตริงไบนารี
สำหรับการดำเนินการที่เป็นไปได้ทั้งหมดบนสตริงดูที่
http://redis.io/commands/#string
hashes
แฮช Redis คือชุดของคู่ค่าคีย์
แฮชของ Redis เก็บค่าคีย์ไว้หลายคู่โดยที่แต่ละคีย์และค่าเป็นสตริง แฮช Redis ไม่สนับสนุนค่าที่ซับซ้อนโดยตรง (หมายถึงคุณไม่มีฟิลด์แฮชที่มีค่ารายการหรือชุดหรือแฮชอื่น) แต่คุณสามารถใช้ฟิลด์แฮชเพื่อชี้ไปยังค่าที่ซับซ้อนระดับสูงสุดอื่น ๆ การดำเนินการพิเศษเฉพาะที่คุณสามารถดำเนินการกับค่าของเขตข้อมูลแฮชคือการเพิ่ม / ลดจำนวนอะตอมมิกของเนื้อหาที่เป็นตัวเลข
คุณสามารถนึกถึง Redis hash ได้สองวิธี: เป็นการแทนวัตถุโดยตรงและเป็นวิธีการเก็บค่าเล็ก ๆ มากมายไว้อย่างแน่นหนา
การนำเสนอวัตถุโดยตรงนั้นเข้าใจง่าย วัตถุมีชื่อ (กุญแจของแฮช) และชุดของคีย์ภายในที่มีค่า ดูตัวอย่างด้านล่างสำหรับตัวอย่างที่ดี
การจัดเก็บค่าขนาดเล็กจำนวนมากโดยใช้แฮชเป็นเทคนิคการจัดเก็บข้อมูลขนาดใหญ่อัจฉริยะ เมื่อแฮชมีฟิลด์จำนวนน้อย (~ 100) Redis จะปรับการจัดเก็บและประสิทธิภาพการเข้าถึงของแฮชทั้งหมดให้เหมาะสมที่สุด การเพิ่มประสิทธิภาพการจัดเก็บข้อมูลแฮชขนาดเล็กของ Redis ทำให้เกิดพฤติกรรมที่น่าสนใจ: มีประสิทธิภาพมากกว่าที่จะมี 100 แฮชแต่ละตัวที่มี 100 คีย์ภายในและค่ามากกว่าการมี 10,000 ปุ่มระดับบนสุดที่ชี้ไปที่ค่าสตริง การใช้ Redis hashes เพื่อเพิ่มประสิทธิภาพการจัดเก็บข้อมูลของคุณด้วยวิธีนี้ไม่จำเป็นต้องมีโอเวอร์เฮดการเขียนโปรแกรมเพิ่มเติมสำหรับการติดตามว่าข้อมูลสิ้นสุดลงที่ใด แต่หากการจัดเก็บข้อมูลของคุณเป็นสายอักขระพื้นฐาน
สำหรับการดำเนินการที่เป็นไปได้ทั้งหมดเกี่ยวกับแฮชดูเอกสารแฮ
รายการ
รายการ Redis ทำหน้าที่เหมือนรายการที่เชื่อมโยง
คุณสามารถแทรกลบและข้ามรายการจากส่วนหัวหรือส่วนท้ายของรายการ
ใช้รายการเมื่อคุณต้องการบำรุงรักษาค่าตามลำดับที่แทรกไว้ (Redis ให้คุณเลือกที่จะแทรกเข้าไปในตำแหน่งใด ๆ รายการโดยพลการถ้าคุณต้องการ แต่ประสิทธิภาพการแทรกของคุณจะลดลงถ้าคุณแทรกห่างจากตำแหน่งเริ่มต้นของคุณ)
รายการ Redis มักใช้เป็นคิวผู้ผลิต / ผู้บริโภค แทรกไอเท็มลงในรายการจากนั้นป๊อปไอเท็มจากรายการ จะเกิดอะไรขึ้นหากลูกค้าของคุณพยายามที่จะปรากฏขึ้นจากรายการที่ไม่มีองค์ประกอบ คุณสามารถขอให้ Redis รอให้องค์ประกอบปรากฏและส่งคืนให้คุณได้ทันทีเมื่อมีการเพิ่ม สิ่งนี้จะเปลี่ยน Redis ให้เป็นคิวข้อความเรียลไทม์ / ระบบ / งาน / งาน / ระบบแจ้งเตือน
คุณสามารถลบองค์ประกอบออกจากส่วนท้ายของรายการโดยอัตโนมัติทำให้รายการใด ๆ ได้รับการปฏิบัติเหมือนเป็นสแต็กหรือคิว
คุณยังสามารถรักษารายการที่มีความยาวคงที่ (คอลเลกชันที่ต่อยอด) โดยการตัดรายการของคุณให้มีขนาดเฉพาะหลังจากการแทรกทุกครั้ง
สำหรับการดำเนินการที่เป็นไปได้ทั้งหมดในรายการให้ดูที่รายการเอกสาร
ชุด
เซต Redis นั้นก็คือเซต
ชุด Redis ประกอบด้วยสตริง Redis ที่ไม่เรียงลำดับซึ่งแต่ละสตริงจะมีเพียงครั้งเดียวต่อชุดเท่านั้น หากคุณเพิ่มองค์ประกอบเดียวกันสิบครั้งในชุดมันจะปรากฏขึ้นเพียงครั้งเดียว ชุดนั้นยอดเยี่ยมสำหรับการสร้างความมั่นใจให้กับสิ่งที่ขี้เกียจอย่างน้อยหนึ่งครั้งโดยไม่ต้องกังวลเกี่ยวกับองค์ประกอบที่ซ้ำซ้อนและการสูญเสียพื้นที่ คุณสามารถเพิ่มสตริงเดียวกันได้หลายครั้งเท่าที่คุณต้องการโดยไม่จำเป็นต้องตรวจสอบว่ามีอยู่แล้ว
ชุดเร็วสำหรับการตรวจสอบการเป็นสมาชิกการแทรกและการลบสมาชิกในชุด
ชุดมีการดำเนินงานชุดที่มีประสิทธิภาพตามที่คุณคาดหวัง คุณสามารถรวมสหภาพการแยกและความแตกต่างของหลาย ๆ ชุดได้ในคราวเดียว ผลลัพธ์สามารถถูกส่งคืนไปยังผู้โทรหรือสามารถเก็บผลลัพธ์ไว้ในชุดใหม่สำหรับการใช้งานในภายหลัง
ชุดมีการเข้าถึงเวลาอย่างต่อเนื่องสำหรับการตรวจสอบสมาชิก (ไม่เหมือนกับรายการ) และ Redis ยังมีการลบสมาชิกแบบสุ่มและส่งคืนอย่างสะดวก ("ป๊อปองค์ประกอบสุ่มจากชุด") หรือสุ่มสมาชิกกลับโดยไม่มีการแทนที่ ("ให้ฉัน 30 คน ") หรือแทนที่ (" ให้ไพ่ 7 ใบให้ฉัน แต่หลังจากเลือกแล้วให้นำการ์ดกลับมาเพื่อให้สามารถสุ่มตัวอย่างได้อีกครั้ง ")
สำหรับการดำเนินงานที่เป็นไปได้ทั้งหมดในชุดดูชุดเอกสาร
ชุดเรียง
ชุดเรียงที่ Redis เป็นชุดที่มีการสั่งซื้อที่ผู้ใช้กำหนด
เพื่อความเรียบง่ายคุณสามารถนึกถึงชุดที่เรียงเป็นต้นไม้ไบนารีพร้อมองค์ประกอบที่เป็นเอกลักษณ์ (ชุดเรียงที่ Redis เป็นรายการข้ามจริงๆ ) ลำดับการเรียงขององค์ประกอบถูกกำหนดโดยคะแนนของแต่ละองค์ประกอบ
ชุดที่จัดเรียงยังคงเป็นชุด องค์ประกอบอาจปรากฏเพียงครั้งเดียวในชุด องค์ประกอบสำหรับวัตถุประสงค์ที่ไม่ซ้ำกันถูกกำหนดโดยเนื้อหาสตริง การใส่องค์ประกอบ "แอปเปิ้ล" ด้วยคะแนนการเรียงลำดับ 3 จากนั้นใส่องค์ประกอบ "แอปเปิ้ล" ที่มีคะแนนการเรียง 500 ผลลัพธ์ในองค์ประกอบ "แอปเปิ้ล" หนึ่งองค์ประกอบที่มีการเรียงลำดับคะแนน 500 ในชุดเรียงของคุณ ชุดจะไม่ซ้ำกันโดยยึดตามข้อมูลไม่ใช่คู่ (คะแนน, ข้อมูล)
ตรวจสอบให้แน่ใจว่าตัวแบบข้อมูลของคุณอาศัยเนื้อหาสตริงไม่ใช่คะแนนขององค์ประกอบเพื่อความเป็นเอกลักษณ์ คะแนนจะได้รับอนุญาตให้ทำซ้ำ (หรือแม้กระทั่งศูนย์) แต่เป็นครั้งสุดท้ายที่องค์ประกอบชุดสามารถมีอยู่ได้เพียงครั้งเดียวต่อชุดเรียงลำดับ ตัวอย่างเช่นหากคุณพยายามเก็บประวัติของการเข้าสู่ระบบของผู้ใช้ทุกคนเป็นชุดที่เรียงลำดับโดยการให้คะแนนยุคของการเข้าสู่ระบบและความคุ้มค่าของรหัสผู้ใช้คุณจะสิ้นสุดการจัดเก็บเฉพาะยุคการเข้าสู่ระบบล่าสุดสำหรับผู้ใช้ทั้งหมดของคุณ ชุดของคุณจะเพิ่มขนาดของฐานผู้ใช้และไม่ใช่ขนาดการเข้าสู่ระบบฐานผู้ใช้ที่คุณต้องการ
องค์ประกอบจะถูกเพิ่มเข้าไปในชุดของคุณด้วยคะแนน คุณสามารถอัปเดตคะแนนขององค์ประกอบใด ๆ ได้ตลอดเวลาเพียงเพิ่มองค์ประกอบอีกครั้งด้วยคะแนนใหม่ คะแนนจะถูกแสดงด้วยจุดลอยตัวสองเท่าดังนั้นคุณสามารถระบุความละเอียดสูงของการประทับเวลาที่มีความแม่นยำสูงหากจำเป็น องค์ประกอบหลายรายการอาจมีคะแนนเท่ากัน
คุณสามารถดึงองค์ประกอบได้หลายวิธี เนื่องจากทุกอย่างถูกจัดเรียงคุณสามารถขอองค์ประกอบเริ่มต้นที่คะแนนต่ำสุด คุณสามารถขอองค์ประกอบเริ่มต้นที่คะแนนสูงสุด ("ย้อนกลับ") คุณสามารถขอองค์ประกอบตามคะแนนการเรียงลำดับของพวกเขาทั้งในธรรมชาติหรือย้อนกลับ
สำหรับการดำเนินการที่เป็นไปได้ทั้งหมดในชุดที่จัดเรียงให้ดูเอกสารชุดเรียงลำดับ