حافظه پنهان عمدتاً برای ذخیره داده هایی استفاده می شود که اغلب استفاده می شوند یا نوعی محاسبات پیچیده هستند. حافظه پنهان همچنین برای بهبود عملکرد برنامه و کاهش تأخیر API استفاده می شود. حافظه کش از رم استاتیک پرسرعت ساخته شده است بنابراین از حافظه اصلی معمولی سریعتر خواهد بود. حافظه کش به دلیل سرعت آن گسترده خواهد بود. N تعداد کش در حافظه موجود است. Redis یکی از ذخیرهسازیهای منبع باز در حافظه است که دادهها را در فرمت کلید-مقدار با دوام اختیاری ذخیره میکند. بنابراین هنگام طراحی کش توزیع شده، باید موارد زیر را در نظر بگیریم تا با تاخیر کم با هزینه کم مواجه شویم.
آیا ذخیره سازی مورد نیاز است؟
با توجه به نکات زیر میتوانیم مشخص کنیم که آیا حافظه پنهان برای برنامه مورد نیاز است یا خیر.
- تعداد عملیات خواندن و نوشتن
- تعداد عملیات خواندن در سطح داده یا کاربر.
- داده ها را می توان برای یک دوره زمانی خاص به فرمت های مختلف تبدیل کرد. زمان محاسبات سنگین را کاهش می دهد.
- داده های انتزاعی یا سطح بسیار بالا که توسط برنامه مکررا استفاده می شود.
- فرکانس به روز رسانی داده ها در یک دوره زمانی.
آیا حافظه پنهان توزیع شده مورد نیاز است؟
چندین برنامه می توانند از Redis یکسان برای هدف ذخیره سازی خود استفاده کنند یا برنامه های جداگانه می توانند Redis خود را نیز داشته باشند.
بر اساس نکات زیر میتوانیم بررسی کنیم که آیا سیستم به حافظه پنهان توزیع شده نیاز دارد یا خیر.
- داده های ذخیره شده در Redis برای چندین برنامه مشترک خواهد بود. در این صورت، از داده های تکراری برای برنامه های جداگانه اجتناب می شود.
- در حین انجام بهروزرسانیها روی دادههای حافظه پنهان، میتوانیم یک بهروزرسانی را روی یک نمونه معمولی Redis انجام دهیم، بنابراین نیازی به بهروزرسانی در برنامههای جداگانه نیست.
- Redis در یک ماشین جداگانه مستقر می شود، بنابراین به راحتی با سرور برنامه همراه می شود. بنابراین اگر سرور برنامه از کار بیفتد، Redis برای بقیه برنامه ها در دسترس خواهد بود. اما به تنهایی برای ابرهای اولیه قابل اجرا خواهد بود.
فرمت داده
هنگامی که ما شروع به استفاده از داده ها می کنیم، باید آنها را در قالب کلید-مقدار ذخیره کنیم. کلید یک رشته یا کلید هش خواهد بود. Redis انواع مختلفی از ساختارهای داده را برای تصمیم گیری کلید بر اساس نیازهای ما ارائه می دهد. قالب کلید باید با طرح تجاری ما همراستا باشد. در حین خواندن داده ها از کش می توانیم از آن کلید به عنوان ورودی استفاده کنیم و می توانیم داده های کش مربوطه را به عنوان پاسخ دریافت کنیم.