Redis Sinhala Guide
Redis කියන්නේ මොකක්ද? | Redis ගැන සම්පූර්ණ මාර්ගෝපදේශයක්
Redis (Remote Dictionary Server) යනු ඉතා වේගවත්, open-source, in-memory data store එකකි. Redis බොහෝ විට database, cache, සහ message broker ලෙස භාවිතා වේ. Web application performance වැඩි කිරීම සඳහා Redis අද ලෝකයේ බොහෝ developers විසින් භාවිතා කරන ප්රධාන tool එකකි.
Redis භාවිතා කරන්නේ ඇයි?
අද වෙබ් යෙදුම් සහ cloud පද්ධති වේගය, පරිමාණය සහ real-time ක්රියාකාරීත්වය මත විශාල ලෙස රඳා පවතී. මෙම අවශ්යතා සාර්ථකව සපුරාලීමට Redis භාවිතා කිරීම ඉතා ප්රයෝජනවත් වේ.
Redis භාවිතා කිරීමට හේතු සහ එහි ප්රධාන වාසි පහත පරිදි වේ.
⚡ ඉතා වේගවත් ක්රියාකාරීත්වය
Redis, memory තුළම data තබාගන්නා පද්ධතියක් වන නිසා ඉතා වේගයෙන් ක්රියා කරයි.
Disk මත පදනම් වූ databases සමඟ සසඳන විට Redis response time බොහෝ අඩුය.
- ඉතා කෙටි කාලයකින් response ලැබේ
- වැඩි පිරිසක් භාවිතා කරන වෙබ් අඩවි සඳහා සුදුසුයි
- ප්රධාන database එකට ඇති බර අඩු කරයි
📈 පරිමාණය වැඩි කළ හැකි වීම සහ එකවර ඉල්ලීම් handle කිරීම
Redis එකවර requests විශාල ප්රමාණයක් handle කිරීමට හැකි ලෙස නිර්මාණය කර ඇත.
- System එක පරිමාණය වැඩි කිරීම පහසුයි
- Data replicate කිරීම සහ high availability support කරයි
- Microservices architecture සඳහා ඉතා සුදුසුයි
🧩 විවිධ data ව්යුහයන්ට සහය
Redis සරල key-value storage එකකට වඩා වැඩි හැකියාවක් ලබා දෙයි.
Redis මඟින් සහය දක්වන data ව්යුහයන්:
- Strings
- Lists
- Sets
- Sorted Sets
- Hashes
මෙම හැකියාවන් නිසා සංකීර්ණ ගැටලු සරල ලෙස විසඳිය හැක.
🔄 Real-time දත්ත සැකසීම සඳහා සුදුසු වීම
Real-time ලෙස දත්ත සැකසීම අවශ්ය වන පද්ධති සඳහා Redis ඉතා හොඳ විසඳුමකි.
- Live notifications
- Chat systems
- Real-time analytics
- Online games වල score boards
Publish / Subscribe ක්රමය භාවිතා කර data real-time ලෙස හුවමාරු කළ හැක.
🔥 Cache ලෙස භාවිතා කිරීමෙන් පද්ධතිය වේගවත් කිරීම
Redis cache එකක් ලෙස භාවිතා කිරීමෙන්:
- Database එකට යන requests ප්රමාණය අඩුවේ
- Application එකේ වේගය වැඩිවේ
- Server resources ඉතිරි කරගත හැක
නිතර භාවිතා වන දත්ත cache කිරීම සඳහා Redis ඉතා සුදුසුය.
🛡️ දත්ත ආරක්ෂාව සහ නැවත ලබාගැනීම
Redis memory-based වුවත්, data නැතිවීම වළක්වා ගැනීමට විවිධ ක්රම ඇත.
- Snapshot මඟින් data save කිරීම
- සිදු කරන වෙනස්කම් log කිරීම
- මෙම ක්රම එකට භාවිතා කිරීම
ඒ නිසා system restart වුවත් දත්ත ආරක්ෂිතව පවත්වාගත හැක.
🔐 ආරක්ෂාව සහ production භාවිතයට සුදුසු වීම
Redis production systems සඳහා අවශ්ය ආරක්ෂක පහසුකම් සපයයි.
- Password භාවිතයෙන් authentication
- Access control
- SSL / TLS මඟින් data encrypt කිරීම
🚀 Developers සඳහා පහසු භාවිතය
Redis ඉගෙන ගැනීම සහ භාවිතා කිරීම developers සඳහා පහසුය.
- සරල commands
- හොඳ documentation
- බොහෝ programming languages සඳහා support
🎯 සාරාංශය
Redis භාවිතා කරන්නේ:
- පද්ධතියේ වේගය වැඩි කිරීමට
- Real-time දත්ත handle කිරීමට
- විශාල පරිමාණයේ applications ගොඩනැගීමට
- නවීන software architectures සඳහා සහය ලබාගැනීමට
එමනිසා Redis අද software development ලෝකයේ අත්යවශ්ය තාක්ෂණයක් ලෙස සැලකේ.
Redis හි ප්රධාන Data Structures
Redis සම්ප්රදායික relational databases වලට වඩා වෙනස් වන data structures බොහොමයක් support කරයි.
1. Strings
Redis හි basic data type එකකි. Cache data, counters, tokens වැනි දේවල් සඳහා භාවිතා වේ.
2. Lists
Ordered collection එකක්. Chat messages, task queues වැනි use cases සඳහා ඉතා සුදුසුයි.
3. Sets
Unique values පමණක් store කරන collection එකක්. Tags, user IDs වැනි දේවල් සඳහා.
4. Sorted Sets (ZSET)
Score එකක් අනුව sort වන data structure එකකි. Leaderboards, rankings සඳහා භාවිතා වේ.
5. Hashes
Key-value pairs ලෙස data store කිරීම සඳහා. User profiles වැනි structured data සඳහා සුදුසුයි.

