ឯកសារ API
ការណែនាំអំពីការឃ្លាំងទិន្នន័យឆ្លើយតប និងការបញ្ចូល CDN
បង្កើនប្រសិទ្ធភាព Smart Money API ដោយប្រើយុទ្ធសាស្ត្រឃ្លាំងទិន្នន័យឆ្លាតវៃ។ រៀនអំពីក្បាលឃ្លាំងទិន្នន័យ HTTP, ការផ្ទៀងផ្ទាត់ ETag, ការបញ្ចូល CDN, និងលំនាំឃ្លាំងទិន្នន័យខាងអតិថិជន ដើម្បីបន្ថយពេលវេលាយឺត និងថ្លៃដើមបណ្តាញ។
បោះពុម្ពផ្សាយថ្ងៃទី 21 ខែមីនា ឆ្នាំ 2026
•
16 នាទីអាន
•
ប្រសិទ្ធភាព
ទិដ្ឋភាពទូទៅនៃការឃ្លាំងទិន្នន័យ
ចំណុចបញ្ចប់ Smart Money API ផ្តល់ទិន្នន័យទីផ្សារ cryptocurrency ដែលផ្លាស់ប្តូរក្នុងប្រេកង់ខុសៗគ្នា។ ទិន្នន័យមួយចំនួន (អាសយដ្ឋាន whale, អត្រាការផ្តល់ហិរញ្ញប្បទាន) ធ្វើបច្ចុប្បន្នភាពរៀងរាល់វិនាទីមួយចំនួន ខណៈដែលទិន្នន័យផ្សេងទៀត (ការវិភាគប្រវត្តិសាស្ត្រ, ខ្លឹមសារអប់រំ) នៅស្ថិតស្ថេរអស់រយៈពេលម៉ោង។ ការឃ្លាំងទិន្នន័យឆ្លាតវៃពិតជាបង្កើនប្រសិទ្ធភាព និងបន្ថយថ្លៃដើមយ៉ាងខ្លាំង។
Smart Money API អនុវត្តយុទ្ធសាស្ត្រឃ្លាំងទិន្នន័យ 3 ជាន់៖
- ឃ្លាំងទិន្នន័យ CDN Edge — ការផ្តល់ខ្លឹមសារសាកលជាមួយការបដិសេធឃ្លាំងទិន្នន័យស្វ័យប្រវត្តិ
- ឃ្លាំងទិន្នន័យអ្នកប្រើប្រាស់ HTTP — ការឃ្លាំងទិន្នន័យខាងអតិថិជនដោយប្រើក្បាល HTTP ស្តង់ដារ
- ឃ្លាំងទិន្នន័យកម្មវិធី — ការឃ្លាំងទិន្នន័យក្នុងអង្គចងចាំសម្រាប់ទិន្នន័យដែលត្រូវបានប្រើប្រាស់ញឹកញាប់
ការយល់ដឹងអំពីប្រសិទ្ធភាព៖ ការឆ្លើយតបដែលបានឃ្លាំងទិន្នន័យមានល្បឿនលឿនជាង 50-100 ដងធៀបនឹងការស្នើសុំ API ថ្មី និងជួយសន្សំបណ្តាញយ៉ាងច្រើន។ ការបញ្ចូលដែលបានឃ្លាំងទិន្នន័យយ៉ាងត្រឹមត្រូវអាចកាត់បន្ថយការផ្ទេរទិន្នន័យបាន 70-85%។
រាល់ការឆ្លើយតប Smart Money API រួមបញ្ចូលការណែនាំឃ្លាំងទិន្នន័យដែលប្រាប់អតិថិជន និង CDNs អំពីរយៈពេលដែលទិន្នន័យនៅតែមានសុពលភាព។ ការយល់ដឹងអំពីការណែនាំទាំងនេះ និងការអនុវត្តវាយ៉ាងត្រឹមត្រូវគឺចាំបាច់សម្រាប់ប្រសិទ្ធភាពល្អបំផុត។
មូលដ្ឋានគ្រឹះនៃការឃ្លាំងទិន្នន័យ
ការឃ្លាំងទិន្នន័យ HTTP ដំណើរការដោយផ្អែកលើក្បាលឆ្លើយតបដែលបង្ហាញថាតើខ្លឹមសារអាចត្រូវបានឃ្លាំងទិន្នន័យ និងសម្រាប់រយៈពេលប៉ុន្មាន។
ក្បាល Cache-Control
យន្តការសំខាន់សម្រាប់គ្រប់គ្រងឥរិយាបថឃ្លាំងទិន្នន័យ។ រាល់ការឆ្លើយតប Smart Money API រួមបញ្ចូលក្បាល Cache-Control ដែលបញ្ជាក់៖
- max-age — រយៈពេលគិតជាវិនាទីដែលការឆ្លើយតបនៅតែមានសុពលភាព
- public/private — ថាតើឃ្លាំងទិន្នន័យកម្រិតមធ្យមអាចផ្ទុកវាបានឬទេ
- must-revalidate — ថាតើត្រូវពិនិត្យភាពស្រស់មុនពេលបម្រើ
- no-store — កុំឃ្លាំងទិន្នន័យដែលអាចរកឃើញដោយងាយ
ឧទាហរណ៍ក្បាលឃ្លាំងទិន្នន័យ
ចំណុចបញ្ចប់ផ្សេងៗគ្នាមានតម្រូវការឃ្លាំងទិន្នន័យខុសៗគ្នា៖
// ទិន្នន័យអាសយដ្ឋាន whale (ធ្វើបច្ចុប្បន្នភាពរៀងរាល់ 5 នាទី)
Cache-Control: public, max-age=300
ETag: "abc123def456"
// អត្រាការផ្តល់ហិរញ្ញប្បទានពេលវេលាពិត (ធ្វើបច្ចុប្បន្នភាពរៀងរាល់វិនាទី)
Cache-Control: public, max-age=1
ETag: "xyz789abc123"
// ទិន្នន័យប្រវត្តិសាស្ត្រ (មិនផ្លាស់ប្តូរ)
Cache-Control: public, max-age=86400, immutable
ETag: "static-content-v1"
រយៈពេលឃ្លាំងទិន្នន័យតាមប្រភេទចំណុចបញ្ចប់
| ប្រភេទទិន្នន័យ |
រយៈពេលឃ្លាំងទិន្នន័យ |
ករណីប្រើប្រាស់ |
| ការផ្តល់ហិរញ្ញប្បទានពេលវេលាពិត |
1-5 វិនាទី |
ការជួញដូរតាមពេលវេលាពិត, ការកំណត់ទំហំតំណែង |
| ចលនា Whale |
5 នាទី |
ការបញ្ជាក់សញ្ញា, ការជូនដំណឹង |
| OHLCV ប្រចាំថ្ងៃ |
1 ម៉ោង |
ការវិភាគបច្ចេកទេស, តារាង |
| ការវិភាគប្រវត្តិសាស្ត្រ |
24 ម៉ោង |
ការធ្វើតេស្តថយក្រោយ, ការស្រាវជ្រាវ |
| ខ្លឹមសារស្ថិតស្ថេរ |
7 ថ្ងៃ |
ឯកសារ API, ការណែនាំ, ការកំណត់រចនាសម្ព័ន្ធ |
ទទួលបានសោ API របស់អ្នកក្នុងរយៈពេល 30 វិនាទី
រួចរាល់ដើម្បីសាងសង់ទេ? ទាញយកសោ API ដោយឥតគិតថ្លៃ (100 ការហៅ/ថ្ងៃ, គ្មានកាត) ហើយចាប់ផ្តើមទាញទិន្នន័យ whale, ការផ្តល់ហិរញ្ញប្បទាន និងទិន្នន័យ on-chain តាមពេលវេលាពិត។
ទទួលបានសោ API របស់អ្នក →
ETag និងការស្នើសុំលក្ខខណ្ឌ
ETags (ស្លាកអង្គ) ផ្តល់វិធីមានប្រសិទ្ធភាពក្នុងការផ្ទៀងផ្ទាត់ខ្លឹមសារដែលបានឃ្លាំងទិន្នន័យ ដោយមិនចាំបាច់ទាញយកខ្លឹមសារឆ្លើយតបពេញលេញ។
របៀបដែល ETags ដំណើរការ
- ការស្នើសុំដំបូង — អតិថិជនស្នើសុំទិន្នន័យ, ម៉ាស៊ីនបម្រើឆ្លើយតបដោយ ETag
- ការផ្ទុកឃ្លាំងទិន្នន័យ — អតិថិជនឃ្លាំងទិន្នន័យការឆ្លើយតបជាមួយ ETag
- ការស្នើសុំបន្តបន្ទាប់ — អតិថិជនផ្ញើ If-None-Match header ជាមួយ ETag ដែលបានផ្ទុក
- ការផ្ទៀងផ្ទាត់ — ប្រសិនបើទិន្នន័យមិនបានផ្លាស់ប្តូរ សឺវ័រនឹងត្រឡប់ 304 Not Modified
- បណ្តាញដែលបានសន្សំ — គ្មានតួសារត្រូវបានផ្ញើ សន្សំបណ្តាញយ៉ាងច្រើន
ការអនុវត្ត ETag
// សំណើដំបូង
GET /v1/whales/btc HTTP/1.1
// ការឆ្លើយតបរួមបញ្ចូល ETag
HTTP/1.1 200 OK
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
Content-Type: application/json
{...response body...}
// បន្ទាប់ពីឃ្លាំងផ្ទុកផុតកំណត់ ផ្ញើ If-None-Match
GET /v1/whales/btc HTTP/1.1
If-None-Match: "8a3b9c2d"
// ប្រសិនបើមិនបានផ្លាស់ប្តូរ សឺវ័រនឹងត្រឡប់ 304
HTTP/1.1 304 Not Modified
ETag: "8a3b9c2d"
Cache-Control: public, max-age=300
// គ្មានតួសារត្រូវបានផ្ញើ! សន្សំបណ្តាញ
កម្លាំង ETag
ETags អាចជាកម្លាំង ឬខ្សោយ៖
| ប្រភេទ |
ទម្រង់ |
ករណីប្រើប្រាស់ |
| ETag កម្លាំង |
"8a3b9c2d" |
ដូចគ្នាតាមបៃដែល ប្រើសម្រាប់ការផ្ទៀងផ្ទាត់ |
| ETag ខ្សោយ |
W/"8a3b9c2d" |
សមមូលតាមអត្ថន័យ សម្រាប់ការផ្លាស់ប្តូរការបង្ហាញ |
ការណែនាំ Cache Control
ការយល់ដឹងអំពីការណែនាំ Cache-Control អនុញ្ញាតឱ្យកសាងយុទ្ធសាស្ត្រឃ្លាំងផ្ទុកដ៏ល្អបំផុតសម្រាប់កម្មវិធីរបស់អ្នក។
ការយោងការណែនាំ
| ការណែនាំ |
អត្ថន័យ |
ឧទាហរណ៍ |
| max-age |
វិនាទីដែលការឆ្លើយតបនៅត្រូវ |
max-age=300 |
| public |
ឃ្លាំងផ្ទុកអាចផ្ទុក និងចែករំលែក |
public |
| private |
ឃ្លាំងផ្ទុកសម្រាប់អ្នកទទួលតែប៉ុណ្ណោះ |
private |
| must-revalidate |
ផ្ទៀងផ្ទាត់ឡើងវិញនៅពេលហួសកំណត់ |
must-revalidate |
| no-cache |
ត្រូវផ្ទៀងផ្ទាត់ឡើងវិញមុនពេលប្រើ |
no-cache |
| no-store |
កុំផ្ទុកទៅឃ្លាំងផ្ទុកទាល់តែសោះ |
no-store |
| immutable |
មិនផ្លាស់ប្តូរ ផ្ទុកជារៀងរហូត |
immutable |
| s-maxage |
រយៈពេលឃ្លាំងផ្ទុក CDN |
s-maxage=3600 |
លំនាំ Cache-Control ជាក់ស្តែង
// លំនាំ 1៖ ឃ្លាំងផ្ទុកកម្មវិធីរុករក CDN សម្រាប់ 1 ម៉ោង
Cache-Control: public, max-age=300, s-maxage=3600
// លំនាំ 2៖ ទិន្នន័យតាមអ្នកប្រើ គ្មានឃ្លាំងផ្ទុកប្រូកស៊ី
Cache-Control: private, max-age=1800
// លំនាំ 3៖ តែងតែស្រស់ តែងតែពិនិត្យ
Cache-Control: public, no-cache, must-revalidate
// លំនាំ 4៖ ទ្រព្យសម្បត្តិដែលមានកំណែមិនផ្លាស់ប្តូរ
Cache-Control: public, max-age=31536000, immutable
ការរួមបញ្ចូល CDN
Smart Money API ផ្ញើការឆ្លើយតបតាមរយៈបណ្តាញ CDN សាកលរបស់ Cloudflare ដោយផ្ទុកការឆ្លើយតបដោយស្វ័យប្រវត្តិនៅទីតាំងគែមទូទាំងពិភពលោកសម្រាប់ពេលវេលាចាំយ៉ាងតិច។
របៀបដែល Smart Money CDN ដំណើរការ
- សំណើអ្នកប្រើ — សំណើបុកទីតាំងគែម Cloudflare ជិតបំផុត
- ការពិនិត្យឃ្លាំងផ្ទុក — គែមពិនិត្យថាតើការឆ្លើយតបត្រូវបានផ្ទុក និងស្រស់
- ការបុកឃ្លាំងផ្ទុក — ប្រសិនបើត្រូវបានផ្ទុក ផ្ញើភ្លាមជាមួយពេលវេលាចាំ <10ms
- ការខកឃ្លាំងផ្ទុក — ប្រសិនបើមិនត្រូវបានផ្ទុក ទាញយកពីសឺវ័រដើម
- ផ្ទុក និងផ្ញើ — ផ្ទុកការឆ្លើយតប និងផ្ញើទៅអ្នកប្រើ
ការកំណត់គន្លឹះឃ្លាំងផ្ទុក
Cloudflare ប្រើគន្លឹះឃ្លាំងផ្ទុកដើម្បីកំណត់អត្តសញ្ញាណការឆ្លើយតបដែលត្រូវបានផ្ទុក។ តាមលំនាំ៖
- ផ្លូវសំណើ និងប៉ារ៉ាម៉ែត្រសំណើត្រូវបានរួមបញ្ចូល
- ក្បាលភាគច្រើនត្រូវបានរំលង (ដើម្បីបង្កើនការបុកឃ្លាំងផ្ទុក)
- ក្បាលអាជ្ញាប័ណ្ណមិនត្រូវបានរួមបញ្ចូល (គ្មានការលេចធ្លាយគណនី)
- ក្បាលផ្ទាល់ខ្លួនអាចត្រូវបានរួមបញ្ចូលតាមរយៈក្បាល Vary
ការសម្អាត CDN
Smart Money សម្អាតឃ្លាំងផ្ទុក CDN ដោយស្វ័យប្រវត្តិនៅពេលទិន្នន័យត្រូវបានធ្វើបច្ចុប្បន្នភាព៖
// សម្អាត URL ជាក់លាក់ពី CDN
curl -X POST "https://api.smartmoneyapi.com/v1/cache/purge" \
-H "Authorization: Bearer token" \
-d '{
"urls": [
"https://api.smartmoneyapi.com/v1/whales/btc"
]
}'
ការវាស់ស្ទង់ដំណើរការ CDN
ពិនិត្យក្បាលឆ្លើយតបដើម្បីមើលថាតើសំណើត្រូវបានផ្ញើពីឃ្លាំងផ្ទុក៖
// ការបុកឃ្លាំងផ្ទុកពីគែម CDN
CF-Cache-Status: HIT
CF-RAY: 8a9b7c6d5e4f3g2h
Age: 45 // វិនាទីចាប់តាំងពីត្រូវបានផ្ទុក
// ការខកឃ្លាំងផ្ទុក ទាញយកពីសឺវ័រដើម
CF-Cache-Status: MISS
Age: 0
ការផ្ទុកឃ្លាំងផ្ទុកខាងអតិថិជន
អនុវត្តការផ្ទុកឃ្លាំងផ្ទុកនៅក្នុងកម្មវិធីរបស់អ្នកដើម្បីកាត់បន្ថយការហៅ API និងកែលម្អការឆ្លើយតប។
ការអនុវត្តឃ្លាំងផ្ទុកកម្មវិធីរុករក
// បង្កើតឃ្លាំងផ្ទុក
const cache = new Map();
async function fetchWithCache(url) {
// ពិនិត្យឃ្លាំងសម្ងាត់ជាមុនសិន
const cached = cache.get(url);
if (cached && !isCacheExpired(cached)) {
return cached.data;
}
// ទាញយកទិន្នន័យពី API
const response = await fetch(url);
const data = await response.json();
// បកប្រែរយៈពេលឃ្លាំងសម្ងាត់ពីក្បាល
const cacheControl = response.headers
.get('cache-control');
const maxAge = parseMaxAge(cacheControl);
// ផ្ទុកក្នុងឃ្លាំងសម្ងាត់
cache.set(url, {
data,
expiry: Date.now() + (maxAge * 1000)
});
return data;
}
ការផ្ទុកឃ្លាំងសម្ងាត់របស់ Service Worker
សម្រាប់ការគាំទ្រក្រៅបណ្តាញ និងយន្តការផ្ទុកឃ្លាំងសម្ងាត់កម្រិតខ្ពស់ សូមប្រើ Service Workers៖
// ផ្ទុកការឆ្លើយតបរបស់ API ជាមួយ Service Worker
self.addEventListener('fetch', (event) => {
if (event.request.url.includes('api.smartmoneyapi.com')) {
// បណ្តាញជាមុន ហើយដាក់ឃ្លាំងសម្ងាត់ជាជម្រើសរង
event.respondWith(
fetch(event.request)
.then(response => {
// ធ្វើឱ្យឃ្លាំងសម្ងាត់ទាន់សម័យជាមួយការឆ្លើយតបថ្មី
caches.open('api-cache')
.then(cache => cache.put(
event.request, response.clone()));
return response;
})
.catch(() =>
caches.match(event.request))
);
}
});
យន្តការបំបែកឃ្លាំងសម្ងាត់
ពេលខ្លះអ្នកត្រូវការបង្ខំឱ្យអតិថិជនទទួលបានទិន្នន័យថ្មី។ សូមប្រើបច្ចេកទេសទាំងនេះ៖
ប៉ារ៉ាម៉ែត្រកំណែ
បន្ថែមប៉ារ៉ាម៉ែត្រកំណែដើម្បីបដិសេធឃ្លាំងសម្ងាត់នៅពេលទិន្នន័យផ្លាស់ប្តូរ៖
// រួមបញ្ចូលកំណែទិន្នន័យ ឬស្ថានភាពពេលវេលា
https://api.smartmoneyapi.com/v1/whales/btc?v=1709980800
// នៅពេលទិន្នន័យត្រូវបានធ្វើឱ្យទាន់សម័យ បង្កើនកំណែ
https://api.smartmoneyapi.com/v1/whales/btc?v=1709981000
// URL ថ្មី = ធាតុឃ្លាំងសម្ងាត់ថ្មី
ការបង្ខំធ្វើឡើងវិញ
បដិសេធឃ្លាំងសម្ងាត់ជាមួយ Cache-Control: no-cache នៅពេលអ្នកត្រូវការទិន្នន័យថ្មី៖
// JavaScript: បង្ខំសំណើថ្មី
fetch(url, {
cache: 'no-cache', // ធ្វើឡើងវិញជានិច្ច
headers: {
'Cache-Control': 'max-age=0'
}
});
ការតាមដានដំណើរការឃ្លាំងសម្ងាត់
តាមដានអត្រាចំណុចនិងការកែលម្អដំណើរការដើម្បីផ្ទៀងផ្ទាត់យន្តការផ្ទុកឃ្លាំងសម្ងាត់របស់អ្នក។
វាស្ទង់ឃ្លាំងសម្ងាត់ដែលត្រូវតាមដាន
- អត្រាចំណុច — ភាគរយនៃសំណើដែលបានផ្តល់ពីឃ្លាំងសម្ងាត់ (គោលដៅ: >70%)
- ពេលវេលាឆ្លើយតប — ពេលវេលាជាមធ្យម (ឃ្លាំងសម្ងាត់: <50ms, មិនមានឃ្លាំងសម្ងាត់: 100-300ms)
- បរិមាណទិន្នន័យដែលបានសន្សំ — ការកាត់បន្ថយការផ្ទេរទិន្នន័យ
- បន្ទុកប្រភពដើម — ការកាត់បន្ថយសំណើនៅម៉ាស៊ីនបម្រើប្រភពដើម
ការវិភាគក្បាលឃ្លាំងសម្ងាត់
// វិភាគក្បាលឆ្លើយតបឃ្លាំងសម្ងាត់
async function analyzeCache(url) {
const response = await fetch(url);
return {
cacheControl: response.headers
.get('cache-control'),
etag: response.headers.get('etag'),
age: response.headers.get('age'),
cfStatus: response.headers
.get('cf-cache-status'),
contentLength:
response.headers.get('content-length')
};
}
ការអនុវត្តល្អបំផុតរបស់ឃ្លាំងសម្ងាត់
1. គោរពក្បាលឆ្លើយតប
តែងតែគោរពក្បាល Cache-Control ពី Smart Money API។ កុំផ្ទុកឃ្លាំងសម្ងាត់មាតិកាដែលបានសម្គាល់ថា no-store ឬ no-cache។
2. អនុវត្តសំណើតាមលក្ខខណ្ឌ
ផ្ញើ If-None-Match (ETag) និង If-Modified-Since ក្បាលនៅពេលធ្វើឱ្យឃ្លាំងសម្ងាត់មានសុពលភាពឡើងវិញ។ សន្សំបរិមាណទិន្នន័យជាមួយការឆ្លើយតប 304។
3. ផ្ទុកឃ្លាំងសម្ងាត់តាមប្រភេទទិន្នន័យដោយសមរម្យ
- ទិន្នន័យពេលវេលាពិត (អត្រាការផ្តល់ថវិកា): ឃ្លាំងសម្ងាត់អតិបរមា 1-5 វិនាទី
- សញ្ញាផ្ទាល់ (ចលនាប្រមាញ់): ឃ្លាំងសម្ងាត់ 5-30 វិនាទី
- ទិន្នន័យម៉ោង (OHLCV): ឃ្លាំងសម្ងាត់ 1 ម៉ោង
- ទិន្នន័យប្រវត្តិសាស្ត្រ: ឃ្លាំងសម្ងាត់ 24 ម៉ោង
- មាតិកាឋិតិវន្ត: ឃ្លាំងសម្ងាត់ 7 ថ្ងៃ
4. តាមដានប្រសិទ្ធភាពឃ្លាំងសម្ងាត់
តាមដានអត្រាចំណុច និងការកែលម្អពេលវេលារំខាន។ កែសម្រួល TTL ដោយផ្អែកលើតម្រូវការភាពស្រស់នៃទិន្នន័យ និងដំណើរការឃ្លាំងសម្ងាត់។
5. ប្រើក្បាល Vary ដោយប្រុងប្រយ័ត្ន
ក្បាល Vary បន្ថយចំណុចឃ្លាំងសម្ងាត់ដោយបង្កើតធាតុឃ្លាំងសម្ងាត់ដាច់ដោយឡែក។ ប្រើតែនៅពេលចាំបាច់សម្រាប់កម្រិតផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ ឬប៉ារ៉ាម៉ែត្រផ្សេងៗ។
6. ផ្ទុកឃ្លាំងសម្ងាត់នៅច្រើនស្រទាប់
អនុវត្តការផ្ទុកឃ្លាំងសម្ងាត់នៅស្រទាប់ CDN, កម្មវិធីអ៊ីនធឺណិត, និងកម្មវិធី។ រាល់ស្រទាប់ចាប់សំណើមុនពេលដល់ប្រភពដើម។
បង្កើនប្រសិទ្ធភាព API របស់អ្នក
ហេដ្ឋារចនាសម្ព័ន្ធឃ្លាំងសម្ងាត់របស់ Smart Money API ធានាការឆ្លើយតបក្រោម 100ms នៅកម្រិតសកល។ អនុវត្តយន្តការផ្ទុកឃ្លាំងសម្ងាត់ឆ្លាតវៃដើម្បីបង្កើនប្រសិទ្ធភាពអតិបរមា និងកាត់បន្ថយថ្លៃដើម។
ប្រៀបធៀបគម្រោង
គម្រោងទាំងអស់រួមបញ្ចូលការផ្ទុកឃ្លាំងសម្ងាត់ CDN ពេញលេញ។ កម្រិតខ្ពស់ផ្តល់ការគ្រប់គ្រងឃ្លាំងសម្ងាត់ និង API សម្អាត។