کتابخانه‌ی استاندارد · پایگاه داده

ردیس db/redis

کارخواه Redis: کلید و مقدار، هش، لیست، مجموعه و انتشار.

واردسازی دیتابیس.ردیس

ردیس یک پایگاه داده‌ی درون حافظه برای کش، نشست، شمارنده و صف است. این بسته از کتابخانه‌ی hiredis استفاده می‌کند که باید روی سیستم نصب باشد؛ نمونه‌ها برای همین فقط بررسی می‌شوند. برای دستوری که روال جداگانه ندارد دستور را با نام دستور و آرگومان‌ها صدا بزنید.

گونه‌ها

کلاینت Client

ساختار کلاینت
اتصال به ردیس.
نامانگلیسیگونهتوضیح
handlehandleتهی*اشاره‌گر کتابخانه.
db-redis-Client.salam
واردسازی دیتابیس.ردیس

روال ریشه:
    ک := ردیس.اتصال("127.0.0.1"، ۶۳۷۹)
    اگر وارونه ردیس.معتبر(ک):
        سرچاپ ردیس.خطا(ک)
        برگشت
    پایان
    _ := ردیس.احراز هویت(ک، "s3cret")
    _ := ردیس.انتخاب پایگاه داده(ک، ۱)
    سرچاپ ردیس.پینگ(ک)

    _ := ردیس.تنظیم(ک، "greeting"، "سلام")
    _ := ردیس.تنظیم با انقضا(ک، "session:42"، "token"، ۳۶۰۰)
    سرچاپ ردیس.دریافت(ک، "greeting")، ردیس.وجود دارد(ک، "greeting")، ردیس.زمان باقیمانده(ک، "session:42")
    سرچاپ ردیس.افزایش(ک، "visits")، ردیس.افزایش با مقدار(ک، "visits"، ۱۰)، ردیس.کاهش(ک، "visits")
    سرچاپ ردیس.پیوست(ک، "greeting"، "!")، ردیس.طول رشته(ک، "greeting")، ردیس.نوع(ک، "greeting")
    _ := ردیس.انقضا(ک، "greeting"، ۶۰)
    سرچاپ ردیس.کلیدها(ک، "session:*").طول()
    _ := ردیس.حذف(ک، "greeting")

    _ := ردیس.تنظیم فیلد هش(ک، "user:1"، "name"، "مریم")
    _ := ردیس.تنظیم فیلد هش(ک، "user:1"، "city"، "تهران")
    سرچاپ ردیس.دریافت فیلد هش(ک، "user:1"، "name")، ردیس.فیلد هش وجود دارد(ک، "user:1"، "age")، ردیس.تعداد فیلدهای هش(ک، "user:1")
    همه := ردیس.دریافت همه هش(ک، "user:1")
    سرچاپ همه.اندازه()
    _ := ردیس.حذف فیلد هش(ک، "user:1"، "city")

    _ := ردیس.افزودن به انتهای لیست(ک، "jobs"، "a")
    _ := ردیس.افزودن به ابتدای لیست(ک، "jobs"، "b")
    سرچاپ ردیس.طول لیست(ک، "jobs")، ردیس.بازه لیست(ک، "jobs"، ۰، -۱).طول()
    سرچاپ ردیس.برداشتن از ابتدای لیست(ک، "jobs")، ردیس.برداشتن از انتهای لیست(ک، "jobs")

    _ := ردیس.افزودن به مجموعه(ک، "tags"، "go")
    _ := ردیس.افزودن به مجموعه(ک، "tags"، "salam")
    سرچاپ ردیس.عضو مجموعه است(ک، "tags"، "salam")، ردیس.اندازه مجموعه(ک، "tags")، ردیس.اعضای مجموعه(ک، "tags").طول()
    _ := ردیس.حذف از مجموعه(ک، "tags"، "go")
    سرچاپ ردیس.انتشار(ک، "news"، "خبر تازه")

    ناپایا آرگ := وکتور {} برگردان وکتور<رشته>
    آرگ.افزودن("GET")
    آرگ.افزودن("visits")
    پ := ردیس.دستور(ک، آرگ)
    اگر ردیس.پاسخ معتبر(پ) و وارونه ردیس.پاسخ خطا است(پ) و وارونه ردیس.پاسخ خالی است(پ):
        سرچاپ ردیس.نوع پاسخ(پ) == ردیس.پاسخ_رشته، ردیس.پاسخ رشته(پ)
    پایان
    ردیس.آزادسازی پاسخ(پ)
    ناپایا آرگ۲ := وکتور {} برگردان وکتور<رشته>
    آرگ۲.افزودن("LRANGE")
    آرگ۲.افزودن("jobs")
    آرگ۲.افزودن("0")
    آرگ۲.افزودن("-1")
    پ۲ := ردیس.دستور(ک، آرگ۲)
    اگر ردیس.نوع پاسخ(پ۲) == ردیس.پاسخ_آرایه:
        تکرار ردیس.طول آرایه پاسخ(پ۲) در ش:
            سرچاپ ردیس.پاسخ رشته(ردیس.عنصر آرایه پاسخ(پ۲، ش))
        پایان
    پایان
    سرچاپ ردیس.پاسخ صحیح(پ۲)، ردیس.پاسخ_صحیح، ردیس.پاسخ_خالی، ردیس.پاسخ_وضعیت، ردیس.پاسخ_خطا، ردیس.پاسخ_اعشار
    ردیس.آزادسازی پاسخ(پ۲)
    _ := ردیس.پاک‌سازی پایگاه داده(ک)
    ردیس.بستن(ک)
