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