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