پایان

پاسخ Reply

ساختار پاسخ
پاسخ یک دستور.
نامانگلیسیگونهتوضیح
handlehandleتهی*اشاره‌گر پاسخ.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

پایاها و متغیرها

پاسخ_رشته REPLY_STRING

پایا پاسخ_رشته: صحیح۳۲ = 1
نوع پاسخ: رشته.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

پاسخ_آرایه REPLY_ARRAY

پایا پاسخ_آرایه: صحیح۳۲ = 2
نوع پاسخ: آرایه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

پاسخ_صحیح REPLY_INTEGER

پایا پاسخ_صحیح: صحیح۳۲ = 3
نوع پاسخ: عدد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

پاسخ_خالی REPLY_NIL

پایا پاسخ_خالی: صحیح۳۲ = 4
نوع پاسخ: تهی، مثلاً کلیدی که نیست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

پاسخ_وضعیت REPLY_STATUS

پایا پاسخ_وضعیت: صحیح۳۲ = 5
نوع پاسخ: وضعیت، مثل OK.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

پاسخ_خطا REPLY_ERROR

پایا پاسخ_خطا: صحیح۳۲ = 6
نوع پاسخ: خطا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

پاسخ_اعشار REPLY_DOUBLE

پایا پاسخ_اعشار: صحیح۳۲ = 7
نوع پاسخ: اعشاری.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

روال‌ها

اتصال Connect

روال اتصال(host: رشته، port: صحیح): کلاینت
به سرور ردیس وصل می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

معتبر Ok

روال معتبر(c: کلاینت): منطقی
اتصال برقرار است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

خطا Error

روال خطا(c: کلاینت): رشته
پیام خطا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

بستن Close

روال بستن(c: کلاینت)
اتصال را می‌بندد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

پینگ Ping

روال پینگ(c: کلاینت): منطقی
اتصال زنده است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

انتخاب پایگاه داده Select

روال انتخاب پایگاه داده(c: کلاینت، index: صحیح): منطقی
پایگاه داده‌ی شماره‌دار را برمی‌گزیند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

احراز هویت Auth

روال احراز هویت(c: کلاینت، password: رشته): منطقی
با گذرواژه احراز هویت می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

پاک‌سازی پایگاه داده FlushDB

روال پاک‌سازی پایگاه داده(c: کلاینت): منطقی
همه‌ی کلیدهای پایگاه داده‌ی جاری را پاک می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

تنظیم Set

روال تنظیم(c: کلاینت، key: رشته، val: رشته): منطقی
مقدار کلید را تنظیم می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

تنظیم با انقضا SetEx

روال تنظیم با انقضا(c: کلاینت، key: رشته، val: رشته، seconds: صحیح): منطقی
با انقضا بر حسب ثانیه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

دریافت Get

روال دریافت(c: کلاینت، key: رشته): رشته
مقدار کلید؛ اگر نباشد، رشته‌ی خالی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

وجود دارد Exists

روال وجود دارد(c: کلاینت، key: رشته): منطقی
کلید هست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

حذف Del

روال حذف(c: کلاینت، key: رشته): منطقی
کلید را حذف می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

انقضا Expire

روال انقضا(c: کلاینت، key: رشته، seconds: صحیح): منطقی
انقضای کلید را تعیین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

زمان باقیمانده TTL

روال زمان باقیمانده(c: کلاینت، key: رشته): صحیح۶۴
ثانیه‌های باقی‌مانده تا انقضا؛ ۱- بی‌انقضا و ۲- نبودن کلید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

افزایش Incr

روال افزایش(c: کلاینت، key: رشته): صحیح۶۴
عدد کلید را یکی بالا می‌برد و مقدار تازه را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

افزایش با مقدار IncrBy

روال افزایش با مقدار(c: کلاینت، key: رشته، delta: صحیح۶۴): صحیح۶۴
به اندازه‌ی داده‌شده بالا می‌برد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

کاهش Decr

روال کاهش(c: کلاینت، key: رشته): صحیح۶۴
یکی پایین می‌آورد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

پیوست Append

روال پیوست(c: کلاینت، key: رشته، val: رشته): صحیح۶۴
متن را به مقدار می‌افزاید و طول تازه را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

طول رشته StrLen

روال طول رشته(c: کلاینت، key: رشته): صحیح۶۴
طول مقدار.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

نوع Type