Redis Cache ලෙස භාවිතා කිරීම
Redis බොහෝ විට caching layer එකක් ලෙස භාවිතා කරයි.
Cache භාවිතා කිරීමෙන් ලැබෙන වාසි:
- Database load අඩු කරයි
- Page load speed වැඩි කරයි
- Server response time අඩු කරයි
උදාහරණයක් ලෙස:
SET user:1 "Nimal"
GET user:1
Redis Persistence (Data Save කිරීම)
Redis memory-based system එකක් වුවත්, data loss වළක්වා ගැනීමට persistence support කරයි. මෙය Redis production environments සඳහා විශ්වාසযোগ্য solution එකක් බවට පත් කරයි.
Redis Persistence Types
-
RDB (Snapshotting)
නියමිත කාල පරාසයන්හි data snapshot එකක් disk එකට save කරයි. -
AOF (Append Only File)
සිදු කරන සෑම write operation එකක්ම log file එකක් තුළ save කරයි. -
Hybrid Persistence
RDB සහ AOF දෙකේම වාසි එකට එක් කරන modern approach එකකි.
මෙම options නිසා Redis, high-availability systems සඳහාත් සුදුසු වේ.
Redis සහ MySQL / PostgreSQL අතර වෙනස
| ලක්ෂණ | Redis | MySQL / PostgreSQL |
|---|---|---|
| වේගය | ඉතා වේගවත් | සාමාන්ය |
| දත්ත ගබඩා කිරීම | Memory තුළ | Disk මත |
| දත්ත ආකාර | විවිධ ව්යුහයන් | වගු (Tables) |
| භාවිතය | Cache, real-time ක්රියාවලි | ස්ථිර දත්ත ගබඩා කිරීම |

Redis භාවිතා වන ප්රධාන ක්ෂේත්ර
- 🔥 User sessions පාලනය
- 📊 Real-time දත්ත විශ්ලේෂණ
- 💬 Chat සහ messaging systems
- 🕒 Requests සීමා කිරීම (Rate limiting)
- 🎮 Games සඳහා ලකුණු පුවරු
- 🚀 Microservices පද්ධති
Redis ආරක්ෂාව සඳහා හොඳ ක්රියාමාර්ග
Redis භාවිතා කරන විට ආරක්ෂාව පිළිබඳ විශේෂ අවධානයක් යොමු කළ යුතුය.
- Password භාවිතයෙන් authentication සක්රීය කරන්න
- Public networks වලට expose නොකරන්න
- SSL / TLS මඟින් දත්ත encrypt කරන්න
- Redis නවතම version භාවිතා කර update කර තබාගන්න
Redis ඉගෙන ගැනීම Developers සඳහා වැදගත් ඇයි?
අද cloud පරිසරයන් සහ high-performance පද්ධති සඳහා Redis දැනුම ඉතා ඉල්ලුමක් ඇති කුසලතාවයක් වේ.
Redis ඉගෙන ගැනීමෙන්:
- Backend developer ලෙස ඔබගේ වටිනාකම වැඩිවේ
- System design පිළිබඳ අවබෝධය වැඩිවේ
- විශාල පරිමාණයේ පද්ධති පහසුවෙන් handle කිරීමට හැකියාව ලැබේ
Redis ඉතිහාසය (History)
Redis 2009 දී Salvatore Sanfilippo (අපේක්ෂාවෙන් "antirez" ලෙසද හැඳින්වෙයි) විසින් ආරම්භ කරන ලදී. ඔහුගේ මුල්ම අරමුණ වශයෙන් ඉහළ වේගයකින් ක්රියා කරන, in-memory data store එකක් නිර්මාණය කිරීමයි. එය caching සඳහා design කරන ලද අතර, speed සහ simplicity පිළිබඳ අවධානය යොමු කළ යුතුයි.
Redis මුල් වශයෙන් key-value store එකක් ලෙස නිර්මාණය වුවත්, ඉක්මනින් එහි rich data structures (strings, lists, sets, sorted sets, hashes, bitmaps, hyperloglogs, geospatial indexes) සහ advanced features (pub/sub, Lua scripting, transactions, persistence options) එකතු කරන ලදී.
Redis වර්ධනය (Redis Evolution)
- 2009–2010: Redis මුල් release; caching-focused, simple API, fast performance.
- 2011–2013: Data persistence options (RDB, AOF) එකතු කිරීම; replication සහ high availability support.
- 2014–2016: Redis Cluster introduce කිරීම; distributed architecture සහ horizontal scaling හැකියාව.
- 2017–Present: Enterprise-grade features, modules support (RedisJSON, RediSearch, RedisGraph), cloud deployments සහ active open-source community growth.
Redis ඉතිහාසය පෙන්වන්නේ එය simple caching tool ව සිට modern real-time data platform එකක් බවට පරිවර්තනය වූ ආකාරයයි. ඒ නිසා Redis දැන් web applications, analytics, chat systems, gaming platforms, microservices සහ high-performance backend systems සඳහා අත්යවශ්ය tool එකක් බවට පත්ව ඇත.
Redis community එකත් විශාල භූමිකාවක් දැරූ අතර, open-source ecosystem තුළ contributors, companies, cloud providers සහ third-party modules සමඟ active development එකක් පවතිනවා. Redis ලොව පුරා high-demand skill එකක් බවට පත්ව ඇත, විශේෂයෙන් backend developers, system architects සහ DevOps engineers සඳහා.
Redis හි වාසි සහ අවාසි (Advantages and Disadvantages)
Redis යනු ඉහළ වේගයකින් ක්රියා කරන, in-memory data store එකක් වන අතර එහි භාවිතයෙන් බොහෝ වාසි සහ අවාසි තිබේ.
වාසි (Advantages)
-
ඉතා වේගවත්
Redis in-memory design නිසා milliseconds වලදී data read/write කිරීමට හැකියාව ඇත. Real-time applications සඳහා optimal වේ. -
Flexible Data Structures
Redis Strings, Lists, Sets, Sorted Sets, Hashes වැනි rich data structures support කරයි. Complex data manipulation පහසු කරයි. -
Persistence Options
RDB (snapshotting), AOF (Append Only File) සහ hybrid persistence support කරයි. මෙය data loss අවම කරයි production environment වල. -
Scalability
Redis Cluster සහ replication භාවිතයෙන් horizontal scaling සහ high availability ලබා ගත හැක. -
Versatile Use Cases
Caching, session management, real-time analytics, chat systems, leaderboards, rate limiting සහ microservices architecture සඳහා භාවිතා කළ හැක. -
Active Community and Modules
Redis open-source ecosystem robust වන අතර, RedisJSON, RediSearch, RedisGraph වැනි modules සමඟ expand කළ හැක.
අවාසි (Disadvantages)
-
Memory Consumption
Redis in-memory data store නිසා, large datasets සඳහා high RAM requirement ඇත. -
Data Loss Risk
Persistence options තිබුණත්, power failure හෝ misconfiguration නිසා data loss විය හැක. -
Not a Replacement for Relational DB
Redis relational database එකක් replace කිරීමට හොඳ නැත. එය supplementary tool එකක් වශයෙන් භාවිතා කළ යුතුයි. -
Complexity in Large Scale Deployments
Large clusters manage කිරීම සහ replication setup කිරීම technical expertise අවශ්ය වේ. -
Limited Querying Capabilities
SQL-like queries සහ complex joins support නොකරයි. Data retrieval structured relational DB වගේ නොවේ.
Redis high-speed, flexible, scalable solution එකක් වශයෙන් modern web applications, microservices සහ real-time systems සඳහා ideal වේ. නමුත් proper architecture සහ memory management අවශ්ය බව developers should keep in mind.
Redis Key-Value Store යනු කුමක්ද? (What is Redis Key-Value Store?)
Redis මූලික වශයෙන් key-value store එකක් වේ. මෙහිදී දත්තය key සහ value යන දෙකෙන් සමන්විත වේ.
Key-Value සංකල්පය
- Key: Unique identifier එකක් ලෙස භාවිතා වේ. Strings වැනි simple data type එකක් විය හැක.
- Value: Key එකට අදාළ actual data. Redis තුළ strings, lists, sets, hashes, sorted sets වැනි rich data structures වශයෙන් store කළ හැක.
මෙම design නිසා Redis:
- ඉතා වේගවත් වේ, memory-based read/write operations නිසා milliseconds වල data access ලබා ගත හැක.
- Flexible වේ, simple strings සිට complex data structures දක්වා store කළ හැක.
- Scalable වේ, keys partition කිරීම සහ Redis Cluster භාවිතා කිරීමෙන් large-scale deployments support කරයි.
Redis Key-Value Store වාසි
- සරලත්වය – Data access සරලයි, key එකෙන් value එක සොයා ගත හැක.
- වේගය – Direct key lookup නිසා very fast read/write operations.
- බහුලතාවය – Strings, lists, sets, hashes වැනි value types භාවිතා කළ හැක.
- Atomic Operations – Redis keys වල operations atomic වේ, concurrency handling පහසු කරයි.
Redis key-value design නිසා එය caching, session management, real-time analytics, leaderboards, microservices architecture වැනි applications සඳහා ideal වේ.

