ردیس (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
) را برطرف میکنند.