از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه 21 آموزش 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 را بهصورت کاربردی و پروژهمحور یاد بگیرد.