Redis Cache รองรับความสามารถในการสืบค้นหรือไม่

ฉันกำลังเรียนรู้แคช Redis แค่อยากรู้ว่ามันรองรับความสามารถในการสืบค้น

เรามีตารางตำแหน่ง ต้องการจัดเก็บบันทึกในแคช Redis (ต้องค้นหาด้วยชื่อสถานที่หรือรหัส)

แจ้งให้เราทราบว่าเราสร้างคีย์เพื่อสิ่งเดียวกันได้อย่างไร

หรือเราจำเป็นต้องเพิ่มสองรายการลงในแคช Redis หรือไม่

 jedis.set(TenantId+LocationName, Location)

 jedis.set(TenantId+LocationId, Location)

ขอบคุณล่วงหน้า !!!


person java baby    schedule 11.03.2016    source แหล่งที่มา


คำตอบ (1)


Redis อนุญาตให้ทำการสืบค้นได้ แต่เช่นเดียวกับฐานข้อมูล NoSQL อื่นๆ คุณต้องการให้เก็บข้อมูลไว้ในนั้นตามวิธีที่คุณจะสืบค้น หากคุณต้องการสืบค้นด้วยชื่อหรือรหัส คุณจะต้องมี "รายการ" สองรายการเพื่ออำนวยความสะดวก (BTW ซึ่งไม่ได้แตกต่างไปจากสิ่งที่ RDBMS ทำกับดัชนี)

อย่างไรก็ตาม แทนที่จะสร้างสองคีย์ - อันหนึ่งสำหรับการค้นหาชื่อและอีกอันสำหรับ id - ด้วยคำสั่ง SET คุณควรพิจารณาใช้โครงสร้างข้อมูล Hash สำหรับผู้เช่าแต่ละราย ให้เก็บแฮชที่มีสองฟิลด์ต่อสถานที่ โดยที่หนึ่งจะแมปจากชื่อไปยัง ID และในทางกลับกัน ในการเรียก pseudo-Java HMSET จะมีลักษณะดังนี้:

jedis.hmset(TenantId, <LocationName, Location, locationId, Location>);
person Itamar Haber    schedule 11.03.2016