از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه 41 دوره آموزش Redis از صفر تا حرفهای، مدرس به پیادهسازی عملیات جستجو و مرتبسازی در Redis میپردازد. ایندکسهای مرتبط با فیلدهایی مانند پرایس و تایم لفت ایجاد میشوند و سپس جستجو و مرتبسازی بر اساس این فیلدها انجام میگیرد. همچنین، نحوه نمایش نتایج جستجو و محاسبه تعداد صفحات با استفاده از لیمیت و پرپیج به طور کامل توضیح داده میشود. در انتهای جلسه، مدرس اعلام میکند که فصل آخر دوره با موضوع سرویس کامیشن و استریمز به پایان میرسد و از دانشجویان خواهش میکند کانال آموزشی را به دوستان خود معرفی کنند و سابسکرایب کنند.
نکات کلیدی
پیادهسازی جستجو و مرتبسازی در Redis با استفاده از ایندکس و فیلدهای مانند پرایس و تایم لفت.
نحوه محاسبه تعداد صفحات و نمایش نتایج جستجو با استفاده از لیمیت و پرپیج.
فصل آخر دوره Redis با موضوع سرویس کامیشن و استریمز به پایان میرسد.
از دانشجویان خواهش میکند کانال آموزشی را به دوستان معرفی کنند و سابسکرایب کنند.
متن ویدیو
متن زمانبندیشده این جلسه برای مرور، جستجو و دسترسی سریعتر.
سلام عرض میکنم خدمت دوستان عزیز بریم سراغ ادامه بحثمون توی ردیس و پروژهمونو
میخوایم یه مقدار تکمیل کنیم
[خنده] عذرخواهی میکنم
چ گرفتیم سم یه ساینین بکنیم با یه اکانت خب من یه دونه یوزر الان بسازم
آ رفتم تو ساینین رفتم ببخشید تو ساین آف باید برم خب خب
خب با یوزر سارا ثبتنام بکنیم
خب این صفحه داشبورد من بچهها داره خطا
میده خب بریم اول این خطا رو درست کنیم تو
این صفحه داشبورد قراره لیست موارد
آیتمهایی که مربوط به این کاربر رو نشون
بدم و قابلیت سرچ و سورتم داشته باشه
بیایم اینجا
روی آیتمز با یوزر فکر کنم دیگه آره علی
الحساب یه ریترن بذارم یه دونه آرایه خالی
برگردونه خطای بره
درسته هر کدوم از این ستونا قابلیت سورت داره و البته قابلیت سرچ هم داره خب حالا
ما سورت و سرچو باید چهجوری درست کنیم
زمانی که داریم ایندکسو درست میکنیم
میتونیم بگیم که کدوم ستونها سورتیبل
باشن
زمان درست کردن ایندکس بعدش دیگه
نمیتونید تغییر بدید. خب
بریم اینو پیادهسازی بکنیم. فقط قبلش
بریمز ببینیم فکر کن که چیا رو میتونیم
سرد کنیم چیا رو نمیتونیم.
ا خب این آیتم منه درسته؟ بر اساس نیم میتونم سورت کنم. نیمو و سورت میبرم تو
سورت اونر آیدی نه واقعاً بردنش تو سورت
اشتباهه بچهها به نظر من
بعد ایمجرالم بله اصلاً معنی نداره سورت
دسکریپشنم سورت معنی نداره این چرا معنی
داره اینم معنی داره سورت اینم سورت معنی
داره و تا پایین
اینم معنی نداره سورت بچهها اینم معنی
نداره پس رو اینا معنی داره سورت و نیم
اما رو این سه تا معنی نداره پس من باید
رو این فیلدا برم عملیات سورتو پیادهسازی
بکنم کی باید پیاده سازی بکنم؟ زمانی که
دارم ایندکسمو میسازم.
زمان ساختن ایندکسم باید برم اینو در
حقیقت تعریف بکنم. خب من اینا رو ببندم
بیام اینجا کریت ایندکس ایناش اینجا اینجا
باید بیام بقلش یه دونه ویلگول بزنم
بقیه فیلدامو دونه دونه بنویسم یکیش اونر
آیدی بود
دو نقطه یه دونه از اینا فعلاً خب چون تنبلم هستم یه تیکهشو کپی میکنم
بعد اندینگ بود اندینگ
ات
بعد این بود
بعد این بود
بعد پرایس بود
و لاکس
خب الان این خطهایی که داره میده رو درست
میکنیم و یه دونه اینجا فکر کنم اگه
اشتباه نکنم اینجا از انی بزنید درست میشه
ب یه چیز الکیه ها ولی بذارید که این
خطایی بره
نیم سورتیبل بود بله پس اینجا میزنم
سورتیبل
مساوی ترو
برای اینکه دوباره نخوام بنویسمش کپی
میکنم
دسکریپشن نبود پس اینو میذارم فالس
اونر آیدی نبود اونر آیدی سورتو نمیخواستیم بکنیم بر اساس اونر آیدی
اول باید تایپشو مشخص کنم بعد
اینو
اونر آیدی میگم تایپ
دو نقطه
اسکیم فیلد تایپ از جنس تگه
باز باید تایپشو مشخص بکنم و سورتیبل هست اندینگم تایپش
اسکیما فیلتر از جنس نومریکه
ترو اینو کپی کنم
همشون نومن و دیگه نیاز نیست برگشتو بنویسید خب پس ما
الان اومدیم چیکار کردیم موقع ساختن
ایندکس برگشتیم گفتیم که کدوم ستونا
سورتیبل باشن یه سؤالی آیا من ایندکسو
میتونم تغییر بدم نه من یه بار ایندکسو
ساخته باشم دیگه اجازه اجازه ندارم تغییرش
بدم باید ایندکسه رو برم حذفش بکنم دوباره
دستی هم باید این کارو بکنم و بعد برم
چیکار کنم دوباره بسازمش برای حذف کردنش
میام داخل آربوک
اینو وصلنم به همون دیتابیس دیگه میام اینجا
میریم پایین
میگم که افتیدا
یه چیز داره به نام دراپ ایندکس
ایندکس رو بهش میدم آیدی ایکس د نقطه
آیتمز اسم ایندکسم بود میام اینو بترکونش
ترکوند
حالا
یه بار اپلیکیشنمو ران میکنم دوباره چون
خب استاپ شده بود
یه صفحه رو یه رفرش بدم ایندکس ساخته میشه
از کجا بفهمم ایندکسه ساخته شده
یه سرچ این بالا بکنید
ایندکس کار بکنه سرچه کار کنه
احسنت
خب پس ایندکسمون الان دوباره ساخته شد
بدون مشکل
خب بریم سراغ پیاده سازی خود سرچ و سورت که اینجا داری میبینید من رو هر کدوم که
کلیک میکنم بچهها سورت میشه این خب اینو
بریم پیاده سازی بکنیم این بالا هم
میبینید آدرسم عوض میشه خب
بیایم اینجا
توی قسمت بایوزر
کشش
اول چیزایی که لازم داریمو ایمپورت کنیم
بیاریم
چیا لازم داریم ایمپورت کلاینت
آیتمز ایندکس کی
لایزم لازم داریم خب بیایم اینجا ما باید روی این کار بکنیم
اولین کاری که باید بکنیم باید بریم
آیتمیی که مربوط به این کاربریم
پس من یه کووری اینجا مینویسم
میگم فقط دنبال آیتم که مال این یوزره اد ساین
یوزر آیدی بعداً قراره از این کووری استفاده کنم فقط
مال این آدمو بیارم خب بعد باید چی رو
مشخص بکنم باید سورت و جهت سورتو مشخص
بکنم که داخل این قرار داره
میگم که کانس یه آبجکتی درست میکنم به نام سورت
کرکتریا
تریا مساوی
میگم که برو اینو نگاه کن
ببین داخلش آپشن سورت بای هست یا نه و
همچنین
باید آپشن
دایرکشنم توش باشه اگر این د تا بود
اونوقت بیا چیکار کن
وایو بذار
این و دایرکشنو
بذار دایرکشن پس یه آبجکت اینجوری درست میکنم به شرطی
که این د تا وجود داشت داشته باشم.
خب حالا استپ بعدیمون چیه؟
بریم کویو بزنیم و خروجیشو بگیریم دیگه. کانست
توتال
و داکومنت
مساوی اوت
ک.f.
و یه سری پارامتر باید به این پاس بدم اول که کدوم کجا بره بگرده توی آیتمز ایندکس
کی بعد اینجا بره بگرده
بعد کوی که باید بزنید چیه کویو قبلاً
نوشتم
بعد
سورتش با چی باشه؟ سورت بای باشه با سچ کریا.b
البط نمیخواست کل آبجکتو یه جا پاس میدیم ببخشید کل آبجکتو یه جا پاس میدیم بعد
لیمیتو مشخص میکنیم اگه لیمیت داریم
داریم اینجا لیمیت لیمیتمون میگه که
ضربدر opts
پرپیج
مثلاً حالا میگیم ۵ صفحه ۱۰ تایی میشه ۵۰
تا پس حد بالا میشه ۵۰
پرپچ سایز هر صفحهمم انقده
این خطا روم یه از انی بزنید که دست از
سرتون بردارتی اینجا نباید بزنید
اینجا باید بذارید فکر کنم آره این مال
تایپ اسکریپته بچهها این اصلاً چیز مهمی
نیست. خب
پس ما الان
عملیات سرچو با این شرایط انجام دادیم. چی
به ما برمیگردونه سرچ بکنه؟
به ما باید یه دونه توتال برگردونه. یعنی تعداد کل یه
دونه باید چی برگردونه؟ خود اون
داکومنتهایی که پیدا کرده. یه کنسولاک
فعلاً بذارم.
خروجیشو بریم ببینیم یه بار خب بعد بیایم راجش صحبت کنیم خب الان من هیچی ندارم
درسته خب بریم یه دونه آیتم بسازیم
بزنیم سارا چر
اینم میذارم یه رو سابیت
بریم تو داشبورد خب بیایم اینجا تو کنسول لاک
ایناشش
یه دونه آیتم دارم و اون آیتمم این اون
داکومنتسم اینه یه آرایهای از آبجکتست
که هر آبجکت یه آیدی داره که این بچهها
آیدی نیست آیدی این آیتمه نیست این کلید
اون آیتم است آیدی این آیتم اینه
این آیدی آیتمست
این کلیدشه
و یه ولیو داره که مقدارشه
خب
حالا باید بریم اینو نمایشش رو هم درست
کنیم الان نشون نمیداد دقت کردید اینجا
نشون نمیداد
ما فقط کنسول لاگش کردیم
باید دیسرلایزش بکنم که بتونم نمایشش بدم
خب بیایم اینجا
بین ببندم کنسول لاگو بردارم دیگه کارش
ندارم
میگم ریترن بکن یه آبجکتی باید ریترن بکنی
اول بگم کلاً چند صفحه باشه توتال پیجم چقدر باشه توتال
پیجز
از ریاضی استفاده میکنم یه چیز داره به
نام سیل به سمت بالا گرد میکنه میگم
تعداد کل چیزایی که پیدا کردیو تقسیم بر
پر پیج بکن تعداد صفحات در میاد و به سمت
بالا هم گرد بکن همیشه
خود آیتمزمون چی میشه
اینجا باید از دیسرلایز استفاده بکنم
که بخوام دق اون چیزایی که اومده رو چیکار
کنم دیسرلایزش بکنم میام اینجا میگم که
اون داکومنتی که اومده
برو روش مپ بزن
آیدی یه آیدی داشت یه ولیو دیگه هر چیزی یه
آیدیی داشت یه ولیوی داشت
یه مپ بزن بذار برس اینو
خب اینجا بسته نشده
اشتباهست خب میگم که باید تو ریترن بکنی بذار هر آیتم
دیسترلایز زو بیار
دیر سرز اول یه آیدی میخواد آیدی اون
آیتمه رو میخواد چی بهتون گفتم گفتم که
آیدی اون آیتمه
بیاین بالاتر
اگه نرفته باشه انشاالله
چقدر خب آیدی آیتم بعد اون یه تیکه اولشو برمیداشتم اون چیزی که بعد از هشتگ بودو
لازم داشتم پس میگم که اون آیدیه ریپلی
پلیس بکن
تیکه اولشو یعنی آیتمز هشتگو با هیچی اون چیزی که میمونه میشه با آیدی
اون آیتمه
دومین چیزی که باید پاس بدم ولیو
یه زندیهم میذارم که خطاش بره
اینم دیسرلایزش میکنم
بریم تست کنیم اومدش
بریم یکی دیگه هم اضافه کنیم
مثلاً سارا رات
مثلاً یه هفته یه دونه مثلاً ۵۰ هم به این بدم
یه آیتم دیگه سالا مثلاً دسک
اینم میام
اینو میدم ۵
خب می تو داشبورد سه تا آیتم اومد اینجا میتونید سورت بکنید
بحث پرایز
تایم لفت و همش داره کار میکنه
اینم از پیاده سازی سرچ و سورت و اینا این
فصلم تمام شد بچهها ما داریم به آخرای
دورهمون میرسیم و این دوره هم خوشبختانه
متأسفانه داره تموم میشه
الان فقط یه فصل مونده از دوره ردیس ما که
تقریبا مثلاً میشه بگیم سه چار جلسه دیگه
کلاً ردیس من تموم میشه فصل آخرمونم راجع
به سرویس کامیشن و استریمز راجع به اینه و
راجع به این موضوع صحبت کنیم
یه خواهشی که دارم بچهها حتماً کانال ما
رو معرفی کنید به دوستانتون و حتماً
سابسکرایب بکنید خیلی کمک بزرگیه به ما که
بتونیم انشاالله تایم بیشتری بذاریم
براتون و البته و البته بتونیم
اگر انشاالله عمری باشه دوستان جدیدو
اضافه بکنن به کانال که اونا هم یه سری
دورهها ضبط بکنن دورههایی که حالا من
میگم توشون تخصصی ندارم یا مسلط نیستم
حتماً معرفی کنید سابسکرایب بکنید و ما هم
خوشحال میشیم فعلاً خداحافظ تا جلسه بعدی
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
جستجو و مرتبسازی در Redis با استفاده از ایندکس و فیلدهای مشخصی مانند پرایس و تایم لفت پیادهسازی میشود.
تعداد صفحات جستجو در Redis با استفاده از لیمیت و پرپیج محاسبه میشود.
فصل آخر دوره Redis با موضوع سرویس کامیشن و استریمز به پایان میرسد.
آخرین بهروزرسانی محتوای متنی:
آموزش جامع و کاملاً عملی 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 را بهصورت کاربردی و پروژهمحور یاد بگیرد.