Redis 7.0 DBMS නිකුත් කිරීම

NoSQL පද්ධති පන්තියට අයත් Redis 7.0 DBMS නිකුතුව ප්‍රකාශයට පත් කර ඇත. Redis යතුරු/අගය දත්ත ගබඩා කිරීම සඳහා කාර්යයන් සපයයි, ලැයිස්තු, හෑෂ් සහ කට්ටල වැනි ව්‍යුහගත දත්ත ආකෘති සඳහා සහය මගින් වැඩි දියුණු කරන ලද අතර, Lua හි සේවාදායක පැත්තේ ස්ක්‍රිප්ට් හසුරුවන්න ධාවනය කිරීමේ හැකියාව. ව්‍යාපෘති කේතය BSD බලපත්‍රය යටතේ සපයනු ලැබේ. RediSearch, RedisGraph, RedisJSON, RedisML, RedisBloom වැනි ආයතනික පරිශීලකයින් සඳහා උසස් හැකියාවන් ලබා දෙන අතිරේක මොඩියුල 2019 සිට හිමිකාර RSAL බලපත්‍රයක් යටතේ සපයා ඇත. මෑතකදී එකතැන පල්වෙමින් පවතින GoodFORM ව්‍යාපෘතිය, AGPLv3 බලපත්‍රය යටතේ මෙම මොඩියුලවල විවෘත අනුවාද සංවර්ධනය දිගටම කරගෙන යාමට උත්සාහ කළේය.

Memcached වැනි මතක ගබඩා පද්ධති මෙන් නොව, Redis විසින් දත්ත අඛණ්ඩව තැටියේ ගබඩා කර ඇති බව සහතික කරන අතර බිඳ වැටීමකදී දත්ත සමුදාය නොවෙනස්ව පවතින බව සහතික කරයි. ව්‍යාපෘතියේ මූල කේතය BSD බලපත්‍රය යටතේ බෙදා හැරේ. Perl, Python, PHP, Java, Ruby, සහ Tcl ඇතුළු බොහෝ ජනප්‍රිය භාෂා සඳහා සේවාලාභී පුස්තකාල තිබේ. දී ඇති විධාන මාලාවක් ක්‍රියාත්මක කිරීමේදී අනුකූලතාව සහ අනුකූලතාව (වෙනත් ඉල්ලීම් වලින් ලැබෙන විධානවලට බාධා කළ නොහැක) සහ ගැටළු ඇති විට, ඔබට ආපසු පෙරළීමට ඉඩ සලසමින් එක් පියවරකින් විධාන සමූහයක් ක්‍රියාත්මක කිරීමට ඔබට ඉඩ සලසන ගනුදෙනු සඳහා Redis සහාය දක්වයි. වෙනස් වෙනවා. සියලුම දත්ත සම්පුර්ණයෙන්ම RAM හි ගබඩා කර ඇත.

දත්ත කළමනාකරණය සඳහා වැඩිකිරීම්/අඩුකිරීම්, සම්මත ලැයිස්තුව සහ කට්ටල මෙහෙයුම් (යුනියන්, ඡේදනය), යතුරු නැවත නම් කිරීම, බහු තේරීම් සහ වර්ග කිරීමේ කාර්යයන් වැනි විධාන සපයනු ලැබේ. ගබඩා මාතයන් දෙකක් සඳහා සහය දක්වයි: කාලානුරූපී දත්ත තැටියට සමමුහුර්ත කිරීම සහ තැටියේ වෙනස් කිරීමේ ලොගයක් නඩත්තු කිරීම. දෙවන නඩුවේදී, සියලු වෙනස්කම් වල සම්පූර්ණ ආරක්ෂාව සහතික කෙරේ. මාස්ටර්-ස්ලේව් දත්ත ප්‍රතිනිර්මාණය සේවාදායක කිහිපයකට සංවිධානය කළ හැකි අතර එය අවහිර නොවන ආකාරයෙන් සිදු කෙරේ. නාලිකාවක් සාදනු ලබන "ප්‍රකාශනය/දායකත්වය" පණිවිඩකරණ මාදිලියක් ද ඇත, එයින් පණිවිඩ ග්‍රාහකයින් වෙත ග්‍රාහකයින් වෙත බෙදා හරිනු ලැබේ.

