از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در این جلسه، مدرس به بررسی فرایند تمیزکاری و پردازش ورودی کاربر برای عملیات جستجو در پروژه فروشگاه میپردازد. ابتدا به حذف کاراکترهای غیر مفید و فاصلهها از ورودی کاربر میرود، سپس به ایجاد فرمت مناسب برای پردازش آن میپردازد. در ادامه، عملیات جستجو در اندکس Redis انجام میشود و نتایج به صورت آبجکتی بازگردانده میشود که در نهایت به صورت مپ ورودی به سیستم انتقال مییابد.
نکات کلیدی
تمیزکاری ورودی کاربر شامل حذف کاراکترهای غیر مفید، حذف فاصلهها و ایجاد فرمت مناسب است.
عملیات جستجو در Redis انجام میشود و نتایج به صورت آبجکتی بازگردانده میشود.
نتایج جستجو به صورت مپ ورودی به سیستم انتقال مییابد.
متن ویدیو
متن زمانبندیشده این جلسه برای مرور، جستجو و دسترسی سریعتر.
سلام عرض میکنم خدمت دوستان عزیز. خب بریم سراغ ادامه پروژهمون و قسمت سرچو
دیگه پیادهسازی بکنیم و ازش استفاده
بکنیم.
خب بیایم اینجا من اینا رو ببندم مال جلسه قبله.
میام توی
آیتم یه دونه گزینه سرچ دارم. خب
د تا ورودی داره. یکی اون چیزی که کاربر
تایپ کرده برای سرچ خب
یکی هم تعداد نتیجه نتایجی که باید
برگردونه مثلاً من ۵ تا نتیجه میخوام
حداکثر بیشتر از ۵ تا به من برنگردونه خب
اون چیزی که کاربر وارد میکنه برای اینکه
بخواد سرچ بکنه اول بچهها همیشه باید یه
تمیزکاری انجام بشه چون امکان داره کاربر
یا صح یا عمداً یه چیز چرت پرتی بنویسه
برای سرچ چه فرایندی باید اتفاق بیفته ۵
تا ۴ تا مرحلهست اول
در حقیقت اولین کاری که باید بکنیم اینه
که بیایم بگیم که اگر داخل متنمون اسپیس
بود نمیدونم هشتگ بود اد ساین بود دات بود
دش بود اینجور چیزا رو حذف بکن فقط حروفو
برای من نگه دار این اولین مرحلهست
مرحله دوم باید اسپیسها رو پاک کنیم بعد
باید بعد اسپلیت بکنیم کلماتی که کاربرم
وارد کرده رو جدا بکنم بعد کلماتو تو این
فرمت باید دربیارم قبل و بعدش یه اد ساین
باید بذارم و در نهایت اینا رو جوینشون
بکنم به همدیگه این چار تا مرحله رو باید
انجام بدم
خب بریم انجام بدیم میگم که کانست
کلیر کلینت ببخشید
مساویس با اون چیزی که کاربرم وارد کرده
میام خط پایین
رپلس آ
میخوام تمام اون دریوریاهایی که مینویسن
و اسپیس و اشتک و ادسان و اینا رو حذف
بکنم. چهجوری این کارو میکنم؟ یه همچین
چیزی مینویسم بچهها.
این A تا زد
A تا زد صفر تا ۹ پس عددم قبول میکنم ازش
اسلش جی
این این
کارو انجام میده بچهها
بعد تریمش میکنم اسپیسهای چپ و راستشو
حذف میکنه
بین یعنی وسطش اگه اسپیس باشه نگه میداره
با اون کار نداره. بعد اسپلیت میکنم.
بر اساس اسپیس میگم جدا کن. اسپلیت کن. بعد که اسپلیت کردی بعد چیکار میکردیم؟
یه ادساین قبل و بعدش میذاشتیم. یه مپ
میزنم
میگم به ازای هر کلمهای که داخلشه
اول چک کن کلمه وجود داشته باشه.
اینو اول چک کن کلمه باشه اسپیس نباشه
اگر کلمهای بود چیکار کن یه ادساین قبلش
بذار
یه ادساین بعدش بذار اگر احیاناً اسپیس بود هیچ کاری نکن
و در آخرم جوینش کن
با یه اسپیس از اینا رو با همدیگه متصل کن
تمام
پس ما الان یه پاکسازی انجام دادیم خب
حالا مرحله بعدی باید عملیات سرچو انجام
میدیم اول یه چند تا چیزو ایمپورت کنم
لازم دارم
یه کلاینتو لازم دارم
اینو میخوام یه دونه
آیتمز ایندکس کی اینو لازم دارم
این سه تا رو لازم دارم و عملیات سرچم
بیایم پایین
پس من الان خیالم راحته که چیزایی که
کاربرم وارد کرده رو تمیزکاری کردم و
درستش کردم عملیات سرچ باز خودش ۳ تا
مرحله داره بچهها خب
مرحله اول چیه؟
اگر کاربر من فرض کنید بچهها چ پ تا
اسپیس پشت هم زده اینتر زده که سرچ کنم تو
این حالت من نباید هیچ نتیجهای بهش
برگردونم پس نگاه میکنم
به کلیند و
مطمئن میشم ولید باشه چهجوری میگم اگر کلینت
مسا ساوی هیچی نبود هیچ هیچی وجود نداشت
اونوقت ریترن کن یه آرای خالی
مرحله دوم
خب من مطمئن شدم که در حقیقت چی نیست نیست چیز دریوری نزده واقعاً چیزی داخلش گذاشته
برای سرچ کردن خب خود عملیات سرچو دیگه
باید بریم انجام بدیم
میام میگم که
کانست
ریزالتز مسا او
کت.
خب چند تا پارامتر باید پاس بدم اول باید بگم کجا بره سرچ کنه آیتمز ایندکس کی میگم
باید بری اینجا سرچ کنی اونی که ایندکس
کردم میگه خب چی رو بگردم میگم کلیندو
بگرد
میگه محدودیتی هم داری میگم بله یه سری
محدودیتو برات میذارم میگم فقط ۵ تا
نتیجه اولو بیار از صفر شروع کن برو تو
سایز دو نقطه سایز سایزم که به عنوان
ورودی بهت دادم اینو
پس از صفر شروع کن برو تا اونجا چی رو داره ایراد میگیره؟ آ ببخشید یه اینجا یه
چیزی جا انداختمیت
اینجا خب پس از صفر شروع کن برو تا پنجمی این د
تا چون یکین میتونید یکیشو حذف کنید
بچهها وقتی کلید و ولیو مقدارش یکی باشه
میتونید یکیشو حذف کنید این یه قاعدهست
توی جاوا اسکریپت خب خب من سرچمو انجام
دادم حالا ولی یه سؤال اینجاست من
نمیدونم خروجی سرچم چه شکلیه که بخوام
برم دیسرلایزش بکنم خب مرحله بعدی کار من
اینه که دیسرلایز بکنم دیگه اینجا
دی
سریال
ان رن د
سرچ رزالت
چیکار میکنم یه کنسول تو لاک فعلاً اینجا
میذارم
خروجی رو ببینم چهجوریه بعد برم فکری بارش
بکنم
اپو ران کنم
خب یه چیزی بیایم سرچ کنیم مثلاً چشم
خب بیایم اینجا توی کنسولمون ببینیم چی داده بمونه خب یه همچین چیزی بچهها داره
برمیگردونه یه آبجکت داره برمیگردونه
خب که یه توتال داره یه داکومنت داره این
داکومنت اون قسمتیه که من نیاز دارم باید
توی این داکیومنت من این ولیو رو بکشم
بیرون این ولیو همون چیزیه که من دنبالشم
پس تو این دیسرلارایز من باید اون ولیو رو
بکشم بیرون میام چیکار میکنم میام میگم
که برو یه مپ بزن روش اون ولیو رو برای من
بکش بیرون تحویل من بده
خب
پس میام میگم اوکی
یه لحظه ببخشید بچهها خب کنسولاگو برمیدارم
روی این یه مپ بزن بعد
به ازای هر آیدی و ولیویی که داخلش هست
چیکار کن
دیسیلایز بکن
اون آیدیه
و ولیو
یه هم اینجا بذار که این خطاش بره این
دسلازو قبلاً نوشته بودیم دیگه یادتون
باشه این آشش یه آیدی به مال ورودی قبول
میکنه و یه دونه ولیو
بعد اینو برمیگردونه به این چیزی که من
میخوام اینو بهم برمیگردونه
خب حالا بریم یه چک بکنیم ببینیم داره کار
میکنه یا نه.
بیایم اینجا من یه رفرش میدم
یه دونه واچ داشتیم اینم آورد پس داره سرچمون کار میکنه بریم بیایم اداش درس
بعدی صحبت کنیم فعلاً خداحافظ ‏Yes.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
در مرحله تمیزکاری ورودی، کاراکترهای غیر مفید و فاصلهها حذف میشوند و فرمت مناسبی برای پردازش ایجاد میگردد.
نتایج جستجو به صورت آبجکتی بازگردانده میشوند و در نهایت به صورت مپ ورودی به سیستم انتقال مییابد.
آخرین بهروزرسانی محتوای متنی:
آموزش جامع و کاملاً عملی 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 را بهصورت کاربردی و پروژهمحور یاد بگیرد.