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