زمان تخمینی مطالعه:‌ 9 دقیقه

نوع داده ها (Data types) در ردیس


1- رشته: رشته ها بنیادی ترین ساختار داده ای در ردیس هستند. رشته ها در ردیس دنباله ای از بایت ها هستند.

redis 127.0.0.1:6379> SET name "tutiran"

دستور بالا برای کلید name مقدار tutiran را ایجاد می کند.

نکته: "در صورتی که برای کلید name مقداری از قبل ست شده باشد مقدار جدید را جایگزین آن می کند. برای جلوگیری از این اتفاق می توان از دستور nx در قسمت flag استفاده کنید"

redis 127.0.0.1:6379> SET name "tutiran" nx

نکته: " دستور xx نیز برای ایجاد مقدار جدید برای کلید است فقط در صورتی که برای این کلید از قبل مقداری ست شده باشد.

redis 127.0.0.1:6379> SET name "tutiran" xx

به مثال زیر دقت کنید:

redis 127.0.0.1:6379> SET count 5 

در اینجا برای کلید count مقدار 5 اعمال شده است

حال دستور INCR و INCRBY برای افزایش این مقدار و دستور DECR و DECRBY برای کاهش مقدار آن است:

redis 127.0.0.1:6379> INCR count 

خروجی

(integer) 6

نکته: "به علاوه اتمیک بودن ردیس در صورتی که 2 کاربر همزمان این دستور را اجرا کنند برای هر دو مقدار 7 نمایش داده خواهد شد"

با اجرای دستور INCRBY و DECRBY می توانیم میزان افزایش یا کاهش را تعیین کنیم:

redis 127.0.0.1:6379> INCRBY count 3

خروجی

(integer) 9

دستور GET نیز برای گرفتن مقدار است:

redis 127.0.0.1:6379> GET name 

دستور بالا مقدار کلید name را می گیرد.

2- هش (hashes): هش ها مجموعه ای از زوج مرتب های کلید و مقدار هستند. در حقیقات هش ها بین رشته کلید ها و رشته مقادیر هستند بنابراین از آن ها برای نشان دادن شیء ها استفتده می شود.

redis 127.0.0.1:6379> HMSET user:1 username tutiran.com password tutiran

دستور بالا یک شیء از user ایجاد می کند

برای گرفتن مقدار آن از دستور زیر استفاده می شود:

redis 127.0.0.1:6379> HGETALL user:1

خروجی

1) "username"
2) "tutiran.com"
3) "password"
4) "tutiran"

برای گرفتن یک فیلد به صورت جداگانه نیز از دستور زیر استفاده می شود:

redis 127.0.0.1:6379> HGET user:1 username

خروجی

"tutiran.com"

3- لیست ها: لیست ها در حقیقت پشته ای از رشته ها هستند با این تفاوت که از هر دو طرف قابل درج می باشند.

redis 127.0.0.1:6379> lpush tutiran redis

خروجی

(integer) 1

دستور بالا مقدار redis را به لیست tutiran اضافه می کند.

redis 127.0.0.1:6379> rpush tutiran python

خروجی

(integer) 2

دستور بالا مقدار python را به انتهای لیست tutiran اضافه میکند.

برای دریافت مقادیر داخل یک لیست از دستور lrange استفاده می کنیم. توجه داشته باشید که در این دستور حتماً باید ابتدا و انتهای لیست دریافتی را مشخص کنید

redis 127.0.0.1:6379> lrange tutiran 0 2

خروجی

1) "redis"
2) "python"

همچنین برای حذف یک مقدار از لیست از دستورات LPUSH (حذف از سمت چپ) و RPUSH (حذف از سمت راست) استفاده می کنیم.

با استفاده از دستور LTRIM نیز می توان تمام مقادیری که داخل محدوده تعیین شده نیستند را از داخل لیست حذف کرد

به مثال زیر توجه کنید:

redis 127.0.0.1:6379> ltrim tutiran 0 3

خروجی

OK

این دستور تمام مقادیری که در خانه های 0,1,2,3 قرار دارند را نگه داشته و مابقی را حذف می کند.

4- مجموعه ها: مجموعه ها اجتماعی از رشته های نامرتب هستند.

redis 127.0.0.1:6379> sadd tutiran redis

خروجی

(integer) 1

دستور بالا به مجموعه tutiran مقدار redis را اضافه می کند.

نکته:"در صورتی که مقدار وارد شده در مجموعه تکراری باشد این مقدار به مجموعه دیگر اضافه نمی شود برای مثال اگر یک بار دیگر مقدار redis را به مجموعه tutiran اضافه کنیم در پاسخ عبارت (integer) 0 را نمایش می دهد که این بدین معناست که این مقدار به مجموعه اضافه نمی شود"

برای نمایش اعضای یک مجموعه از دستور smembers استفاده می کنیم.

به مثال زیر توجه کنید:

redis 127.0.0.1:6379> sadd tutiran redis

خروجی

(integer) 1
redis 127.0.0.1:6379> sadd tutiran python

خروجی

(integer) 1
redis 127.0.0.1:6379> sadd tutiran spark

خروجی

(integer) 1
redis 127.0.0.1:6379> smembers tutiran

خروجی

1) "spark"
2) "python"
3) "redis"

5- مجموعه مرتب شده: مجموعه های مرتب شده نیز مانند مجموعه های مرتب شده هستند با این تفاوت که هر عضو علاوه بر مقدار، شامل یک عدد به نام score می باشند. اعضای این مجموعه ها بر اساس score ها مرتب می شوند.

برای اضافه کردن یه عضو به مجموعه مرتب شده از دستور zadd استفاده می کنیم:

redis 127.0.0.1:6379> zadd world-cup 1998 France 

خروجی

(integer) 1
redis 127.0.0.1:6379> zadd world-cup 2002 Korea 

خروجی

(integer) 1
redis 127.0.0.1:6379> zadd world-cup 2006 Germany

خروجی

(integer) 1
redis 127.0.0.1:6379> zadd world-cup 2010 Africa 

خروجی

(integer) 1
redis 127.0.0.1:6379> zadd world-cup 2014 Brazil

خروجی

(integer) 1

مثال بالا مجموعه ای از جام های جهانی ورزش فوتبال از سال 1998 است که score هر عضو از این مجموعه سال برگزاری آن است.

حال برای نمایش آن ها از دستور ZRANGE استفاده می کنیم. توجه داشته باشید که در اینجا نیز مانند نمایش لیست ها حتماً باید ابتدا و انتهای مجموعه را مشخص نمایید. برای مثال:

redis 127.0.0.1:6379> ZRANGE world-cup 0 10

خروجی

1) "France"
2) "Korea"
3) "Germany"
4) "Africa"
5) "Brazil"

همچنین دستور ZREVRANGE مقادیر را به صورت برعکس مرتب می کند.

نوشتن دستور WITHSCORES در داخل دستور ZRANGE باعث می شود که score ها هم نمایش داده شوند:

zrange world-cup 0 10 withscores

خروجی

1) "France"
2) 1998.0
3) "Korea"
4) 2002.0
5) "Germany"
8) 2006.0
7) "Africa"
8) 2010.0
9) "Brazil"
10) 2014.0

لطفا در راستای هرچه بهتر شدن کیفیت مطالب نظر خود را در رابطه با این سرفصل برای ما ارسال نمایید.