از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه 13 آموزش Redis از صفر تا حرفهای، مدرس به بررسی استفاده از سریالز (Set) در پروژه فروشگاه پرداخته است. در این جلسه، نحوه استفاده از ست برای چک کردن یکی بودن یوزرنیم در زمان ثبت نام و جلوگیری از تکرار آن توضیح داده شده است. همچنین، استفاده از ست برای پیادهسازی قابلیت لایک کردن آیتمها توسط کاربران نیز مورد بررسی قرار گرفته است.
نکات کلیدی
استفاده از ست برای چک کردن یکی بودن یوزرنیم در زمان ثبت نام و جلوگیری از تکرار آن.
استفاده از ست برای پیادهسازی قابلیت لایک کردن آیتمها توسط کاربران.
سریالز (Set) در Redis به عنوان یک ساختار داده مناسب برای ذخیره و جستجوی دادههای منحصر به فرد استفاده میشود.
استفاده از Set در Redis میتواند به بهبود عملکرد و کاهش تکرار دادهها کمک کند.
متن ویدیو
متن زمانبندیشده این جلسه برای مرور، جستجو و دسترسی سریعتر.
سلام عرض میکنم خدمت دوستان عزیز. خب ما جلسه گذشته در رابطه با مفهوم ست توی ردیس
صحبت کردیم.
این جلسه میخوایم بریم استفاده کنیم از ست
و جاهایی که در حقیقت میتونیم تو
پروژهمون بریم سراغ ست رو ببینیم.
خب بیایم اینجا من اینا رو ببندم.
من یه جایی داشتم به نام یوزرز و یه جایی داشتم به نام کریت یوزر درسته؟
این قسمتم گوشی ذهنتون داشته باشید راجع
به اینم برمیگردیم صحبت میکنیم ولی
فعلاً کارمون اینجاست
زمانی که یه کاربر میخواد ثبت نام بکنه
یکی از نکاتی که ما باید رعایت بکنیم اینه
که چک کنیم آیا یوزرنیمی که کاربر میخواد
انتخاب بکنه قبلاً کسی انتخاب کرده یا نه؟
این یکی از کاربردای سته یعنی شما میاید
تمام یوزرنماتون رو میبرید توی یه دونه
ست بعد با دستورایی که ست داره چک میکنید
اون یوزرنیم داخلش هست یا نیست این کارو
با ۸ نمیشد انجام داد چالش داشتیم اونجا
توی ۸ شما باید حتماً آیدی ۸و داشته باشید
تا بری داخلش بگردی اما تو ست میتونی تو
عناصرش بری بگردی
خب بیایم اینو پیادهسازی بکنیم پس ما
میخوایم
چک بکنیم که آیا این یوزرنیم قبلاً
استفاده شده یا نه اگه استفاده شده یه
خطایی رو بدیم اگه استفاده نشده که هیچی
اجازه داره بره ازش استفاده بکنه و این
کارو قراره با ست انجام بدیم
س۳ تا مرحله داره پس چک کردنش خطا دادنش و
الی آخر حالا اول یه دونه اسم برای ستمون
انتخاب بکنیم
میام اسمه رو اینجا مینویسم برای اینکه
دیگه دیگه خیالم راحت باشه اسمه رو اشتباه
نمینویسم همه جا یکسانه اسم رو اینجا سیو
میکنم اکسپورت
کانست
یوزر
نیمز
یونیک
کی اسمشو میذارم
یه فانکشنی که این فقط اسم در حقیقت اون
سه تا رو برا من برمیگردونن فقط کارش
اینه یوزرنیم
یونیک این باعث میشه که خیالم راحت باشه هر جای پروژه میخوام این ست استفاده کنم
فقط کافیه که اینو فراخونی کنم این خودش
اسمه رو بهگردونه
اوکی کاربردش اینه خب اینو کپی میکنم
میام داخل یوزرز اول اینو ایمپورت میکنم
اینجا
خب
بریم سراغ این
قبل اینکه این کارو بکنه من باید چک بکنم
قبل اینکه که بخواد ببره ذخیره بکنه میایم
اینجا
میگم که من باید یه شرطی بذارم بره چک
بکنه توی ستم هست یا نه درسته پس چهجوری
این کارو میکردیم میام اینجا یه کامنت
میذارم که بعداً بدونم این بابت چیه میگم
باید ببینم
اگر یوزرنیم
چهجوری این کارو میکنیم اویت کلاینت
یه دستوری داشت به نام اس از ممبر یادتونه
به جوری صحبت کردیم
اسم سته رو میدم که میشه این فانکشنه رو
فراخونی کنم اسمو بهم برمیگردونه و اون
چیزی که قراره دنبالش توی کجاست اون توی
اینجاست
داخل اینه
ی میگم برو دنبال این بگرد حالا اینجا یه شرط میذارم
اگر بود چیکار بکنم
باید یه دونه خطا
برگردونم بذارید اینم خروجیشو بریزم داخل یه چیزی
این مثل اگزیست خب
اگر بود یه خطایی برگردون میام اینجا میگم
که
ایف
اگزیسترو بود
تو یه خطا برگردون ترو نیو
ارور مثلاً یه همچین چیزی یوزرنیم
زری
مثلاً تیکه
اگرم نبود که کارتو انجام بده ببر تو دیتابیس ذخیره کن آدروایز
پس ما یه همچین سیستمی رو پیاده سازی کردیم
که خیالمون راحت بشه یوزرنیم یونیک کهه و قرار نیست که
[گلویش را صاف میکند][صدای سرفه] یوزرنیم
قبلاً استفاده داشته باشه. آها یه نکتهای
ریس
هر یوزرنیمی هم که ثبت نام میکنه باید
بره تو این سته اضافه بشه که دفعات بعدی
اونم چک بشه. پس اینجا من یه اویتم
میزنم.
کینت.s
یوزرنم این میگم ببر تو این سته اضافهش بکن.
چی رو اضافه بکنه؟ اینو
ببر داخل اون سته اضافه کن که من آپدیت باشه ستم خیالم راحت باشه بریم یه
چک بکنیم اینو و ببینیم که کار میکنه یا
نه باید پروژهمونو ران کنیم
تو مسیر پروژهتون باشید ام پی ام راندد
خب یه لاگ اوت میکنم این آیدی رو یادتونه دیگه پیس آکادمی بریم یه آیدی اصلاً جدید
بسازیم ساینآف خب
مثلاً با سپیده
۱ ۲ ۳ ۴ این ساینا سیوشم میکنم خب ثبتنام شد این
خطا رو فعلاً بچهها باهاش کاری نداریم
بعداً برمیگردیم من دوباره لاگ اوت
میکنم میخوام دوباره با همین سپیده
ثبتنام کنم ببینم اجازه میده یا نه با
همین سپیده
نگاه کنید خطا داد میگه این یوزرنم قبلاً
استفاده شده
خب این یه کاربرد ست توی پروژه ما بریم
سراغ کاربرد بعدی
بیایم ساین لاگین بکنیم مثلاً با همین
پیست آکادمی
زیست خب این سپیده که هستینمونو
احتمالاً درست نکردیم که اینجوری داره میکنه ببینم ثبتنام میکنیم داره
خب اونو درست نکردیم احتمالاً الان پیستکاد قبلاً نبود چرا دوباره اجازه
داد صبر کن یه چیزی اینجا میرد داره
نه اوکی شد حالا توم لاگین کنم خب نه یه
دو میذارم میرم داخل
خب یه آیتم اضافه کنیم. اون آیتم پیشفرضو اضافه میکنم. خب اینجا بچهها نگاه کنید
یه لایک هست میبینید؟ خب من میخوام این
لایکه رو پیادهسازی بکنم. چند تا نکته
داره.
اول من باید یه ستی داشته باشم از
در حقیقت چیزهایی که این یوزر لایک کرده.
یه ست از
آیتمهایی که این یوزر لایک کرده. این
اولین نکته
خب
که من بتونم داخلش برم چک کنم ببینم اینو
لایک کرده یا نه
د
چند تا آیتم این یوزر لایک کرده که باز از اون ستم میتونم بشمارم با دستور اسکارت
گشتن میشه اس ممبرز
تعداد شمردن میشه اسکارت
اگر میخوام چیزی توش بگردم پیدا بکنم میشه سیس ممبر اوکی پس با ست من میتونم این
لایکو کاملاً پیادهسازی بکنم باید یک ستی
داشته باشم از آیتمیی که کاربر من لایک
کرده بعد دیگه رو اون ستا من میتونم هر
کاری بکنم بگردم بشمارم پیدا بکنم همه رو
میتونم انجام بدم بریم بیایم جلسه بعدی
اینو پی اسس کنیم فعلاً خداحافظ بس
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
برای چک کردن یکی بودن یوزرنیم، میتوان از دستورات مانند SISMEMBER استفاده کرد که به بررسی وجود یک عنصر در ست کمک میکند.
برای پیادهسازی لایک کردن، میتوان از دستورات مانند SADD استفاده کرد تا آیتمهای لایک شده توسط کاربران در یک ست ذخیره شوند.
ست در 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 را بهصورت کاربردی و پروژهمحور یاد بگیرد.