Redis 7.0 හි ප්රධාන වෙනස්කම්:

  • සේවාදායක පැත්තේ කාර්යයන් සඳහා සහය එක් කරන ලදී. Lua භාෂාවේ පෙර සහාය දක්වන ලද ස්ක්‍රිප්ට් මෙන් නොව, කාර්යයන් යෙදුමට බැඳී නොමැති අතර සේවාදායකයේ හැකියාවන් පුළුල් කරන අමතර තර්ක ක්‍රියාත්මක කිරීම අරමුණු කර ඇත. කාර්යයන් දත්ත සමඟ සහ දත්ත සමුදායට අදාළව නොවෙනස්ව සකසනු ලබන අතර, ප්‍රතිනිර්මාණය කිරීම සහ ස්ථිර ගබඩාව තුළ ගබඩා කිරීම ඇතුළුව යෙදුමට නොවේ.
  • ACL හි දෙවන සංස්කරණයක් යෝජනා කර ඇති අතර, යතුරු මත පදනම්ව දත්ත වෙත ප්‍රවේශය පාලනය කිරීමට ඔබට ඉඩ සලසන අතර එක් එක් පරිශීලකයාට තේරීම් කිහිපයක් (අවසර කට්ටල) බැඳීමට හැකියාව ඇති විධාන වලට ප්‍රවේශ වීම සඳහා විවිධ නීති මාලාවන් නිර්වචනය කිරීමට ඔබට ඉඩ සලසයි. සෑම යතුරක්ම නිශ්චිත අධිකාරියක් සමඟ හඳුනාගත හැකිය, උදාහරණයක් ලෙස, ඔබට කිසියම් යතුරු උප කුලකයක් කියවීමට හෝ ලිවීමට පමණක් ප්‍රවේශය සීමා කළ හැකිය.
  • පොකුරක් තුළ ක්‍රියාත්මක වන Publish-Subscribe පණිවිඩ බෙදාහැරීමේ ආදර්ශය කොටස් කරන ලද (කොටා දැමූ) ක්‍රියාත්මක කිරීමක් සපයනු ලැබේ, පණිවිඩ නාලිකාවක් අමුණා ඇති විශේෂිත නෝඩයකට පණිවිඩයක් යවනු ලැබේ, ඉන්පසු මෙම පණිවිඩය ඇතුළත් කර ඇති ඉතිරි නෝඩ් වෙත හරවා යවනු ලැබේ. ෂාර්ඩ් එකේ. ප්‍රධාන නෝඩයට සහ කොටසේ ද්විතියික නෝඩ් වෙත සම්බන්ධ වීමෙන්, නාලිකාවකට දායක වීමෙන් සේවාදායකයින්ට පණිවිඩ ලැබිය හැකිය. SSUBSCRIBE, SUNSUBSCRIBE සහ SPUBLISH විධාන භාවිතයෙන් පාලනය සිදු කෙරේ.
  • බොහෝ සන්දර්භයන් තුළ උප විධාන සැකසීම සඳහා සහය එක් කරන ලදී.
  • නව විධාන එකතු කර ඇත:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • සින්ටර්කාඩ්, සින්ටර්කාඩ්.
    • ප්‍රසිද්ධ කරන්න, දායක වන්න, හිරු දායකත්වය ලබා දෙන්න, PUBSUB ෂර්ඩ් චැනල්/SHARDNUMSUB.
    • EXPIRETIME, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNCTION *, FCALL, FCALL_RO.
    • විධාන ලේඛන, විධාන ලැයිස්තුව.
    • LATENCY HISTOGRAM.
    • ක්ලස්ටර් ෂාර්ඩ්ස්, ක්ලස්ටර් ලින්ක්ස්, ක්ලස්ටර් ඩෙල්ස්ලොට්‍රේන්ජ්, ක්ලස්ටර් ඇඩ්ස්ලෝට්‍රේන්ජ්.
    • සේවාලාභියාගේ අංකය-EVICT.
    • ACL DRYRUN.
  • එක් CONFIG SET/GET ඇමතුමක් තුළ එකවර බහුවිධ වින්‍යාස සැකසීමේ හැකියාව සපයා ඇත.
  • "-json", "-2", "-scan", "-functions-rdb" විකල්ප redis-cli උපයෝගීතාවයට එකතු කර ඇත.
  • පෙරනිමියෙන්, ආරක්ෂාවට බලපාන සැකසුම් සහ විධාන සඳහා සේවාලාභී ප්‍රවේශය අබල කර ඇත (උදාහරණයක් ලෙස, DEBUG සහ MODULE විධානයන් අබල කර ඇත, PROTECTED_CONFIG ධජය සමඟින් වින්‍යාස වෙනස් කිරීම තහනම් වේ). Redis-cli තවදුරටත් ඉතිහාස ගොනුවකට සංවේදී දත්ත අඩංගු විධාන ප්‍රතිදානය නොකරයි.
  • කාර්ය සාධනය වැඩි කිරීම සහ මතක පරිභෝජනය අඩු කිරීම ඉලක්ක කර ගනිමින් ප්‍රශස්තකරණයන්ගෙන් විශාල කොටසක් හඳුන්වා දී ඇත. උදාහරණයක් ලෙස, පොකුරු මාදිලිය සක්‍රීය කරන විට, පිටපත්-ඔන්-රයිට් මෙහෙයුම් සිදු කරන විට සහ හැෂ් සහ zset යතුරු සමඟ වැඩ කරන විට මතක පරිභෝජනය සැලකිය යුතු ලෙස අඩු වී ඇත. තැටියට දත්ත ෆ්ලෂ් කිරීම සඳහා වැඩි දියුණු කළ තර්කනය (fsync ඇමතුම). සේවාලාභියාට ප්‍රතිචාර යැවීමේදී ජාල පැකට් සහ පද්ධති ඇමතුම් ගණන අඩු කර ඇත. අනුවර්තනය කිරීමේ කාර්යක්ෂමතාව වැඩි දියුණු කර ඇත.
  • Lua ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීම සඳහා පරිසරයේ ඇති අවදානම් CVE-2022-24735 සවි කර ඇත, එමඟින් ඔබට ඔබේම Lua කේතය ආදේශ කිරීමට සහ ඉහළ වරප්‍රසාද ඇති එකක් ඇතුළුව වෙනත් පරිශීලකයෙකුගේ සන්දර්භය තුළ එය ක්‍රියාත්මක කිරීමට ඉඩ සලසයි.
  • ස්ථාවර අවදානම් CVE-2022-24736, NULL pointer dereference හේතුවෙන් redis-server ක්‍රියාවලිය බිඳ වැටීමට ඉඩ සලසයි. විශේෂයෙන් නිර්මාණය කරන ලද ලුවා ස්ක්‍රිප්ට් පැටවීම හරහා ප්‍රහාරය සිදු කෙරේ.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න