Skip to main content
#P1647

POST /v2/batch-accounting/optimize-memory

Optimize Redis Memory

این اندپوینت عملیات بهینه‌سازی حافظه Redis را به صورت کامل و ساختاریافته انجام می‌دهد. هدف عملیات شامل: - اندازه‌گیری حافظه فعلی، - حذف کلیدهای غیرمعتبر، - اجرای فشرده‌سازی AOF از طریق bgrewriteaof, - و ارائه گزارش میزان حافظه آزادشده است. از آنجا که این عملیات می‌تواند بر عملکرد موقتی Redis اثر بگذارد، معمولاً در محیط‌های Production با احتیاط فراخوانی می‌شود.

Request Overview

URL: /v2/batch-accounting/optimize-memory
Method: POST
Middleware: authWithJwt, shamsiDate

Body Parameters

این اندپوینت هیچ ورودی ندارد.

Field Type Required Description
No parameters

Request Example

POST /v2/batch-accounting/optimize-memory
{}
  

Response (Success)

Field Type Description
success boolean وضعیت کلی عملیات
data.initial_memory integer حجم حافظه Redis پیش از عملیات (بر حسب بایت)
data.final_memory integer حجم حافظه Redis پس از عملیات
data.saved_memory integer میزان حافظه آزادشده
data.optimization_percentage float درصد بهبود حافظه (saved_memory / initial_memory × 100)
message string پیام نهایی شامل درصد بهینه‌سازی
{
  "success": true,
  "data": {
    "initial_memory": 183783424,
    "final_memory": 119013376,
    "saved_memory": 64770048,
    "optimization_percentage": 35.25
  },
  "message": "بهینه‌سازی کامل شد. 35.25% حافظه آزاد شد."
}
  

Response (Server Error)

{
  "success": false,
  "message": "خطا در بهینه‌سازی: Internal server error..."
}
  

Internal Architecture

Component Description
getRedisMemoryUsage() استخراج مقدار مصرف حافظه Redis پیش از عملیات و پس از عملیات
Redis::eval() اجرای اسکریپت Lua برای شمارش و حذف کلیدهای غیرمعتبر یا کلیدهایی که باید TTL داشته باشند. (در نسخه فعلی فقط بخش اسکلت حذف نوشته شده و قابل گسترش است.)
Redis::bgrewriteaof() عملیات فشرده‌سازی AOF برای کاهش مصرف فضای دیسک و حافظه
saved_memory اختلاف میان initial_memory و final_memory
optimization_percentage محاسبه درصد بهینه‌سازی با فرمول دقیق round((saved / initial) × 100, 2)

Process Flow

Validate JWT Token
Get Initial Memory Usage
Execute Lua Script for Orphan/Invalid Keys
Run Redis BGREWRITEAOF
Measure Final Memory Usage
Calculate Saved Memory & Percentage
Return Final JSON Report