Redis یک پایگاه داده متنباز، درونحافظهای (In-Memory) و از نوع Key-Value است. یکی از ساختارهای دادهای مهم در Redis، نوع داده Hash میباشد.
Hash در ردیس ساختاری است که بین یک فیلد متنی (field) و یک مقدار متنی (value) ارتباط برقرار میکند. هر Hash میتواند شامل تعداد زیادی جفت فیلد-مقدار باشد، در حالی که مصرف حافظه آن بهینه است. به همین دلیل Hash گزینهای بسیار مناسب برای نمایش آبجکتها است.
برای مثال، میتوان اطلاعات یک مشتری را به شکل زیر در قالب Hash ذخیره کرد:
| Field | Value |
|---|---|
| name | Ali Ansari |
| ali@example.com | |
| address | Tehran |
| customer_id | 1024 |
در این آموزش، نحوه ایجاد، ویرایش، خواندن و حذف دادهها در Hashهای Redis را بررسی میکنیم.
ایجاد Hash در Redis
برای ساخت یک Hash از دستور HSET استفاده میشود:
HSET poet:Verlaine nationality Frenchساختار دستور:
HSET key field valueاگر فیلد جدید باشد، خروجی:
(integer) 1اگر همان فیلد قبلاً وجود داشته و فقط مقدار آن تغییر کند:
(integer) 0نکته نامگذاری کلیدها
استفاده از : یا - یا . در کلیدها باعث خوانایی بهتر میشود. مثال:
user:1001:profileاضافه کردن فقط در صورت نبود فیلد
HSETNX poet:Verlaine nationality Frenchاین دستور فقط زمانی مقدار را ثبت میکند که فیلد وجود نداشته باشد.
ثبت چند فیلد همزمان
HMSET poet:Verlaine born 1844 died 1896 genre Decadentخروجی موفق:
OKخواندن اطلاعات از Hash
بررسی وجود یک فیلد
HEXISTS poet:Verlaine nationalityخروجی:
-
1→ وجود دارد -
0→ وجود ندارد
دریافت مقدار یک فیلد
HGET poet:Verlaine nationalityدریافت چند مقدار همزمان
HMGET poet:Verlaine born diedدریافت همه فیلدها
HKEYS poet:Verlaineدریافت همه مقدارها
HVALS poet:Verlaineدریافت کل دادههای Hash
HGETALL poet:Verlaineتعداد فیلدهای یک Hash
HLEN poet:Verlaineطول مقدار یک فیلد
HSTRLEN poet:Verlaine nationalityحذف فیلد از Hash
HDEL poet:Verlaine born diedخروجی نشان میدهد چند فیلد حذف شدهاند:
(integer) 2اگر فیلدی وجود نداشته باشد، نادیده گرفته میشود.
جمعبندی
ساختار Hash در Redis یک روش سریع، کمحجم و کارآمد برای ذخیرهسازی دادههای ساختاریافته شبیه آبجکتها است. مهمترین قابلیتهای آن شامل:
-
ایجاد و ویرایش دادهها با
HSET -
خواندن دادهها با
HGETوHGETALL -
بررسی وجود داده با
HEXISTS -
شمارش فیلدها با
HLEN -
حذف فیلدها با
HDEL
استفاده صحیح از Hashها باعث بهینهسازی حافظه و افزایش سرعت پردازش در اپلیکیشنهای مبتنی بر Redis میشود.
