ردیس (Redis) یک پایگاه داده کلید-مقدار در حافظه است که قابلیت ذخیره داده‌ها با زمان انقضا را فراهم می‌کند. در بسیاری از موارد، نیاز است که یک کلید را در ردیس ایجاد کنید و همزمان زمان انقضای آن را نیز مشخص نمایید. این ویژگی به‌ویژه در پیاده‌سازی سیستم‌های کش (Cache) بسیار کاربردی است.

تعیین زمان انقضا به روش سنتی

به‌طور معمول، برای تعیین زمان انقضا در ردیس، ابتدا کلید را با دستور SET ایجاد می‌کنیم و سپس با دستور EXPIRE زمان انقضای آن را تنظیم می‌نماییم. به‌عنوان مثال:

SET num 1  
EXPIRE num 10  

در این مثال، کلید num با مقدار 1 ایجاد شده و پس از ۱۰ ثانیه منقضی می‌شود. با استفاده از دستور TTL num می‌توان زمان باقی‌مانده تا انقضا را مشاهده کرد.

ترکیب دو دستور SET و EXPIRE با استفاده از SETEX

ردیس برای ساده‌تر کردن این فرآیند، دستور SETEX را ارائه داده است که امکان ایجاد کلید و تعیین زمان انقضا را در یک دستور واحد فراهم می‌کند. نحوه استفاده از این دستور به‌صورت زیر است:

SETEX num 10 1  

در این دستور:

  • num نام کلید است.
  • 10 زمان انقضا بر حسب ثانیه.
  • 1 مقدار کلید.

با اجرای این دستور، کلید num با مقدار 1 ایجاد شده و پس از ۱۰ ثانیه به‌طور خودکار حذف می‌شود.

تعیین زمان انقضا بر حسب میلی‌ثانیه با PSETEX

در برخی موارد، نیاز است زمان انقضا با دقت بیشتری (بر حسب میلی‌ثانیه) تعیین شود. برای این منظور می‌توان از دستور PSETEX استفاده کرد:

PSETEX num 1000 1  

در این مثال، کلید num پس از ۱۰۰۰ میلی‌ثانیه (۱ ثانیه) منقضی می‌شود.

کاربردهای عملی

دستورات SETEX و PSETEX در پیاده‌سازی سیستم‌های کش بسیار مفید هستند. به‌عنوان مثال، می‌توان تنظیمات موقت یا داده‌های حساس به زمان را در ردیس ذخیره کرد تا پس از مدت مشخصی به‌صورت خودکار حذف شوند.

SETEX ab_config_timeout 100 "some_value"  

در این حالت، کلید ab_config_timeout پس از ۱۰۰ ثانیه منقضی می‌شود.

نتیجه‌گیری

استفاده از SETEX و PSETEX در ردیس، فرآیند ایجاد کلیدها با زمان انقضا را ساده و کارآمد می‌کند. این دستورات به‌ویژه در سناریوهای کش‌گذاری و مدیریت داده‌های موقت بسیار کاربردی هستند و نیاز به اجرای دو دستور مجزا (SET و EXPIRE) را برطرف می‌کنند.

Categorized in: