English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
- ಪರಿಚಯ
- ಸ್ಥಾಪನೆ
- ಬಳಕೆ
- ಕಾನ್ಫಿಗರೇಶನ್
- ಮೇಲ್ಮಟ್ಟದಲ್ಲಿ ಬಳಕೆ
- ಸುಧಾರಣೆ
- ಸಾಮಾನ್ಯ ಮಾದರಿಗಳು
- ಮಿತಿಗಳು
- ಬೆಂಬಲ ಮಾರ್ಗಸೂಚಿಗಳು
- ലൈസൻസ് - MIT ലൈസൻസ്സ്
ಪರಿಚಯ
ರಿಕಾಲ್ ಲಾರವೆಲ್ಗಾಗಿ ಅತ್ಯುತ್ತಮ ಕಾರ್ಯಕ್ಷಮತೆಯ Redis ಕ್ಲೈಂಟ್-ಸದಸ್ಯ ಕ್ಯಾಶಿಂಗ್ ಪ್ಯಾಕ್ಜ್ ಆಗಿದೆ. ಇದು Redis 6 ನ ಕ್ಲೈಂಟ್-ಸದಸ್ಯ ಕ್ಯಾಶಿಂಗ್ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಸ್ವಯಂ-ಶ್ರೇಣೀಬದ್ಧಗೊಳಿಸುವ ಮೂಲಕ ಬಳಸುತ್ತದೆ ಮತ್ತು Redis ಕುಂಡಲ ಸೇರುವಿಕೆಯನ್ನು ಮತ್ತು ವಿಳಂಬವನ್ನು ಏಕಕಾಲದಲ್ಲಿ ಕಡಿಮೆಗೊಳಿಸುತ್ತದೆ. ಲಾರವೆಲ್ ಒಕ್ಟೇನ್ ಪರಿಸರಗಳಿಗೆ ವಿಶೇಷವಾಗಿ ನಿರ್ಮಿತವಾಗಿದೆ, ಇದು APCu ಅಥವಾ ಸ್ವೋಲ್ ಟೇಬಲ್ ಅನ್ನು ಸ್ಥಳೀಯ ಕ್ಯಾಶ್ ಹಂತವಾಗಿ ಬಳಸುತ್ತದೆ, ಇದು ಅವಲೋಕನೆಯ ಸಂದೇಶಗಳ ಮೂಲಕ Redis ಜೊತೆ ಸಮ್ಮಿಲನದಲ್ಲಿ ಉಳಿತಾಯ ಮಾಡುತ್ತದೆ.
ನೀವು Redis ನಿಂದ ಒಂದು ಮೌಲ್ಯವನ್ನು ಪಡೆಯುವಾಗ, Recall ಅದನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸು. ಆ ಮೌಲ್ಯವು Redis ನಲ್ಲಿ ಬದಲಾಗಿರುವಾಗ (ಯಾವುದು ಕ್ಲೈಂಟ್ ಕಾಣಿಸಿಕೊಂಡರೂ), Redis ಸ್ವಯಂಚಾಲಿತವಾಗಿ Recall ಗೆ ಸ್ಥಳೀಯ ಪ್ರತಿಯನ್ನು ಅಮಾನ್ಯಗೊಳಿಸುವುದಾಗಿ ಸೂಚಿಸುತ್ತದೆ. ಇದು ನಿಮಗೆ ಮೆಮೊರಿ ಕ್ಯಾಶಿಂಗ್ನ ವೇಗ ಮತ್ತು Redis ನ ಸ್ಥಿರತೆ ಖಾತ್ರಿ ನೀಡುತ್ತದೆ.
ಮುಖ್ಯ ವೈಶಿಷ್ಟ್ಯಗಳು
- ಸ್ವಯಂ-ಅಮಾನ್ಯಗೊಳಿಸುವಿಕೆ: ಕ್ಯಾಶ್ಡ್ ಕೀಗಳ ಬದಲಾವಣೆ ಮಾಡಿದಾಗ Redis ನಿಮ್ಮ ಅನ್ವಯವನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಒತ್ತಿಸುತ್ತೆ, ಇದರಿಂದ ಕ್ಯಾಶ್ ಸಾಕ್ಷರತೆ ಖಾತ್ರಿ ಆಗುತ್ತದೆ.
- ಝೀರೆ ಕಾನ್ಫಿಗರೇಶನ್: ತರ್ಕಬದ್ಧ ಡೀಫಾಲ್ಟ್ಗಳೊಂದಿಗೆ ಕೆಲಸಕ್ಕೆ ಬರುತ್ತದೆ.
- ಒಕ್ಟೇನ್ ಇಂಟಿಗ್ರೇಶನ್: ಸ್ವಯಂ-ರೂಪದಲ್ಲಿ ಸಂಪರ್ಕ ಬೆಳೆಸುವುದು, ವಿನಂತಿ ಗಳ ಆಧಾರದ ಮೇಲೆ ಅಮಾನ್ಯಗೊಳಿಸುವಿಕೆ ಪ್ರಕ್ರಿಯೆ ಮತ್ತು ಶ್ರೇಷ್ಠ ಶ್ರೇಣಿಯ ಮುಚ್ಚುವುದು.
- Dual ಡ್ರೈವರ್ ಬೆಂಬಲ: ಎಲ್ಲಾ ಒಕ್ಟೇನ್ ಸೇವಕರಿಗೆ APCu, ಸ್ವೋಲ್/ಓಪನ್ ಸ್ವೋಲ್ ಪರಿಸರಗಳಿಗೆ ಸ್ವೋಲ್ ಟೇಬಲ್.
- ಚಯನಾತ್ಮಕ ಕ್ಯಾಶಿಂಗ್: ಸ್ಥಳೀಯವಾಗಿ ಯಾವುದಕ್ಕೆ ಕೀ ಪೂರ್ವಭಾವಿಗಳು ಕ್ಯಾಶ್ ಮಾಡಲು ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದು.
- ರೇಸ್ ಕೊಂಡಿಷನ್ ರಕ್ಷಣಾ: ಶ್ರೇಣಿಯ ವಿನಂತಿಯ ವೀಕ್ಷಣೆ ಪ್ರತಿಯೊಬ್ಬ ಅನವಕಲ್ಪ ಕ್ಯಾಶಿಂಗ್ ಕೀ ಭಿನ್ನಿಸುವಿಕೆಯಲ್ಲಿ ಹಳೆಯ ಡೇಟಾವನ್ನು ತಡೆಗಟ್ಟುತ್ತದೆ.
ಉದಾಹರಣೆಯು
// ನಿಮ್ಮ ಕ್ಯಾಶ್ ಡ್ರೈವರ್ ವ್ಯಕ್ತಪಡಿಸಲು ರಿಕಾಲ್ ಅನ್ನು ಸಂರಚಿಸಲು// config/cache.php'stores' => [ 'recall' => [ 'driver' => 'recall', ],], // ಅದನ್ನು ಯಾವುದೇ ಲಾರವೆಲ್ ಕ್ಯಾಶ್ ಹೋಲಿಸಿ ಬಳಸಿರಿuse Illuminate\Support\Facades\Cache; // ಮೊದಲ ಕರೆ: Redis ನಿಂದ ಪಡೆಯುತ್ತದೆ, ಸ್ಥಳೀಯವಾಗಿ armazened$user = Cache::store('recall')->get('user:1'); // ಮುಂದುವರೆದ ಕರೆಗಳು: ಸ್ಥಳೀಯ APCu/Swoole ಟೆಬಲ್ (ಮೈಕ್ರೋಸೆಕೆಂಡುಗಳು)$user = Cache::store('recall')->get('user:1'); // ಗೆ user:1 ಅನ್ನು ಎಲ್ಲಿಂದಲಾದರೂ ನವೀಕರಿಸಿದಾಗ, Redis ರಿಕಾಲ್ ಗೆ ಸ್ಥಳೀಯ ಪ್ರತಿಯನ್ನು ಅಮಾನ್ಯಗೊಳಿಸಲು ಸೂಚಿಸುತ್ತದೆCache::store('recall')->put('user:1', $newUserData, 3600);// ಸ್ಥಳೀಯ ಕ್ಯಾಶ್ ಎಲ್ಲಾ ಕಾರ್ಮಿಕರಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅಮಾನ್ಯಗೊಳಿಸಲಾಗಿದೆ
ಸ್ಥಾಪನೆ
ಕಂಪೋಜರ್ ಮೂಲಕ ಪ್ಯಾಕ್ಜ್ ಅನ್ನು ಸ್ಥಾಪಿಸುವುದು:
composer require defectivecode/laravel-recall
ಅಗತ್ಯವಿದೆ
- PHP >= 8.4
- Laravel 11.x ಅಥವಾ 12.x
- Laravel Octane
- Redis 6.0+ (ಕ್ಲೈಂಟ್-ಸದಸ್ಯ ಕ್ಯಾಶಿಂಗ್ ಬೆಂಬಲಕ್ಕಾಗಿ)
- ext-apcu ಅಥವಾ ext-swoole (ಸ್ಥಳೀಯ ಕ್ಯಾಶ್ಗಾಗಿ ಕನಿಷ್ಠ ಒಂದು ಅಗತ್ಯ)
ಬಳಕೆ
ಮೂಲ ಸೆಟಪ್
- ನಿಮ್ಮ
config/cache.phpಗೆ Recall ಕ್ಯಾಶ್ ಶ್ಲೋಕವನ್ನು ಸೇರಿಸಿ:
'stores' => [ // ... ಇತರ ಶ್ಲೋಕೆಗಳು 'recall' => [ 'driver' => 'recall', ],],
- ನಿಮ್ಮ ಅನ್ವಯದಲ್ಲಿ ಕ್ಯಾಶ್ ಶ್ಲೋಕವನ್ನು ಬಳಸಿರಿ:
use Illuminate\Support\Facades\Cache; // ಒಂದು ಮೌಲ್ಯವನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಿ (Redis ಗೆ ಬರೆಯುತ್ತದೆ)Cache::store('recall')->put('key', 'value', 3600); // ಒಂದು ಮೌಲ್ಯವನ್ನು ಪುನರ್ಘಟನೆ (ಮೊದಲ ಕರೆ Redis ಗೆ ಹೊಡೆದು, ಮುಂದಿನ ಕರೆಗಳು ಸ್ಥಳೀಯ ಕ್ಯಾಶ್ ಆಯ್ದ ವಾದ್ಯವನ್ನು ಬಳಸುತ್ತವೆ)$value = Cache::store('recall')->get('key'); // ಒಂದು ಮೌಲ್ಯವನ್ನು ಅಳಿಸಿCache::store('recall')->forget('key');
ಇದು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ
- ಮೊದಲ ಓದು: ಸ್ಥಳೀಯ APCu/Swoole ಟೇಬಲ್ ಕ್ಯಾಶ್ನಿಂದ Redis ನಿಂದ ಮೌಲ್ಯವನ್ನು ಪಡೆಯಲಾಗುತ್ತದೆ
- ಮುಂದಿನ ಓದುಗಳು: ಸ್ಥಳೀಯ ಮೆಮೊರಿ ಮತ್ತು ಹೆಚ್ಚು ಉಪಯೋಗಿಸುತ್ತವೆ (ಉಲ್ಲೇಖದಲ್ಲಿ)
- ಎಲ್ಲಿ ಬರೆಯಲು: ಯಾವುದೇ ಕ್ಲೈಂಟ್ Redis ನಲ್ಲಿ ಕೀ ಅನ್ನು ಪರಿಷ್ಕಾರ ಮಾಡಿದಾಗ, Redis ಅಮಾನ್ಯಗೊಳಿಸುವ ಸಂದೇಶವನ್ನು ಕಳುಹಿಸುತ್ತದೆ
- ಸ್ವಯಂ-ಅಮಾನ್ಯಗೊಳಿಸುವಿಕೆ: Recall ಸಂದೇಶವನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ ಮತ್ತು ಸ್ಥಳೀಯ ಕ್ಯಾಶ್ನಿಂದ ಕೀ ಅನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ
- ಮುಂದಿನ ಓದು: ಹೊಸ ಮೌಲ್ಯವು Redis ದಿಂದ ಪಡೆಯಲಾಗುತ್ತದೆ ಮತ್ತು ಪುನಃ ಸ್ಥಳೀಯವಾಗಿ ಕ್ಯಾಶ್ ಮಾಡಲಾಗುತ್ತದೆ
ಈ ಮಾದರಿ ವಿಶೇಷವಾಗಿ ಲಾರವೆಲ್ ಒಕ್ಟೇನ್ ಪರಿಸರದಲ್ಲಿ ಶಕ್ತಿಯುತವಾಗಿದ್ದು, ಕಾರ್ಮಿಕರು ವಿನಂತಿಗಳ ನಡುವೆ ಶ್ರೇಣೀಬದ್ಧಗೊಳಿಸುತ್ತಾರೆ, ಸ್ಥಳೀಯ ಕ್ಯಾಶ್ ತುಂಬವುದರಿಂದ ಮತ್ತು ಮೆಮೊರಿನಿಂದ ಅನೇಕ ವಿನಂತಿಗಳನ್ನು ಸಲ್ಲಿಸುತ್ತವೆ.
ಒಕ್ಟೇನ್ ಇಂಟಿಗ್ರೇಶನ್
Recall ಲಾರವೆಲ್ ಒಕ್ಟೇನ್ನೊಂದಿಗೆ ಸ್ವಯಂ-ರೂಪದಲ್ಲಿ ಪರಿಗಣಿಸುತ್ತದೆ:
- ಕಾರ್ಮಿಕ ಪ್ರಾರಂಭ: Redis ಅಮಾನ್ಯಗೊಳಿಸುವ ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸುತ್ತದೆ (ನೀವು ಹೊಡೆಯುವ ಪ್ರಾರಂಭ)
- ವಿನಂತಿ ಸ್ವೀಕರಿಸಲಾಗಿದೆ: ಯಾವುದೇ ನಿರಂತರ ಅಮಾನ್ಯಗೊಳಿಸುವ ಸಂದೇಶವನ್ನು ಪ್ರಕ್ರಿಯೆ ಮಾಡುತ್ತದೆ
- ಕಾರ್ಮಿಕ ನಿಲ್ಲಿಸುತ್ತದೆ: ಶ್ರೇಷ್ಟವಾಗಿ ಸಂಪರ್ಕಗಳನ್ನು ಮುಚ್ಚುತ್ತದೆ
ಅದೇನೂ ಹೆಚ್ಚುವರಿ ಕಾನ್ಫಿಗರೇಶನ್ ಅಗತ್ಯವಿಲ್ಲ. ಒಕ್ಟೇನ್ ಸ್ಥಾಪಿತವಾಗುತ್ತದೆ ಎಂಬಾಗ ಇದು ಸ್ವಯಂ-ರೂಪದಲ್ಲಿ ಇರುತ್ತದೆ.
ಕಾನ್ಫಿಗರೇಶನ್
ಕಾನ್ಫಿಗರೇಷನ್ ಫೈಲ್ ಅನ್ನು ಪ್ರಕಟಿಸಿ:
php artisan vendor:publish --tag=recall-config
ಈದು config/recall.phpನ್ನು ಕೆಳಗಿನ ಆಯ್ಕೆಗಳೊಂದಿಗೆ ನಿರ್ಮಿಸುತ್ತದೆ:
ಸಕ್ರಿಯಗೊಳಿಸುವುದು/ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು
'enabled' => env('RECALL_ENABLED', true),
ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದಾಗ, Recall ಸ್ಥಳೀಯ ಕ್ಯಾಶ್ ಹಂತವನ್ನು ಬಳಸದೆ ನೇರವಾಗಿ Redis ಗೆ ಹೋಗುತ್ತದೆ. ಡೀಬಗ್ ಮಾಡುವ ಅಥವಾ ಹಂತ ಹಂತವಾಗಿ ಮಂಡಿಸಲು ಉಪಯುಕ್ತವಾಗಿದೆ.
Redis ಶ್ಲೋಕ
'redis_store' => env('RECALL_REDIS_STORE', 'redis'),
Redis ಕಾರ್ಯಾಚರಣೆಗಳಿಗೆ ಬಳಸುವ ಲಾರವೆಲ್ ಕ್ಯಾಶ್ ಶ್ಲೋಕ. ಇದು ನಿಮ್ಮ config/cache.php ಕೃತಕದಲ್ಲಿ ಸಿದ್ಧಗೊಳ್ಳುವ Redis ಶ್ಲೋಕವನ್ನು ಉಲ್ಲೇಖಿಸಬೇಕು.
ಕ್ಯಾಶ್ ಪೂರ್ವಭಾವಿಗಳು
'cache_prefixes' => [],
ಈ ಪೂರ್ವಭಾವಿಗಳನ್ನು ಮಾತ್ರ ಸ್ಥಳೀಯವಾಗಿ ಕ್ಯಾಶ್ ಮಾಡಲು ಕೀಗಳನ್ನು ಮಾತ್ರ. ಎಲ್ಲಾ ಕೀಗಳನ್ನು ಕ್ಯಾಶ್ ಮಾಡಲು ಖಾಲಿ ಬಿಟ್ಟು ಬಿಡಿ.
// ಸ್ಥಳೀಯವಾಗಿ ಬಳಕೆದಾರ ಮತ್ತು ಶ್ರೇಣೀಬದ್ಧ ಕೀಗಳನ್ನು ಮಾತ್ರ ಕ್ಯಾಶ್ ಮಾಡಿ'cache_prefixes' => ['users:', 'settings:', 'config:'],
ಹಾಗೆ ಬದಲಾಗುವель ನಿಯೋಜನೆಗೆ ಹೆಚ್ಚು ಪ್ರಮಾಣವನ್ನು ಕಳವು ಮಾಡುವುದು, ಹೆಚ್ಚಿನ ಪ್ರಮಾಣವನ್ನು ನಕಲು ಮಾಡಲು.
ಸ್ಥಳೀಯ ಕ್ಯಾಶ್ ಕಾನ್ಫಿಗರೇಶನ್
'local_cache' => [ // ಡ್ರೈವರ್: "apcu" ಅಥವಾ "swoole" 'driver' => env('RECALL_LOCAL_DRIVER', 'apcu'), // ಸ್ಥಳೀಯ ಕ್ಯಾಶ್ ಕೀಗಳಿಗೆ ಪೂರ್ವಭಾವಿ 'key_prefix' => env('RECALL_LOCAL_PREFIX', 'recall:'), // ಡಿಎಫ್ಟಿಎಲ್ TTL ಸೆಕೆಂಡುಗಳಲ್ಲಿ (ಅಮಾನ್ಯಗೊಳಿಸುವಿಕೆ ತಪ್ಪಿದರೆ ಸುರಕ್ಷಿತ ನೆಟ್) 'default_ttl' => (int) env('RECALL_LOCAL_TTL', 3600), // Swoole ಟೇಬಲ್ ಅಳತೆ (2 ಶಕ್ತಿ, ಸ್ವೋಲ್ ಡ್ರೈವರಿಗಾಗಿ ಮಾತ್ರ) 'table_size' => (int) env('RECALL_SWOOLE_TABLE_SIZE', 65536), // Swoole ಟೇಬಲ್ನಲ್ಲಿ ಮೌಲ್ಯಗಳಿಗೆ ಗರಿಷ್ಠ ಬೈನಿಂಟ್ಗಳು (ಸ್ವೋಲ್ ಡ್ರೈವರಿಗಾಗಿ ಮಾತ್ರ) 'value_size' => (int) env('RECALL_SWOOLE_VALUE_SIZE', 8192),],
APCu ಡ್ರೈವರ (ಡೀಫಾಲ್ಟ್)
APCu ಡ್ರೈവർ ಎಲ್ಲಾ PHP ಪರಿಸರಗಳು ಮತ್ತು ಒಕ್ತೇನ್ ಸೇವಕರೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ (Swoole, RoadRunner, FrankenPHP). ಇದು ಎಲ್ಲಾ PHP ತೀರ್ಮಾನಗಳಿಗೆ ಲಭ್ಯವಿರುವ ಹಂಚಿದ ಮೆಮೊರಿಯಲ್ಲಿ ಕ್ಯಾಶ್ ಮೌಲ್ಯಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ.
ಅಗತ್ಯಗಳು:
- ext-apcu ಸ್ಥಾಪಿತವಾಗಿದೆ ಮತ್ತು ಸಕ್ರಿಯವಾಗಿದೆ
- CLI ಬಳಕೆಗೆ php.ini ನಲ್ಲಿ
apc.enable_cli=1ಇರುವುದಾಗಿ ಖಚಿತಪಡಿಸಿ
Swoole ಟೇಬಲ್ ಡ್ರೈವರ್
Swoole ಟೇಬಲ್ ಡ್ರೈವರ್ Swoole ನ ಹಂಚಿದ ಮೆಮೊರಿ ಟೇಬಲ್ಗಳನ್ನು ಬಳಸುತ್ತದೆ, ಇದು ಒಂದೇ ಕಾರ್ಮಿಕದಲ್ಲಿ ಕೋರ್ಟೈನ್ಗಳಾದ ಪರಸ್ಥಿತಿಯಲ್ಲಿನ ಸ್ಥಾಯಿಯ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸುತ್ತದೆ. Swoole/OpenSwoole ಪರಿಸರಗಳಿಗೆ ಉತ್ತಮವಾಗಿದೆ.
ಕಾನ್ಫಿಗರೇಶನ್ ಸಲಹೆಗಳು:
table_size: 2 ಶಕ್ತಿಯು ಆಗಿರಬೇಕು (ಉದಾಹರಣೆಗೆ, 65536, 131072). ನಿಕಟ ಸಂಖ್ಯೆಯ ಶ್ರೇಣಿಯ ಪ್ರಾರಂಭ.value_size: ಸರಿಹೊಂದಿಸಲು ಮೌಲ್ಯಗಳಿಗೆ ಗರಿಷ್ಠ ಬೈನಿಂಟ್ಗಳು. ದೊಡ್ಡ ಮೌಲ್ಯಗಳು ಶ್ರದ್ಧಾರಿಯಿಂದ ಕಡಿಮೆ ಮಾಡಲ್ಪಡುತ್ತವೆ.
ಒಕ್ಟೇನ್ ಶ್ರೇಣಿಕಾರರು
'listeners' => [ // ಕಾರ್ಮಿಕ ಪ್ರಾರಂಭದಲ್ಲಿ ಅಳತೆಯ ಸಂಪರ್ಕವನ್ನು ಹೊಂದಿಸಲಾಗಿದೆ (ಮೊದಲ ವಿನಂತಿಯ ದಿನಾಂಕ ಕಳೆದ ವಿಳಂಬವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ) 'warm' => env('RECALL_LISTEN_WARM', true), // ಟಿಕ್ ಘಟನೆಗಳಾದ ಮತ್ತಿಲ್ಲಿ ಅಮಾನ್ಯಗೊಳಿಸುವಿಕೆಗಳನ್ನು ಶ್ರದ್ಧಾರಿಸುತ್ತಬೇಕು (ಹೆಚ್ಚಿನ ಸ್ಪಷ್ಟತೆ, ಕೆಲವೇ ಆದಾಯ) 'tick' => env('RECALL_LISTEN_TICK', false),],
ಶ್ರೇಣಿಕಾರವನ್ನು ಬದಲಾಯಿಸುವುದು
ಚಾಲನೆಯಾಗಿದ್ದರೆ, Recall ಒಕ್ಟೇನ್ ಕಾರ್ಮಿಕ ಪ್ರಾರಂಭವಾದಾಗ Redis ಅಮಾನ್ಯಗೊಳಿಸುವ ಸ್ಥಾನವನ್ನು ಸ್ಥಾಪಿಸುತ್ತದೆ. ಇದು ಮೊದಲ ವಿನಂತಿಯ ಸಮಯದ ಸಂಪರ್ಕವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
ಟಿಕ್ ಪ್ರಕ್ರಿಯೆ
ಚಾಲನೆಯಾಗಿದ್ದರೆ, Recall ಒಕ್ಟೇನ್ ಟಿಕ್ ಘಟನೆಗಳಲ್ಲಿ ಅಮಾನ್ಯಗೊಳಿಸುವ ಸಂದೇಶಗಳನ್ನು ಪ್ರಕ್ರಿಯೆ ಮಾಡುತ್ತದೆ ಮೀಸೆ ಮಂದಿ ವಿನಂತಿ ಘಟನೆಗಳಲ್ಲಿ. ಇದು ಸ್ವಲ್ಪ ಹೆಚ್ಚುವರಿ ಆದಾಯದ ದರವನ್ನು ಸಹ ಒದಗಿಸುತ್ತದೆ.
ಮೇಲ್ಮಟ್ಟದಲ್ಲಿ ಬಳಕೆ
ಕೈಯೆ ಕ್ಯಾಶಿಂಗ್ ಪ್ರಕ್ರಿಯೆ
ನೀವು ನಿರಂತರವಾಗಿ ಆಗಾಗಲ್ಲಾ ಅಮಾನ್ಯಗೊಳಿಸುವಿಕೆಯನ್ನು ಕೈಯೆ ಸಂಪಾದಿಸಲು ಅಗತ್ಯವಿದ್ದಾಗ:
use DefectiveCode\Recall\RecallManager; $manager = app(RecallManager::class);$manager->processInvalidations();
ಸ್ಥಳೀಯ ಕ್ಯಾಶ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವಿಕೆ
Redis ಗೆ ಪ್ರಭಾವಿತವಾಗದೆ ಸ್ಥಳೀಯ ಕ್ಯಾಶ್ ಅನ್ನು ಮಾತ್ರ ಸಮಸ್ಯೆ:
use DefectiveCode\Recall\RecallManager; $manager = app(RecallManager::class);$manager->flushLocalCache();
ಸಂಪರ್ಕ ನಿರ್ವಹಣೆ
use DefectiveCode\Recall\RecallManager; $manager = app(RecallManager::class); // ಅಮಾನ್ಯಗೊಳಿಸುವಿಕೆ ಚಂದಾದಾರರಿಗೆ ಸಂಪರ್ಕ ಹೊಂದಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿif ($manager->isConnected()) { // ...} // ಕೈಯೆ ಸಂಪರ್ಕ ವಿಛೇದಿಸಲು$manager->disconnect();
ಸುಧಾರಣೆ
ಕಾರ್ಮಿಕ ವಿನಂತಿಗಳ ಸೀಮಿತ
Laravel Octane ಕಾರ್ಯಕರ್ತರನ್ನು ವಿನಂತಿಗಳ ಸಂಖ್ಯೆಗೆ ಅನುಪಾತದಲ್ಲಿ ಸಸೂಗಳು ಮೂಡಿಸುತ್ತದೆ. ಕಾರ್ಮಿಕನ ತಿರುಗಿದಾಗ, ಅದರ ಸ್ಥಳೀಯ ಕ್ಯಾಶ್ ಶುದ್ಧವಾಗುತ್ತದೆ. ಈ ಮಿತಿಯನ್ನು ಹೆಚ್ಚಿಸುವುದು Recall ನ ಸ್ಥಳೀಯ ಕ್ಯಾಶ್ ಲಂಬಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ, ಕ್ಯಾಶ್ ಬೆಳೆಸುವುದರಲ್ಲಿ ಉತ್ತಮ ವರ್ತನೆ.
ನಿಮ್ಮ config/octane.php ನಲ್ಲಿ:
// ಮುಂದೆ 500 ವಿನಂತಿ ಸಂಖ್ಯೆಗೆ ಆಸ್ಥಾ ತଙ್ಮಾದಿತ್ಯ ಇಲ್ಲ'max_requests' => 10000,
ಹೆಚ್ಚಾದ ಮಾನಗಳು ಉತ್ತಮ ಕ್ಯಾಶ್ ಬಳಕೆಗೆ, ಆದರೆ ನಿಮ್ಮ ಅನ್ವಯದಲ್ಲಿ ಮೆಮೊರಿ ಆವರಣೆಗಳಿಲ್ಲ ಅನ್ನುವ ಬಗ್ಗೆ ಖಚಿತಪಡಿಸಲು ಅಗತ್ಯವಿದೆ. ಈ ಅಂಶವನ್ನು ಹೊಂದುವಾಗ ನಿಮ್ಮ ಕಾರ್ಯಕರ್ತೆ ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಮರೆಯಲು.
ಪೂರ್ವಭಾವಿಗಳೊಂದಿಗೆ ಚಯನಾತ್ಮಕ ಕ್ಯಾಶಿಂಗ್
cache_prefixes ಅನ್ನು ಯಾವ ಕೀಗಳನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಕ್ಯಾಶ್ ಮಾಡಬೇಕೆಂದು ಬಿಡರಲು ಬಳಸಬಹುದು. ಇದು ಅತಿದೊನ್ನೆ ತುಂಬಾ:
- ಹೆಚ್ಚಿನ ಪ್ರಮಾಣದ ಕೀ: ಕೆಲ ಶ್ರೇಣೀಗಳನ್ನು ತೀವ್ರವಾಗಿ ಬದಲಾಯಿಸುತ್ತವೆ, ಸ್ಥಳೀಯ ಕ್ಯಾಶ್ಗಳಿಂದ ಕಡಿಮೆ ಪ್ರಯೋಜನವಿದೆ
- ದೊಡ್ಡ ಮೌಲ್ಯಗಳು: ಮಾತ್ರ ಆಕ್ಸೆಸ್ ಹೊಂದಿರುವ,ಮೊದಲ ಓದುಗಳಾದ ಶ್ರೇಣೀ ಬಂಡುಗಳಲ್ಲಿ
- ಅಗತ್ಯವಿಲ್ಲದ ಮಾಹಿತಿಗಳು: ಕೆಲವು ಮಾಹಿತಿಗಳದಲ್ಲಿ ಸುರುಚಿಯಾಗಿರುವ ಕಾರಣ ಅಥವಾ ಅನುಮಾನಗಳಿಗೆ Redis ಮಾತ್ರ
// config/recall.php'cache_prefixes' => [ 'users:', // ಸ್ಥಳೀಯ ಬಳಕೆದಾರ ಡೇಟಾ ಕ್ಯಾಶ್ ಮಾಡಿ 'settings:', // ಸ್ಥಳೀಯ ಆಪ್ಲಿಕೇಶನ್ ನಿಯಮವನ್ನು ಕ್ಯಾಶ್ ಮಾಡಿ 'products:', // ಉತ್ಪನ್ನ ಪರಗ್ರಹವನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಕ್ಯಾಶ್ ಮಾಡಿ],
ಈ ಪೂರ್ವಭಾವಿಗಳನ್ನು ಹೊಂದಿರುವ ಕೀಗಳು ಕಾರ್ಯಬದ್ಧವಾಗುವ ಅಗತ್ಯವಿಲ್ಲ, ಆದರೆ ಸ್ಥಳೀಯ ಕ್ಯಾಶಿಂಗ್ ಮೂಲಕವಾದ ಸೇವೆಗಳನ್ನು ನೇರವಾಗಿ Redis ಕಡೆಯಿಂದ ಹೋಗುತ್ತವೆ.
ಮೆಮೊರಿ ವ್ಯವಹಾರ
APCu ಮೆಮೊರಿ
APCu ಎಲ್ಲಾ PHP ಕಾರ್ಯಾಲಯಗಳಾದ ಹಂಚಿದ ಮೆಮೊರಿಯೆ. php.ini ನಲ್ಲಿ ಮೆಮೊರಿ ಮಿತಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ:
; ಡೀಫಾಲ್ಟ್ 32MB, ಹೆಚ್ಚಿನ ಕ್ಯಾಶ್ ತೆಗ್ಗುಗಳು ಏಕಕಾಲದಲ್ಲೇapc.shm_size = 128M
APCu ಬಳಸಿದ ಎಲ್ಲಾಗಳನ್ನು ನಾವು apcu_cache_info() ಮೂಲಕ ಅಧೀಕ್ಷಿಸುವುದು:
$info = apcu_cache_info();$memory = $info['mem_size']; // ಉದ್ಯೋಗದಲ್ಲಿಯೆ ವರ್ಚುನಿಯಲ್ಲಿಯೆ ನಿಮಿಷಗಳು
Swoole ಟೇಬಲ್ ಅಳತೆ
Swoole ಟೇಬಲ್ನನ ನಿಯಮಬಂಧನ ಸ್ಥಳೀಯವಾಗಿ ಪ್ರಯೋಜನವನ್ನು ಹೊಂದಲಿದೆ. ನಿರೀಕ್ಷಿತ ಕ್ಯಾಶ್ ಗಾತ್ರವನ್ನು ಸ್ನೇಹದಿಂದ:
'local_cache' => [ // ಗರಿಷ್ಠ ದಾಖಲೆಗಳು 2 ಶಕ್ತಿಯಾಗಿ ಸಾಲಾಗುತ್ತವೆ) 'table_size' => 65536, // 64K ದಾಖಲೆಗಳು // ಶ್ರೇಣಿಕರಣ ಬೆಲೆಗೆ ಗರಿಷ್ಠ ಮೌಲ್ಯ ಶ್ರೇಣಿಯಲ್ಲಿಯೇ 'value_size' => 8192, // 8KB ಪ್ರತಿ ಬೆಲೆಯಲ್ಲಿಯೇ],
ಮೆಮೊರಿ ಬಳಕೆಯು: table_size × (value_size + overhead). 65536 ದಾಖಲೆಗಳು ಹಾಗೂ 8KB ಬೆಲೆಯದು ಶ್ರೇಣಿಯಲ್ಲಿ ಸುಮಾರು 512MB ಬಳಸಿಸುತ್ತದೆ.
ಸಾಮಾನ್ಯ ಮಾದರಿಗಳು
ಅನ್ವಯ_configuration
// ಕ್ಯಾಶ್ ಫೀಚರ್ ಫ್ಲಾಗ್ಗಳು ಮತ್ತು ಘಟನೆಗಳು$features = Cache::store('recall')->remember('config:features', 3600, function () { return Feature::all()->pluck('enabled', 'name')->toArray();}); // ನಿಯೋಜನೆ ಬದಲಾಯಿಸಿದಾಗ, ಎಲ್ಲಾ ಕಾರ್ಯಕರ್ತರು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನವೀಕರಣವನ್ನು ಪಡೆಯುತ್ತಾರೆ
ಹೆಚ್ಚು ಬಳಸಿದ ದಾಖಲಾತಿ ಡೇಟಾ
// ಉತ್ಪನ್ನ ಶ್ರೇಣಿಗಳನ್ನು ಕ್ಯಾಶ್ ಮಾಡಿ$categories = Cache::store('recall')->remember('categories:all', 3600, function () { return Category::with('children')->whereNull('parent_id')->get();}); // ಕರೆನ್ಸಿ ವಿನಿಮಯ ಹಿಂತರಿ ಕ್ಯಾಶ್ ಮಾಡಲಾಗಿದೆ$rates = Cache::store('recall')->remember('rates:exchange', 300, function () { return ExchangeRate::all()->pluck('rate', 'currency')->toArray();});
ಕ್ಯಾಶ್ ಟ್ಯಾಗು ಪರ್ಯಾಯ
Recall ಕ್ಯಾಶ್ ಟ್ಯಾಗ್ಗಳನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ, ಆದರೆ ನೀವು ಪೂರ್ವಭಾವಿಗಳನ್ನು ಬಳಸಿದರೆ ತಾರ್ಕಿಕ ಘಟಕವನ್ನು ತಲುಪಬಹುದು:
// ಟ್ಯಾಗೊಳಿಸುವ ಬದಲಿಗೆ, ಒತ್ತಿಕೊಂಡ ಪೂರ್ವಘಟಕಗಳನ್ನು ಬಳಸಿCache::store('recall')->put("blog:posts:{$id}", $post, 3600);Cache::store('recall')->put("blog:comments:{$postId}", $comments, 3600); // ಒಟ್ಟಾಗಿ ಎಲ್ಲಾ ಬ್ಲಾಗ್ಗೆ ಸಂಬಂಧಪಟ್ಟ ಕ್ಯಾಶ್ ಅನ್ನು ಕ್ಲಿಯರ್ ಮಾಡಲು ಪ್ರಾವೃತ್ತಿ (ಕೆಲವು ಕೈಯು ಸ್ಥಳೀಯವಾಗಿ ಮಾಡಿದೇರಿಸಲು)// ಅಥವಾ ಡೇಟಾ ಬದಲಾಗುವಾಗ ಸ್ವಯಂಚಾಲಿತ ಅಮಾನ್ಯಗೊಳಿಸಲು ಅವಲಂಬಿಸಬಹುದು
ಮಿತಿಗಳು
Redis ಕ್ಲಸ್ಟರ್ ಮೋಡ್
Recall Redis ಕ್ಲಸ್ಟರ್ ಮೋಡ್ ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. CLIENT TRACKING ಆಜ್ಞೆಯ REDIRECT ಆಯ್ಕೆ ಕಾರ್ಯಕ್ರಮವನ್ನು ಕ್ಲೈಂಟ್ ಸಂಪರ್ಕ ಮತ್ತು ಅಮಾನ್ಯಗೊಳಿಸುವ ಸಂಬಂಧವೂ Redis ನೋಡ್ ಹೊಂದಿರಬೇಕಾದರೆ ಬಳಸುವುದಲ್ಲದೆ.Redis ಕ್ಲಸ್ಟರ್ಗಳಲ್ಲಿ, ಕೀಗಳು ಹ್ಯಾಶ್ ಸ್ಲಾಟ್ಗಳ ಆಧಾರದ ಮೇಲೆ ಹಲವು ನೋಡ್ಗಳಲ್ಲಿ ವಿತರಿಸಲಾಗುತ್ತದೆ, ಇದರಿಂದ ವಿಭಿನ್ನ ನೋಡ್ಗಳಲ್ಲಿ ಉಳಿಸುವ ಕೀಗಳಿಗೆ ಅನ್ವಯಿಸಬಲ್ಲಷ್ಟಿಲ್ಲ.
ಕ್ಲಸ್ಟರ್ಗೊಳ್ಳುವ Redis ಕೃಷಿಸಲು ಪರಿಗಣಿಸಿ:
- ಕ್ಲೈಂಟ್-ದ ಭಾರತೀಯ ಮುಖಾಂತರ ಪ್ರಯೋಜನವನ್ನು ಹೊಂದಿದ ಒಂದು Redis ಪ್ರಮಾಣವನ್ನು ಬಳಸುವುದು
- ಇತರ ಡೇಟಾ Redis ಕ್ಲಸ್ಟರ್ ಬಳಸಿ, ಆದರೆ ನಿಕಟವಾಗಿ ಓದು ಕ್ಲಿಯರ್ ಅಥವಾ ಸ್ಥಿರ ಡೇಟಾ ಪರದೇಸಿ ವರ್ಗದಲ್ಲಿ ಇಟ್ಟುಕೊಳ್ಳುತ್ತದೆ
ಬೆಂಬಲ ಮಾರ್ಗಸೂಚಿಗಳು
ನಮ್ಮ ತೆರೆಯಾಗಿ ಮೂಲಪದಾರ್ಥವನ್ನು ಆಯ್ಕೆ ಮಾಡಿದಕ್ಕೋಸ್ಕರ ಧನ್ಯವಾದಗಳು! ದಯವಿಟ್ಟು ಈ ಬೆಂಬಲ ಮಾರ್ಗಸೂಚಿಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ನೂರು ಕೊಡಿ. ಇವು ನಿಮ್ಮ ಯೋಜನೆಯಿಂದ ಹೆಚ್ಚು ಕ್ಕಿಯಾಗಿ ಮಾಡಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
ಸಮುದಾಯ ನಡಿಸುವ ಬೆಂಬಲ
ನಮ್ಮ ತೆರೆಯಾಗಿ ಮೂಲಪದಾರ್ಥವು ನಮ್ಮ ಅದ್ಭುತ ಸಮುದಾಯದಿಂದ ಪ್ರೇರಿತವಾಗಿದೆ. ನಿಮ್ಮಿಗೆ ಪ್ರಶ್ನೆಗಳಿದ್ದರೆ ಅಥವಾ ಸಹಾಯದ ಅಗತ್ಯವಿದ್ದರೆ, StackOverflow ಮತ್ತು ಇತರ ಆನ್ಲೈನ್ ಸಂಪತ್ತುಗಳು ನಿಮ್ಮ ಉತ್ತಮ ಆಯ್ಕೆಯಾಗಿವೆ.
ದೋಷಗಳು ಮತ್ತು ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಆದ್ಯತೆಯೀಡಿಸುವುದು
ಆವರ್ತಿತವಾಗಿರುವ ತೆರೆಯಾಗಿ ಮೂಲಪದಾರ್ಥವನ್ನು ನಿರ್ವಹಿಸುವ ವಾಸ್ತವವು, ಪ್ರತಿಯೊಬ್ಬ ವರದಿ ಮಾಡಿದ ದೋಷ ಅಥವಾ ವೈಶಿಷ್ಟ್ಯ ಕೇಳುವಿಕೆಯನ್ನೂ ತಕ್ಷಣ ಸಂಖ್ಯಾಪಟ್ಟಿ ಮಾಡುವುದು ಸಾಧ್ಯವಿಲ್ಲ. ನಾವು ಸಮಸ್ಯೆಗಳನ್ನು ಹೀಗೆಯೇ ಆದ್ಯತೆ ನೀಡುತ್ತೇವೆ:
1. ನಮ್ಮ ಪೈಸು ಉತ್ಪನ್ನಗಳನ್ನು ಪರಿಣಾಮ ಬೀರುವ ದೋಷಗಳು
ನಮ್ಮ ಪೈಸು ಉತ್ಪನ್ನಗಳನ್ನು ಪರಿಣಾಮ ಬೀರುವ ದೋಷಗಳು ಯಾವಾಗಲೂ ನಮ್ಮ ಉನ್ನತ ಆದ್ಯತೆ ಆಗುವವು. ಕೆಲವು ಸ್ಥಿತಿಗಳಲ್ಲಿ, ನಾವು ಕೇವಲ ನಮ್ಮನ್ನು ಅದೆ ಅಥವಾ ನೇರವಾಗಿ ಹಾನಿಯೊಳಗಾಗುವ ದೋಷಗಳನ್ನು ಮಾತ್ರ ಪರಿಹರಿಸಲಿಕ್ಕೆ ಇತ್ತು.
2. ಸಮುದಾಯ ಪುಲ್ Requestಗಳು
ನೀವು ಒಂದು ದೋಷವನ್ನು ಗುರುತಿಸಿದ್ದರೆ ಮತ್ತು ಒಂದು ಪರಿಹಾರವನ್ನು ಹೊಂದಿದ್ದರೆ, ದಯವಿಟ್ಟು ಕುರಿತಾದ ಪುಲ್ ಬುಟ್ಟಿ ಸಲ್ಲಿಸಿ. ನಮ್ಮ ಉತ್ಪನ್ನಗಳನ್ನು ಪರಿಣಾಮ ಬೀರುವ ಸಮಸ್ಯೆಗಳ ನಂತರ, ನಾವು ಸಮುದಾಯ-ಚಾಲಿತ ಪರಿಹಾರಗಳಿಗೆ ಮುಂದಿನ ಗರಿಷ್ಠ ಆದ್ಯತೆ ನೀಡುತ್ತೇವೆ. ಪರಿಶೀಲನೆ ಮತ್ತು ಅನುಮೋದನೆಯ ನಂತರ, ನಿಮ್ಮ ಪರಿಹಾರವನ್ನು ನಾವು ಸೇರಿಸುತ್ತೇವೆ ಮತ್ತು ನಿಮ್ಮ ಕೊಟ್ಟ ಒಡನೆಯ ಕುಂಬಳಕ್ಕೆ ಕ್ರೆಡಿಟ್ ನೀಡುತ್ತೇವೆ.
3. ಹಣಕಾಸಿನ ಬೆಂಬಲ
ಜಾಹೀರಾತು ಮಾಡದ ವರ್ಗಗಳ ಹೊರಗೊಮ್ಮಲುಗೆ, ನೀವು ಅವರ ಪರಿಹಾರಕ್ಕೆ ಹಣ ಮರುಪಾವತಿಸಲು ಆಯ್ಕೆ ಮಾಡಬಹುದು. ಪ್ರತಿ ತೆರೆಯಾದ ಸಮಸ್ಯೆ ಹಣಕಾಸಿನ ಕೊಡುಗೆ ನೀಡಲು ನೀವು ಜೋಡಿಸಲು ಅವಕಾಶ ఇಷ್ಟು ಇರುವ ಆರ್ಡರ್ ಫಾರ್ಮ್ಗೆ ಸಂಪರ್ಕಪಟ್ಟಿದೆ. ನಾವು ನೀಡಿದ ಹಣಕಾಸಿನ ಪ್ರಮಾಣಕ್ಕೆ ಆಧಾರಿತವಾಗಿ ಈ ಸಮಸ್ಯೆಗಳನ್ನು ಶ್ರೇಣೀಬದ್ಧ ಮಾಡುತ್ತೇವೆ.
ಸಮುದಾಯ ಕೊಡುಗೆಗಳು
ತೆರೆಯಾಗಿ ಮೂಲಬರಹವು ತನ್ನ ಸಮುದಾಯವು ತೀವ್ರರಾಗುವುದು. ನೀವು ದೋಷಗಳನ್ನು ಪರಿಹರಿಸುತ್ತಿಲ್ಲ ಆದರೂ, ಕೋಡ್ ಸುಧಾರಣ್ಗಳ ಮೂಲಕ, ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ನವೀಕರಣಗಳು, ಟ್ಯುಟೋರಿಯಲ್ಸ್, ಅಥವಾ ಸಮುದಾಯ ಚಾನೆಲ್ಗಳಲ್ಲಿ ಇತರರ ಸಹಾಯ ಮಾಡುವ ಮೂಲಕ ಕೊಡುಗೆ ನೀಡುವುದನ್ನು ಪರಿಗಣಿಸು. open-source ಕೆಲಸವನ್ನು ಬೆಂಬಲಿಸಲು ನಾವು ಎಲ್ಲರಲ್ಲಿಯೂ ಹತ್ತಿರ ಪ್ರೋತ್ಸಾಹಿಸುತ್ತೇವೆ.
ಮರಳಿ ಹೇಳಬೇಕಾದರೆ, DefectiveCode ನಮ್ಮ ಪೈಸು ಉತ್ಪನ್ನಗಳನ್ನು ಪರಿಣಾಮ ಬೀರುವ ದೋಷಗಳನ್ನು, ಸಮುದಾಯ ಪುಲ್ರಿಕ್ವೆಸ್ಟ್ಗಳನ್ನು, ಮತ್ತು ಸಮಸ್ಯೆಗಳಿಗೆ ದೊರೆತ ಹಣಕಾಸಿನ ಬೆಂಬಲವನ್ನು ಆಧರವಾಗಿ ಆದ್ಯತೆ ನೀಡುತ್ತದೆ.
ലൈസൻസ് - MIT ലൈസൻസ്സ്
കനിഹ് © Defective Code, LLC. എല്ലാറ്റിനും അവകാശങ്ങൾ കൊണ്ടിരിക്കൊണ്ടു
ഈ സോഫ്റ്റ്വെയർ മനസ്സിലാക്കുകയും, ഇതുമായി ബന്ധപ്പെട്ട രേഖകൾ (''സോഫ്റ്റ്വെയർ'') എന്നതിൽ, ആരയെങ്കിലും ഈ സോഫ്റ്റ്വെയറിന്റെ ഒരു പകർപ്പ് സ്വതന്ത്രമായി കൈവശപ്പെടുത്താൻ, സോഫ്റ്റ്വെയറിൽ നിയമനിർമ്മാണം ചെയ്യാൻ, ബഹുഭാഷാക്കാൻ, സമന്വയിക്കാൻ, പ്രസിദ്ധീകരിക്കാൻ, വിതരണം ചെയ്യാൻ, ഉപരിമിതിയുള്ളവനെ/വെബ്സൈറ്റിനെ/വിപണിയിൽ, സോഫ്റ്റ്വെയർ ისტორი അുനിയ്ക്കുന്നു, അത്തരം വ്യക്തികളെ അനുവദിക്കാനും, തുടർന്ന് ഈ ഘടനകളെ സമർപ്പിക്കുമ്, ഈ നിബന്ധനകൾ പാലിക്കുവാൻ തയ്യാറാണ്:
മുകളിൽ കൊടുത്ത കൃതിമാറ്റം നോട്ടം, ഈ അനുമതി നോട്ടം എല്ലാ കോപ്പികളിലും അല്ലെങ്കിൽ സോഫ്റ്റ്വെയറിന്റെ പ്രധാന ഭാഗങ്ങളിൽ ഉൾപ്പെടണം.
സോഫ്റ്റ്വെയർ "എസ് ആസ്" എന്ന നിലയിൽ, ഏത് വിധത്തിലുള്ള ഗുണനിലവാരമോ, വ്യക്തമായോ അല്ലെങ്കിൽ സൂചിപ്പിക്കപ്പെട്ടതുമായ, വ്യാപാര സ്വദേശനിർമ്മാണം, പ്രത്യേക സാഹചര്യങ്ങൾക്കായുള്ള യോജ്യത, വിപരീതങ്ങളെക്കുറിച്ചുള്ള വൈകല്യങ്ങൾ അടക്കം, ഏതെങ്കിലും രൂപത്തിലുള്ള വഞ്ചനകൾ, ബാധ്യതയെ അറിഞ്ഞോ, അറിഞ്ഞില്ലയ്ക്കും, സോഫ്റ്റ്വെയർ അല്ലെങ്കിൽ സോഫ്റ്റ്വെയർ ഉപയോഗം അല്ലെങ്കിൽ അതിനോട് പൊരുത്തപ്പെടുന്ന മറ്റുള്ളവയിൽ നിൽക്കുന്നു, പിടിയിൽ അല്ലെങ്കിൽ കരാറിൽ, അഴുക്കുകൾ അല്ലെങ്കിൽ മറ്റെന്തെങ്കിലും, ഉയർന്ന കാര്യങ്ങളെ നേരിടുന്നു.