#P1647
POST /v2/batch-accounting/optimize-memory
Optimize Redis Memory
این اندپوینت عملیات بهینهسازی حافظه Redis را به صورت کامل و ساختاریافته انجام میدهد. هدف عملیات شامل: - اندازهگیری حافظه فعلی، - حذف کلیدهای غیرمعتبر، - اجرای فشردهسازی AOF از طریق bgrewriteaof, - و ارائه گزارش میزان حافظه آزادشده است. از آنجا که این عملیات میتواند بر عملکرد موقتی Redis اثر بگذارد، معمولاً در محیطهای Production با احتیاط فراخوانی میشود.
Request Overview
URL:
/v2/batch-accounting/optimize-memoryMethod: 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