از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه 20 آموزش Redis از صفر تا حرفهای، مدرس به پیادهسازی یک سورتد لیست در Redis میپردازد تا بتواند آیتمهایی با زمان پایان مشخص را ذخیره و جستجو کند. این عملیات با استفاده از دستور ZRANGE انجام میشود که به بازیابی آیتمهایی که زمان پایانشان بعد از زمان فعلی است و محدود کردن نتایج به ۱۰ آیتم اول کمک میکند. همچنین، مدرس به ایمپورت کتابخانههای لازم و تنظیم پارامترهای مرتبط با این عملیات اشاره میکند.
نکات کلیدی
پیادهسازی سورتد لیست در Redis برای ذخیره زمان پایان آیتمها به صورت میلی ثانیه.
استفاده از دستور ZRANGE برای جستجو و بازیابی آیتمهایی که زمان پایانشان بعد از زمان فعلی است و محدود کردن نتایج به ۱۰ آیتم اول.
ایمپورت کتابخانههای لازم و تنظیم پارامترهای مرتبط با عملیات سورتد لیست در Redis.
متن ویدیو
متن زمانبندیشده این جلسه برای مرور، جستجو و دسترسی سریعتر.
سلام عرض میکنم خدمت دوستان عزیز. بریم سراغ قسمت آخر این درت فصل. میخوایم بریم
سراغ اینکه اینو پیادهسازی بکنیم.
اینم بچهها دقیقاً مثل همون چیزی که سر
ساختن آیتم و ویو دیدیم. زمانی که یک آیتم
ساخته میشه من باید اندینگ تایمش رو هم تو
یه سورتد لیستی ذخیره بکنم. این فعالیت
اولش اینه که بعداً بتونم ازش استفاده
بکنم. اول میرم کلیدشو میسازم
یه
برای سورتد لیستش باید یه اسم بذارم
آیتمز بای اندینگ ات کی
آیتم دو نقطه اندینگ ات
خب
اینو اینو میارم تو کجا؟ توی زمانی که
آیتمو دارم میخوام بسازم
اینجا
یکی دیگه هم باید اضافه کنم
اوت کینت.ز زد
اد
این
چی یه ولیو داره که میشه همون آیدی و یه اندینگ داره مثلاً یه اسکور داره
براش اسکور
که میشه چی بچهها میشه این اتریبیوته
داخلش یه دونه چی داره کریت اداره
ببخشید این کریت نه یه دونه
اندینگ داره باید تبدیلش کنم به میلیثانیه
بعد ذخیره کنم
به این صورت یعنی تایمه رو تبدیل میکنم میلی ثانیه
اینجا ذخیرهش میکنم
این از زمانی که داره ذخیره میشه فقط یه
چک کنم چیزی غلط نباشد
نه همه چی درسته خب خب حالا من سورتد
لیستو دارم فرض کنید از یه سری کالا سورتد
لیست دارم که مثلاً زمان پایانشون ست شده
خب
میخوام اینجا
مثلاً بره تو اون سورتد سته نگاه بکنه مثلاً امروز فرض کنیم مثلاً ۱۲
مرداد سال ۱۴۰۴ه فرض کنیم میگم که اونایی
که ۱۲ مرداد گذشته تاریخ شما اونا رو ول
کن اونایی که قبلاً تاریخشون تموم شده رو
ول کن اونایی که هنوز تاریخشون مونده خب
مثلاً ۱۰ تا اولشو بیار بهم نشون بده
مثلاً یه مثال بذارید تو عکس بیارم بهتون
نشون بدم فکر کنم بهتر باشه
بذار این عکسو نگاه کنید مثلاً فرض کنید من یه همچین سورتد لیستی دارم خب اینم
زمانه مثلاً بث میلیثانیه فرض کنید
سه تا آیتمه این کی کی مثلاً مثلاً هرجیش
تموم میشه برث میلیثانیه فرض کنید مثلاً
الانو من تبدیل کنم به میلیثانیه میشه ۱۳۰
تایم الانو هرچی که هستی فرض کنید
میگم که برو اون آیتمایی که
تایم حراجیشون بعد از ۱۳۰ه رو پیدا کن
مثلاً ۱۰ تا اولو بیار این ۱۲۰ رد میشه
چون تایم حراجیش تموم شده مال مثلاً دیروز
بوده فرض کنید اما این د تا هست میگم این
د تا رو برا من بیار میخوام نشون بدم یا
مثلاً ۱۰ تاشو بیار میخوام میخوام نشون
بدم خب این میشه اون کولی که من باید بزنم
در حقیقت
آیتم رو بیارم این کارو بچهها توی سورتد
لیست قبلاً دستورشو دیده بودیم خیلی راحت
با زد رنج میتونیم انجام بدیم خیلی راحت
هم میتونیم لیمیت کنیم بگیم مثلاً یه
تعداد مشخصی رو بیار هم میتونیم بگیم
مثلاً از کیو بیار مثلاً از اینجا باید
بگیم که از الان تا بینهایت رنجمون میشه
اینجوری
و مثلاً بگیم از الان تا بیهات نهایت مثلا
۱۰ تاشو بیار بریم اینو با هم پیاده سازی
بکنیم
خب
بای اندینگ تا اینجا باید بیایم این اون
فانکشنست که باید درستش کنم یه سری چیزا
باید ایمپورت کنم بذار من کل اینو بیارم
هرچی لازم نداشتم پاک میکنم
خب اینو لازم ندارم
کلاینتو میخوام سرلایزو نمیخوام
اینو نمیخوام
از اینم فقط
اینو میخوام این آخری که ساختم میخوام
و دیسیلاو میخوام خب بریم سر این اردر مهم نیست اینجا فعلاً آفست بچهها میشه
همون شروع کانتمون چندتایی که میخوام
برگردونم خب
بریم سراغ دستور زد رنج یکی از اون
دستورای جالب در حقیقت سورت لیسته
میگم کانست
این قراره در ن یه سری آیدی به من
برگردونه دیگه درسته
یعنی تو این وقتی میگم برگردون اینا رو برمیگردونه
این ممبرا رو برمیگردونه که همون آیدیا
من بعد آیدیها رو داشته باشم پیدا کردن
آیتم هست تو اون هشا کاری نداره این آب
خوردنه خبز
بریم آیتماشو بدیم اول باید بگم کجا به کدوم سورتد لیست میگم تو این سورتد لیست
باید بری این کارو بکنی
میگه خیلی خب
بعد میگه که بازه رو به من مشخص کن میگم
از الان
تا بینهایت برو جلو مثبت بینهایت
بعد میگه خب آیتمام چیه پارامترام چیه میگم بر اساس
اسکور این کارو انجام بده رنجو انجام بده و یه لیمیتی هم میخوام بذاری که
اولین آیتمی که با این شرایط پیدا کردی
میشه آفستم که صفره تعدادشم میشه کانت که
مثلاً ۱۰ تاه
پس میگم که برو تو اون سورتد لیستم تو این بازه اسکور این ۱۰ تای اولو برا من بیار
سورتشم فعلاً کاری ندارم فعلاً دیسندینگه
دیفالتش ولی میشه عوضش کرد
حالا برای اینکه مطمئن شیم داره کار
میکنه میتونم یه کار کنم
بریم کار میکنه یا نه بریم به چند تا آیتم اضافه کنیم
اینا الان تایمای اندشون فرق میکنه بچهها.
خب همشونو گذاشتم رو یک دقیقه دیگه ولی خب
با یه چند ثانیه اختلافه حالا
بیام اینجا برم صفحه اصلی
که این کووری رام بشه خب حالا بیام اینجا
ببینم آیدیها رو بهم میده ایناش اون سه تا
قلمی که درست کردم اینم آیدیش
اینا دیر مثلاً دیر حالا چون ۱۰ تا گفتم
همه رو آورد دیگه هر سه تاشو برام آورد
حالا با آیدیا فقط کافیه که برم ریکوست
بذارم بگم این آیتما رو از توی ردیس برای
من بیار میخوام نشون بدم که باشه برای
جلسه بعد فعلاً خداحافظ
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
برای ذخیره آیتمهایی با زمان پایان مشخص، از سورتد لیست در Redis استفاده میشود. زمان پایان آیتمها به صورت میلی ثانیه ذخیره میگردد.
از دستور ZRANGE استفاده میشود تا آیتمهایی که زمان پایانشان بعد از زمان فعلی است را بازیابی کنیم.
نتایج جستجو را میتوان با استفاده از پارامترهای مرتبط با دستور ZRANGE محدود کرد، به عنوان مثال تنظیم تعداد آیتمهای نمایش داده شده به ۱۰ آیتم.
آخرین بهروزرسانی محتوای متنی:
آموزش جامع و کاملاً عملی Redis به زبان فارسی؛ از نصب و راهاندازی تا پیادهسازی الگوهای حرفهای. در طول این دوره تمرینمحور، یک اپلیکیشن فروشگاه اینترنتی میسازیم و با مفاهیمی مثل مدلسازی داده، جستجو، همزمانی و ارتباط سرویسها در دنیای واقعی کار میکنیم. در این دوره چه یاد میگیرید؟ راهاندازی Redis بهصورت لوکال و کار با CLI دستورات افزودن و Query گرفتن از دادهها کار با Hashها، Listها، Setها و Sorted Setها (رتبهبندی و امتیازدهی) ایجاد یکتایی داده با Setها + تمرینهای عملی Pipelining برای بهینهسازی کارایی Design Patterns قدرتمند مخصوص Redis و نکات و Gotchaهای مهم تبدیل مدلهای رابطهای به مدل Redis (Data Modeling) HyperLogLog برای شمارش تقریبی توسعه قابلیتها با Scripting مدیریت Concurrency و حل مسائل همزمانی جستجو و فیلتر پیشرفته با RediSearch (Querying & Search in Action) ارتباط بین سرویسها با Streams پیادهسازی و تمرین مستمر روی پروژه E-Commerce مخاطبان برنامهنویسان بکاند و فولاستک، مهندسان داده و هرکسی که میخواهد Redis را بهصورت کاربردی و پروژهمحور یاد بگیرد.