උදාහරණයක් (Example)
Key: user:1001:session
Value: {"username": "alice", "last_login": "2025-12-24T10:00:00"}
මෙහිදී user:1001:session යනු unique key එකක් වන අතර, value එක JSON format එකකින් user session data represent කරයි.
Redis key-value structure එකේ simplicity, speed, සහ flexibility නිසා modern web applications සහ high-performance systems සඳහා widely adopted වේ.
Laravel තුළ Redis භාවිතා කිරීම (Using Redis in Laravel)
Laravel modern PHP framework එකක් වන අතර Redis සමඟ seamless integration එකක් support කරයි. Redis cache, session, queue management වැනි features සඳහා Laravel තුළ භාවිතා කළ හැක.
Redis සදහා Laravel Configuration
- Redis package install කිරීම
Laravel Redis integration සඳහාpredis/predispackage එක භාවිතා කළ හැක.
composer require predis/predis
REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null REDIS_PORT=6379
- **config/database.php file එකේ Redis section check කරන්න. Laravel automatically .env settings use කරයි.
Redis Cache භාවිතා කිරීම
use Illuminate\Support\Facades\Cache;
// Store data in Redis cache
Cache::put('user_1001', 'Alice', 3600); // 3600 seconds
// Retrieve data from Redis cache
$user = Cache::get('user_1001');
Redis Session භාවිතා කිරීම
- **.env file update කිරීම:
SESSION_DRIVER=redis
- **Laravel automatically sessions Redis තුළ store කරයි. Session data faster access ලබා ගත හැක high-performance applications සඳහා.
Redis Queue භාවිතා කිරීම
use Illuminate\Support\Facades\Queue;
// Push job to Redis queue
Queue::push(new SendEmailJob($user));
// Process jobs with worker
php artisan queue:work redis
Redis භාවිතයෙන් Laravel Performance වර්ධනය
- Caching – Database queries cache කිරීම, page caching, API responses cache.
- Session Management – High traffic applications සඳහා fast session storage.
- Queue Management – Background jobs, emails, notifications efficiently handle කිරීම.
Laravel Redis integration නිසා backend performance වැඩි වන අතර real-time features implement කිරීම පහසු වේ.
නිගමනය (Conclusion)
Redis යනු modern software development සඳහා අත්යවශ්ය tool එකකි.
එහි වේගය, flexibility සහ scalability නිසා Redis, small projects වලින් large-scale enterprise systems දක්වා භාවිතා වේ.
ඔබ web developer, backend engineer හෝ DevOps engineer කෙනෙක් නම්, Redis ඉගෙන ගැනීම ඔබගේ career එකට විශාල වාසියක් වේ.