از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در این جلسه، مدرس به مفهوم هش کد (Hash) در Redis و نحوه استفاده از آن در ذخیره و بازیابی دادهها پرداخته میشود. به طور خاص، نحوه ذخیره یک مجموعه داده به عنوان یک کلید مادر در Redis، استفاده از دستوراتی مانند `HSET`، `HGET`، `HGETALL`، `HDEL`، و عملیات ریاضی روی مقادیر عددی در داخل هش کد مورد بررسی قرار میگیرد. همچنین، نحوه چک کردن وجود یک کلید در هش کد با دستور `HEXISTS` و پاک کردن کلیدهای خاص با دستور `HDEL` توضیح داده میشود.
نکات کلیدی
هش کد (Hash) در Redis برای ذخیره مجموعهای از دادهها به صورت کلید-مقدار استفاده میشود.
دستوراتی مانند `HSET`، `HGET`، `HGETALL`، `HDEL`، و `HEXISTS` برای کار با هش کد در Redis مورد استفاده قرار میگیرند.
میتوان عملیات ریاضی روی مقادیر عددی در داخل هش کد انجام داد.
دستور `HDEL` برای پاک کردن کلیدهای خاص در هش کد استفاده میشود.
متن ویدیو
متن زمانبندیشده این جلسه برای مرور، جستجو و دسترسی سریعتر.
سلام عرض میکنم خدمت دوستان عزیز. ما توی چند جلسه گذشته در رابطه با مقدمات
ردیس صحبت کردیم. با نحوه ذخیره کردن
استرینگ و عدد داخل ردیسک آشنا شدیم. یه
پروژه کوچولو با همدیگه شروع کردیم و نحوه
پیادهسازی ردیس و استفاده از ردیس توی
پروژهای که مربوط به بحث فرانت بود رو هم
دیدیم.
از که این پروژه هنوز ادامه داره یعنی
تازه شروع شده
حالا میخوام راجع به موضوع صحبت کنیم که بیرب نیست به موضوع جلسه قبلمون یعنی
جایی که ما قرار بود اطلاعات یک وب سایتی
که رندر شدن رو ذخیره بکنیم که دفعه بعد
که کاربرمون رو همون یوآرl ریکوست داشت ما
از ۸ ردیس بهش بدیم و نره سراغ در حقیقت
بک اندمون
چیزی میخوام راجع بهش صحبت کنیم بهش میگن
۸
یه مدل دیگه از دیتاییه که میشه شما داخل
در حقیق ردی ذخیره کنین این عکسو ببینید
ما چیزی که تا الان یاد گرفتیم این بود که
میومدیم یه کلید میدادیم با یه ولیو این
از حالت استرینگش بود خب
تو ۸ ما یه کلید مادر داریم یا یه کلید
پدر داریم پرنتمونه
که داخلش یه مجموعهای از کلید و ولیو
هستش
کلید ولیو کلید ولیو حالت نستت نستت که
نیستم مجموعهای از کلید ولیو هستم اینم
میشه گفت مثلاً اسم داست اسمه
به این میگن ۸ کجاها به درد میخوره مثلاً
جایی که شما قراره یک مجموعهای از دیتا
رو راجع به یک موضوعی مثلاً یک پست هر پست
یک وب لاگ یک تایتل داره مثلاً یه کانتنت
داره مثلاً یه نویسنده داره یه تاریخ داره
یه اطلاعات یه یوزر
مثل اسمش، پسوردش، ایمیلش و و کلی مثال
دیگه که میشه زد.
خب بریم راجع به صحبت کنیم که چهجوری
بتونیم اینا رو ذخیره بکنیم.
باز برای ذخیره ۸ ما یه سری دستور داریم
مربوط به دستورات هش کده. خب اجازه بدید
من اینو بیارم براتون.
خب تصویراتشو نگاه کنید بچهها مربوط به ۸
چیا داریم مثلاً اچ ست داریم که شبیه همون
سته حالا الان میریم مثالشو با هم
میبینیم
اچ ام گت داریم مثلاً دیگه اچ ست و اچ گت
و اچ ام گت و راجع به اینا صحبت میکنیم
الان خب بریم مثالشو با هم ببینیم
بریم اول یه دونه دق ۸ رو با همدیگه ست بکنیم
میگم که اچ ست
میگه که یه اسم بهم بده یه کلید بهم بده
میگم چشم مثلاً کمپانی
بعد کلید اولو میدن نیم مقدارشو میدم مثلاً اسمشو میزنم
این بعد کلید دومو میدم مثلاً سنش چقده میگم سنش مثلاً حدود ۴ ساله
و فعلاً همین پس یه اسمی دادم بعد دیگه
لیست کلید ولوها رو دادم
این دو که میاد یعنی اوکیه ذخیره شده
حالا بیایم مثلاً یه چند تا چیزم این
اضافه فکر کنم مثلاً
بگم که حوزهش چیه
درآمدش مثلاً چقدر اگر انشاالله سابسکرایب بکنید و لایک و
کامنتم یادتون نره یه عددی هست خب اینم از
این حالا ببینیم چی میشه شد ۲ دوباره
اوکیه یعنی داره ذخیره میشه
بریم حالا اینو اطلاعاتشو میخوام بخونم این دفعه میگم که اچ گت
اسم اونش اسم در حقیقت هشو مینویسم بعد
اسم کلیدو مینویسم مثلاً من میخوام
درآمد نداشته رو بخونم خب میگم که دوئ یه
نکتهای رو دقت کنید فقط بچهها
خب ببخشید من جون آب بخورم دارم ساعت ۵ صبح این ویدیو رو براتون ضبط
میکنم قبل از اینکه برم سر کار
عدد من ذخیره کرده بودم اینو جلسات قبل میگفتم یادم رفته بود ولی به صورت
استرینگ برمیگردونه پس اینو خیلی حواستون
باشه که وقتی دارید یک دیتای عددی رو از
ردیس میگیرید باید کانورتش بکنید تبدیلش
بکنید به عدد بعد باهاش کار بکنید خب پس
ما نحوه ذخیره کردن و در حقیقت
گرفتن یک مقدار خاص رو دیدیم. ما میتونیم
کل مقادیر کلید و رو یه جا هم بگیریم با
دستور اچ گت آ فقط اسمشو مینویسم دیگه
اینجا
و یه همچین شکل و شمایلی داره. من یه ذره بزرگش کنم.
اما بچهها یه نکته رو خیلی دقت کنید.
ردیس زمانی که شما همچین ریکوستی بهش بدید
به صورت یک آبجکت خوشگل و ترتمیز بهتون
برنمیگردونهها. اینو این در حقیقت
پلتفرمی که من دارم ازش استفاده میکنم
این شکلی داره نشون میده. در اصل اینجوری
نشون مید به شما برمیگردونه. یک لیستی از
مقادیر به صورت کلید ولیو کلید ولیو پس یه
مرحله کانورتم نیاز داره اگه جایی بخوایم
ازش استفاده بکنیم. اینو خیلی حواستون
باشه.
حالا سؤال بعدی من چهجوری میتونم
در حقیقت یک هش کدو دیلیت بکنم؟ آیا این راهی داره که مثلاً یه هش کدو
دیلیت کنم؟ یه سؤال سؤال دوم
آیا راهی هست مثلاً من چک کنم کلید خاصی
داخل هش کدی هست یا نه؟ بله هست راهش هست
بریم با هم ببینیم
مثلاً من میخوام چک کنم که داخل این هشه
مثلاً سن هست یا نه دستش اینه اچ
اگزیست بعد اسم هش و اون کلیدی که دنبالشید مثلاً
بخونم ایجو داره یا نه اگه یک برگردونه
یعنی هست اگه صفر برگردونه یعنی داخلش
نیست نیست مثلاً اگه اینو بگم یه چیز
دریوری بنویسم میگه صفر کلیدی من داخل این
هش ندارم
اگر میخوام یه شی رو پاک کنم دستور دیل
پاک شد الان من اینو بزنم دیگه نال برمیگرده همچین چیزی وجود نداره و من
دوباره باید بسازمش
خب الان دوباره ساختمش پس دستور دیل میتونید باهاش دیلیت بکنید
آیا میشه کلید خاصی رو پاک کرد بریم ببینیم میشه هم دستور دیلی چک بکنیم با
همدیگه
میگم که برو توی مثلاً کمپانی
سنو پاک کن میشه نمیدونم ببینیم میشه یا
نمیشه
ظاهراً که شد حالا بذار ببینیم اینو اجرا کنیم
کلاً پاک کرد یعنی توجه نکرد من گفتم اینو
پاک کن پاکش کرد پس اینو حواستون باشه
نکته دیگه تو دستورات مربوط به خب حالا یه سؤالی من چهجوری واقعاً بخوام
یه کلیدی رو پاک کنم چیکار کنم یه بار
دیگه اینو ران کنیم که برگرد کرده
یه چکم بکنیم اوکی برگشت بخواید این کارو
بکنید بچهها یه دستوری داریم به نام اچ
دل
بعد اسمشو مینویسید و کلیدی که مدنظرتونه بریم با هم ببینیم الان فقط اونو پاک کرد
نگاه کنید سنو دیگه از توش برداشت
پس اگه خواستیم یه کلید خاصو پاک کنیم با
دستور اچ دل باید این کارو بکنیم
یه سری عملیات ریاضی بچهها میشه روی اعداد داخل ۸ انجام داد. مثلاً میشه چیزی
رو بهش اضافه کرد. چه عدد اینتیجر باشه چه
فلوت باشه فرقی نمیکنه. مثلاً من یه بار
دیگه اینو ران کنم که سن برگرده. میخوام
رو سن کار کنم.
خب
کی بالا پایین نکنین. من اینو کپی میکنم میام پایین.
خب الان من سنو دارم خب فرض کنید میخوام به
سن مثلاً یه تعدادی اضافه کنم چیکار
میکنم دستورش اینه
میگم که اچ
اینکریمنت
وای
میگم برو تو کمپانی سن مثلاً ۱۰ تا زیاد کن ۴ بود باید بشه ۱۴
اچ آی ان
سی آر وی پس اینکریمنت یه آرمجا دار آرشو
جا انداختم
ن کنش ۱۴ یه دیگه ران کنم میشه ۲۴ پس هر
دفعه میشه ۱۰ تا اضافه کرد
میشه در حقیقت به به صورت فلوتم زیاد کرد اینجا نگاه کنید
دستورش اینه اچ اینکریمنت
بای فلوت
کمپانی سنشو یه ریوینیوش دفعه زیاد کنیم
ریوینیوشو مثلاً به اندازه یک و نیم
میخوام زیاد کنم
یکیشو سه و نیم د بود شد سه و نیم پس به صورت فلوتم میشه زیاد کرد
مثلاً من میخوام بدونم که اسمم تو این چند کاراکتره باز یه دستور براش داریم برا
اینکه زیاد پایین نریم من همینجا مینویسم
دستورش اینه اج استیآر لن
کمپانی
مثلاً نیم
چند کاراکتره میگه ۱۳ تاست ۱ ۲ ۳ ۴ ۵ ۶ ۷
۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ تا درست ۱۳ کاراکتره
اگه اسم کلدا رو بخواید یعنی میخوام ببینم تو کمپانی من چند تا کلید دارم میشه اچ
کیز
اینم به درد بخوره بچهها
لیست کلیده رو بهتون میده
به این صورت
مقادی رو برمیگردون فقط و دستور دیگهای نمیمونه. اینم از بحث ۸
بریم بیایم ادامهشو جلسه بعدی صحبت کنیم.
فعلاً خداحافظ.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
دستوراتی مانند `HSET`، `HGET`، `HGETALL`، `HDEL`، و `HEXISTS` برای کار با هش کد در Redis استفاده میشوند.
از دستور `HSET` میتوان برای ذخیره مجموعهای از دادهها به صورت کلید-مقدار در Redis استفاده کرد.
از دستور `HEXISTS` میتوان برای چک کردن وجود یک کلید در هش کد استفاده کرد.
آخرین بهروزرسانی محتوای متنی:
آموزش جامع و کاملاً عملی 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 را بهصورت کاربردی و پروژهمحور یاد بگیرد.