روال نوع(c: کلاینت، key: رشته): رشته
نوع مقدار کلید، مثل string یا hash.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

کلیدها Keys

روال کلیدها(c: کلاینت، pattern: رشته): وکتور<رشته>
کلیدهایی که با الگو جورند؛ روی پایگاه داده‌ی بزرگ کند است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

افزودن به ابتدای لیست LPush

روال افزودن به ابتدای لیست(c: کلاینت، key: رشته، val: رشته): صحیح۶۴
به ابتدای لیست می‌افزاید و طول تازه را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

افزودن به انتهای لیست RPush

روال افزودن به انتهای لیست(c: کلاینت، key: رشته، val: رشته): صحیح۶۴
به انتهای لیست می‌افزاید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

برداشتن از ابتدای لیست LPop

روال برداشتن از ابتدای لیست(c: کلاینت، key: رشته): رشته
از ابتدای لیست برمی‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

برداشتن از انتهای لیست RPop

روال برداشتن از انتهای لیست(c: کلاینت، key: رشته): رشته
از انتها برمی‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

طول لیست LLen

روال طول لیست(c: کلاینت، key: رشته): صحیح۶۴
طول لیست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

بازه لیست LRange

روال بازه لیست(c: کلاینت، key: رشته، start: صحیح، stop: صحیح): وکتور<رشته>
بخشی از لیست؛ ۱- یعنی آخرین عنصر.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

افزودن به مجموعه SAdd

روال افزودن به مجموعه(c: کلاینت، key: رشته، member: رشته): صحیح۶۴
عضوی به مجموعه می‌افزاید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

حذف از مجموعه SRem

روال حذف از مجموعه(c: کلاینت، key: رشته، member: رشته): صحیح۶۴
عضوی را حذف می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

عضو مجموعه است SIsMember

روال عضو مجموعه است(c: کلاینت، key: رشته، member: رشته): منطقی
عضو هست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

اندازه مجموعه SCard

روال اندازه مجموعه(c: کلاینت، key: رشته): صحیح۶۴
شمار اعضا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

اعضای مجموعه SMembers

روال اعضای مجموعه(c: کلاینت، key: رشته): وکتور<رشته>
همه‌ی اعضا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

انتشار Publish

روال انتشار(c: کلاینت، channel: رشته، message: رشته): صحیح۶۴
پیامی را در کانال منتشر می‌کند و شمار گیرندگان را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

تنظیم فیلد هش HSet

روال تنظیم فیلد هش(c: کلاینت، key: رشته، field: رشته، val: رشته): منطقی
فیلدی از هش را تنظیم می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

دریافت فیلد هش HGet

روال دریافت فیلد هش(c: کلاینت، key: رشته، field: رشته): رشته
فیلدی از هش.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

حذف فیلد هش HDel

روال حذف فیلد هش(c: کلاینت، key: رشته، field: رشته): منطقی
فیلدی را حذف می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

فیلد هش وجود دارد HExists

روال فیلد هش وجود دارد(c: کلاینت، key: رشته، field: رشته): منطقی
فیلد هست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

تعداد فیلدهای هش HLen

روال تعداد فیلدهای هش(c: کلاینت، key: رشته): صحیح۶۴
شمار فیلدها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

دریافت همه هش HGetAll

روال دریافت همه هش(c: کلاینت، key: رشته): نگاشت<رشته، رشته>
همه‌ی فیلدها به شکل نگاشت.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

دستور Command

روال دستور(c: کلاینت، args: وکتور<رشته>): پاسخ
دستور دلخواه را با آرگومان‌ها می‌فرستد؛ پاسخ را پس از کار با آزادسازی پاسخ آزاد کنید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

پاسخ معتبر ReplyOk

روال پاسخ معتبر(r: پاسخ): منطقی
پاسخی آمد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

نوع پاسخ ReplyType

روال نوع پاسخ(r: پاسخ): صحیح
نوع پاسخ.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

پاسخ خطا است ReplyIsError

روال پاسخ خطا است(r: پاسخ): منطقی
پاسخ خطاست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

پاسخ خالی است ReplyIsNil

روال پاسخ خالی است(r: پاسخ): منطقی
پاسخ تهی است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

پاسخ صحیح ReplyInt

روال پاسخ صحیح(r: پاسخ): صحیح۶۴
پاسخ عددی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

پاسخ رشته ReplyStr

روال پاسخ رشته(r: پاسخ): رشته
پاسخ متنی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

طول آرایه پاسخ ReplyArrayLen

روال طول آرایه پاسخ(r: پاسخ): صحیح
شمار عنصرهای پاسخ آرایه‌ای.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

عنصر آرایه پاسخ ReplyArrayGet

روال عنصر آرایه پاسخ(r: پاسخ، i: صحیح): پاسخ
عنصری از پاسخ آرایه‌ای.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam

آزادسازی پاسخ FreeReply

روال آزادسازی پاسخ(r: پاسخ)
پاسخ را آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: db-redis-Client.salam