الفجل LSET

Alfjl Lset



قائمة Redis هي بنية بيانات تحتوي على سلسلة من عناصر السلسلة بترتيب الإدراج. يعتمد على قائمة مرتبطة. لذلك ، يتم إدخال عنصر في الرأس والذيل في وقت ثابت. الجانب السلبي الوحيد لقوائم Redis هو أن الاستعلام عن العناصر بواسطة فهرس مكلف بعض الشيء ، الأمر الذي يستغرق وقتًا يتناسب طرديًا مع فهرس عنصر الوصول. السبب وراء التنفيذ المستند إلى القائمة المرتبطة هو جعل إدخال البيانات أسرع لقائمة طويلة جدًا من العناصر.

تحتوي قوائم Redis على فهرسة تستند إلى 0. تم تعيين العنصر الأول على أنه 0 العاشر فهرس؛ الثاني هو 1 شارع الفهرس ، وما إلى ذلك. يمكن الوصول إلى عناصر الذيل باستخدام الفهارس باستخدام المؤشرات السلبية مثل فهرسة العنصر الأخير كـ -1 ، والعنصر قبل الأخير هو -2 ، وهكذا.









يمكن تعيين عناصر القائمة في أي فهرس باستخدام الأمر LSET الموضح في القسم التالي.



قيادة LSET

يعيّن الأمر LSET عنصرًا في الفهرس المحدد لقائمة Redis المخزنة عند المفتاح المحدد. يحتوي على النحو التالي البسيط:





LSET عنصر فهرس list_key

list_key : مفتاح قائمة Redis.

فهرس : الفهرس الذي تريد تعيين عنصر فيه.



عنصر : عنصر السلسلة المراد تعيينه في الفهرس المحدد.

يقوم هذا الأمر بإرجاع سلسلة بسيطة 'OK' إذا تم تعيين العنصر بشكل صحيح. عندما يواجه فهرس خارج النطاق ، يقوم الأمر LSET بإرجاع خطأ.

إحدى حالات الاستخدام الأكثر شيوعًا لقوائم Redis هي تخزين منشورات الوسائط الاجتماعية وتحديثاتها للمستخدمين الفرديين. يلعب الأمر LSET دورًا مهمًا هناك ، كما تمت مناقشته في القسم التالي.

حالة الاستخدام - تحديث منشورات الوسائط الاجتماعية

لنفترض حدثًا تحتفظ فيه الشركة بموقعها على شبكة التواصل الاجتماعي مع الآلاف من المستخدمين الذين ينشرون المنشورات والحالات بنشاط. لقد حددوا أن قوائم Redis هي المرشح المناسب لشغل هذه الوظائف والحالات حيث يحدث الإدراج المتكرر ، وتقوم قوائم Redis بالإدراج في وقت ثابت.

دعنا ننشئ قائمة Redis لمعرف مستخدم معين 100 الذي سيتم استخدامه لتخزين مشاركات هذا المستخدم المعين ورسائل الحالة. سنستخدم الأمر LPUSH لوضع بعض المنشورات الوهمية ورسائل الحالة لمعرف المستخدم 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: يوم سيء !!!'

انتاج |

افترض أن المستخدم الذي يحمل معرف المستخدم 100 سيحدث إحدى مشاركاته القديمة. لنفترض أن المنشور الثالث الذي نشره يحتاج إلى بعض التصحيح. يمكن لأمر LSET تحقيق ذلك بسهولة ، كما هو موضح في ما يلي.

بما أن العنصر الثالث في الفهرس 2 من الرأس. سنقوم بتحديثه على النحو التالي:

LSET social-media: user: 100 2 'بدأ دورًا جديدًا ككاتب في LinuxHint'

انتاج |

كما هو متوقع ، تم تنفيذ الأمر بنجاح وتم تحديث العنصر في الفهرس الثاني. دعنا نعيد فحص القائمة على النحو التالي:

يمكننا أن نفعل الشيء نفسه من خلال تحديد الفهرس من الذيل على النحو التالي:

LSET social-media: user: 100 -2 'بدأ دورًا جديدًا ككاتب في LinuxHint'

كما هو متوقع ، تم تعيين العنصر الثالث على السلسلة الجديدة 'بدأ العمل في LinuxHINT'.

إذا حددت فهرسًا خارج النطاق ، فسيؤدي ذلك إلى ظهور خطأ ، كما هو موضح في ما يلي:

LSET Social-media: المستخدم: 100 6 'بدأت المهمة في LinuxHINT'

انتاج |

استنتاج

يعيّن الأمر LSET عنصر قائمة في فهرس محدد لعنصر معين من قائمة Redis مخزّن في مفتاح معين. نظرًا لأن فهارس قائمة Redis تبدأ من 0 ، فهي العنصر الأول. الفهرس 1 هو العنصر الثاني في القائمة ، وهكذا. كما تمت مناقشته ، يمكن تحديد فهارس العناصر التي تبدأ من الذيل باستخدام أرقام سالبة مثل -1 هو العنصر الأخير ، و -2 هو العنصر قبل الأخير ، وهكذا. عندما يتم تمرير فهرس غير موجود ، سيعيد الأمر LSET خطأً. علاوة على ذلك ، يقوم هذا الأمر بإرجاع سلسلة بسيطة ناتجة عن التنفيذ الناجح.