මතක සටහන් එදිරිව රෙඩිස්?


1477

හැඹිලි සඳහා අපි රෙඩිස් සේවාදායකය සමඟ රූබි වෙබ් යෙදුමක් භාවිතා කරමු . ඒ වෙනුවට Memcached පරීක්ෂා කිරීමට කාරණයක් තිබේද?

අපට වඩා හොඳ කාර්ය සාධනයක් ලබා දෙන්නේ කුමක්ද? රෙඩිස් සහ මෙම්චේච් අතර යම් වාසියක් තිබේද?

සලකා බැලිය යුතු කරුණු:

  • කියවීමේ / ලිවීමේ වේගය.
  • මතක භාවිතය.
  • තැටි I / O ඩම්ප්ලිං.
  • පරිමාණය.

38
පහත දැක්වෙන අදහස් වලට අමතරව තවත් විශ්ලේෂණයක්: ගූගල් ප්‍රවණතා: රෙඩිස් එදිරිව මතක තබා ගැනීම
මාර්ක්හු

4
පිළිතුරක් අවශ්‍ය නොවන එක් විවරණයක්: ඔබ මෙම පද්ධති දෙක සඳහා වලාකුළු මත පදනම් වූ සේවාවන් දෙස බලන්නේ නම් (උදා: හෙරොකු ඇඩෝන) මතක තබා ගත් සේවාවන් සමහර විට කුමන හේතුවක් නිසා හෝ MB එකකට තරමක් ලාභදායී වේ.
බෙන් රොබට්ස්

Answers:


2126

සාරාංශය (TL; DR)

යාවත්කාලීන කරන ලද්දේ 2017 ජුනි මස 3 වැනිදාය

රෙඩිස් මතක තබා ගැනීමට වඩා බලවත්, වඩා ජනප්‍රිය සහ වඩා හොඳ සහාය ඇත. මතක තබා ගත හැක්කේ රෙඩිස්ට කළ හැකි දේවලින් සුළු කොටසක් පමණි. රෙඩිස් වඩා හොඳ වන්නේ ඒවායේ ලක්ෂණ අතිච්ඡාදනය වන තැනක ය.

අළුත් ඕනෑම දෙයක් සඳහා, රෙඩිස් භාවිතා කරන්න.

Memcached vs Redis: සෘජු සංසන්දනය

මෙවලම් දෙකම බලවත්, වේගවත්, මතකයේ ඇති දත්ත ගබඩාවක් වන අතර ඒවා හැඹිලියක් ලෙස ප්‍රයෝජනවත් වේ. දත්ත සමුදායේ ප්‍රති results ල, HTML කොටස් හෝ උත්පාදනය සඳහා මිල අධික විය හැකි වෙනත් ඕනෑම දෙයක් හැඹිලි මඟින් ඔබේ යෙදුම වේගවත් කිරීමට මේ දෙකටම හැකි වේ.

සලකා බැලිය යුතු කරුණු

එකම දේ සඳහා භාවිතා කරන විට, මුල් ප්‍රශ්නයේ “සලකා බැලිය යුතු කරුණු” භාවිතා කරමින් ඔවුන් සංසන්දනය කරන ආකාරය මෙන්න:

  • කියවීමේ / ලිවීමේ වේගය : දෙකම අතිශයින් වේගවත් ය. මිණුම් සලකුණු වැඩ බර, අනුවාද සහ වෙනත් බොහෝ සාධක අනුව වෙනස් වන නමුත් සාමාන්‍යයෙන් රෙඩිස් මතක තබා ඇති තරම් වේගවත් හෝ පාහේ වේගවත් බව පෙන්නුම් කරයි. මම රෙඩිස් නිර්දේශ කරමි, නමුත් මතක තබා ගැනීම මන්දගාමී නිසා නොවේ. එය නෙමෙයි.
  • මතක භාවිතය : රෙඩිස් වඩා හොඳය.
    • memcached: ඔබ හැඹිලි ප්‍රමාණය නියම කරන අතර ඔබ අයිතම ඇතුළු කරන විට ඩීමන් ඉක්මනින් මෙම ප්‍රමාණයට වඩා ටිකක් වැඩෙයි. මතක තබා ගත් නැවත ආරම්භ කිරීම කෙටියෙන්, එම අවකාශය නැවත ලබා ගැනීමට කිසි විටෙකත් ක්‍රමයක් නොමැත. ඔබගේ සියලු යතුරු කල් ඉකුත් විය හැකිය, ඔබට දත්ත සමුදාය ගලා යා හැකිය, තවද එය ඔබ විසින් වින්‍යාස කරන ලද RAM හි සම්පූර්ණ කොටස භාවිතා කරයි.
    • redis: උපරිම ප්‍රමාණයක් සැකසීම ඔබට භාරයි. රෙඩිස් කිසි විටෙකත් එයට වඩා වැඩි ප්‍රමාණයක් භාවිතා නොකරන අතර එය තවදුරටත් භාවිතා නොකරන මතකය ඔබට ලබා දෙනු ඇත.
    • මම අහඹු වාක්‍ය 100,000 ~ 2KB නූල් (M 200MB) දෙකටම ගබඩා කර තැබුවෙමි. මතක තබා ගත් RAM භාවිතය ඩොලර් 225MB දක්වා වර්ධනය විය. රෙඩිස් RAM භාවිතය ඩොලර් 228MB දක්වා වර්ධනය විය. දෙකම පිස දැමීමෙන් පසු, රෙඩිස් ඩොලර් 29MB දක්වා පහත වැටුණු අතර මතක තබා ගැනීම ඩොලර් 225MB හි රැඳී සිටියේය. ඔවුන් දත්ත ගබඩා කරන ආකාරය සම්බන්ධයෙන් ද ඒ හා සමානව කාර්යක්ෂම වේ, නමුත් එය නැවත ලබා ගත හැක්කේ එක් අයෙකුට පමණි.
  • තැටි I / O ඩම්ප්ලිං : රෙඩිස් සඳහා පෙරනිමියෙන් මෙය සිදු වන අතර එය වින්‍යාසගත කළ හැකි ස්ථීරභාවයක් ඇත. තෙවන පාර්ශවීය මෙවලම් නොමැතිව තැටියට දැමීමේ යාන්ත්‍රණයක් මෙම්කාචඩ් සතුව නොමැත.
  • පරිමාණය : හැඹිලියක් ලෙස එක් අවස්ථාවකට වඩා අවශ්‍ය වීමට පෙර දෙකම ඔබට ටොන් ගණනක් ලබා දෙයි. මතක තබා ගත නොහැකි අතර ඉන් ඔබ්බට යාමට ඔබට උදව් වන මෙවලම් රෙඩිස්ට ඇතුළත් වේ.

memcached

Memcached යනු සරල වාෂ්පශීලී හැඹිලි සේවාදායකයකි. 1MB දක්වා වූ නූලක් වීමට වටිනාකම සීමා වී ඇති යතුරු / අගය යුගල ගබඩා කිරීමට එය ඔබට ඉඩ දෙයි.

මෙය හොඳයි, නමුත් එපමණයි. ඔබට එම අගයන් ඒවායේ යතුරෙන් අතිශයින්ම වේගයෙන් ප්‍රවේශ විය හැකිය, බොහෝ විට පවතින ජාලය සංතෘප්ත කිරීම හෝ මතක කලාප පළල.

ඔබ මතක සටහන් නැවත ආරම්භ කරන විට ඔබේ දත්ත නැති වී යයි. හැඹිලියක් සඳහා මෙය හොඳයි. ඔබ එහි වැදගත් කිසිවක් ගබඩා නොකළ යුතුය.

ඔබට ඉහළ කාර්ය සාධනයක් හෝ ඉහළ උපයෝජ්‍යතාවයක් අවශ්‍ය නම් තෙවන පාර්ශවීය මෙවලම්, නිෂ්පාදන සහ සේවාවන් තිබේ.

redis

රෙඩිස්ට මතක තබා ගත හැකි කාර්යයන්ම කළ හැකි අතර ඒවා වඩා හොඳින් කළ හැකිය.

රෙඩිස්ට හැඹිලියක් ලෙසද ක්‍රියා කළ හැකිය . එයට යතුරු / වටිනාකම් යුගලද ගබඩා කළ හැකිය. රෙඩිස් වලදී ඒවා 512MB දක්වා විය හැකිය.

ඔබට නොපසුබට උත්සාහය අක්‍රිය කළ හැකි අතර එය නැවත ආරම්භ කිරීමේදී ඔබගේ දත්තද සතුටින් නැති වේ. ඔබේ හැඹිලිය නැවත ආරම්භ වීමට ඔබට අවශ්‍ය නම් එය ඔබටත් එය කිරීමට ඉඩ දෙයි. ඇත්ත වශයෙන්ම, එය පෙරනිමියයි.

එය ඉතා වේගවත් වන අතර බොහෝ විට එය ජාල හෝ මතක කලාප පළල මගින් සීමා වේ.

රෙඩිස් / මතක තබා ගත් එක් අවස්ථාවක් ඔබගේ කාර්ය භාරය සඳහා ප්‍රමාණවත් කාර්ය සාධනයක් නොමැති නම්, රෙඩිස් යනු පැහැදිලි තේරීමකි. රෙඩිස්ට පොකුරු ආධාරක ඇතුළත් වන අතර ඉහළ ලබා ගත හැකි මෙවලම් ( රෙඩිස්-සෙන්ඩිනල් ) "කොටුවේ" ඇත. පසුගිය වසර කිහිපය තුළ රෙඩිස් තෙවන පාර්ශවීය මෙවලම්වල පැහැදිලි නායකයා ලෙස ද ඉස්මතු වී තිබේ. රෙඩිස් ලැබ්, ඇමේසන් සහ වෙනත් සමාගම් බොහෝ ප්‍රයෝජනවත් රෙඩිස් මෙවලම් සහ සේවාවන් ලබා දෙයි. රෙඩිස් වටා ඇති පරිසර පද්ධතිය වඩා විශාල ය. මහා පරිමාණ යෙදවීම් ගණන දැන් මතක තබා ගැනීමට වඩා වැඩි ය.

රෙඩිස් සුපර්සෙට්

රෙඩිස් හැඹිලියකට වඩා වැඩිය. එය මතකයේ ඇති දත්ත ව්‍යුහ සේවාදායකයකි. මතක තබා ගැනීම වැනි සරල යතුරක් / වටිනාකම් හැඹිලියක් නොවී රෙඩිස්ට කළ හැකි දේවල් පිළිබඳ ඉක්මන් දළ විශ්ලේෂණයක් ඔබට පහතින් ඇත. බොහෝ redis 'ලක්ෂණ memcached කරන්න බැහැ දේවල්.

ප්‍රලේඛනය

රෙඩිස් මතක සටහන් වලට වඩා ලේඛනගත කර ඇත. මෙය ආත්මීය විය හැකි නමුත්, එය සෑම විටම වඩ වඩාත් සත්‍ය බව පෙනේ.

redis.io යනු ඉතා පහසුවෙන් සැරිසැරීමට සුදුසු සම්පතකි. එය ඔබට බ්‍රව්සරයේ නැවත උත්සාහ කිරීමට ඉඩ දෙන අතර ලේඛනයේ ඇති සෑම විධානයක් සමඟම සජීවී අන්තර්ක්‍රියාකාරී උදාහරණ පවා ලබා දෙයි.

රෙඩිස් සඳහා මතක සටහන් කර ඇති පරිදි ස්ටක් ඕවර් ප්‍රවාහ ප්‍රති results ල 2x ක් දැන් ඇත. ගූගල් ප්‍රති .ල මෙන් 2x. තවත් භාෂාවලින් පහසුවෙන් ප්‍රවේශ විය හැකි උදාහරණ. වඩාත් ක්‍රියාකාරී සංවර්ධනය. වඩාත් ක්‍රියාකාරී සේවාදායක සංවර්ධනය. මෙම මිනුම් බොහෝ දුරට තනි තනිව අදහස් නොකෙරේ, නමුත් සංයෝජනයෙන් රෙඩිස් සඳහා ආධාරක සහ ලියකියවිලි විශාල හා යාවත්කාලීන බව පැහැදිලි චිත්‍රයක් චිත්‍රණය කරයි.

නොපසුබට උත්සාහය

පෙරනිමියෙන් රෙඩිස් ඔබේ දත්ත තැටියට ගෙන යන්නේ ස්නැප්ෂොටින් නම් යාන්ත්‍රණයක් භාවිතා කරමිනි. ඔබ සතුව ප්‍රමාණවත් තරම් RAM ප්‍රමාණයක් තිබේ නම්, ඔබේ දත්ත සියල්ලම තැටියට ලිවිය හැකිය. එය බොහෝ දුරට නොමිලේ!

ස්නැප්ෂොට් ප්‍රකාරයේදී හදිසි බිඳවැටීමක් හේතුවෙන් නැතිවූ දත්ත කුඩා ප්‍රමාණයක් ඇතිවීමේ අවස්ථාවක් තිබේ. කිසිදු දත්තයක් නැති වී නැති බවට ඔබට සහතික වීමට අවශ්‍ය නම්, කරදර නොවන්න, රෙඩිස් ඔබේ පිටුපස AOF (ගොනුව පමණක් එකතු කරන්න) මාදිලිය සමඟ ඇත. මෙම නොනැසී පවත්නා ප්‍රකාරයේදී දත්ත ලියා ඇති ආකාරයට තැටියට සමමුහුර්ත කළ හැකිය. මෙය ඔබේ තැටියට කොතරම් වේගයෙන් ලිවිය හැකි ද යන්න උපරිම ලිවීමේ ප්‍රතිදානය අඩු කළ හැකි නමුත් තවමත් වේගවත් විය යුතුය.

ඔබට අවශ්‍ය නම් නොනැසී පැවතීම සඳහා වින්‍යාස විකල්ප බොහොමයක් ඇත, නමුත් පෙරනිමි ඉතා සංවේදී ය. මෙම විකල්පයන් මඟින් දත්ත ගබඩා කිරීම සඳහා ආරක්ෂිත, අතිරික්ත ස්ථානයක් ලෙස රෙඩිස් සැකසීම පහසු කරයි. එය සැබෑ දත්ත සමුදායකි.

බොහෝ දත්ත වර්ග

Memcached නූල් වලට සීමා වේ, නමුත් රෙඩිස් යනු විවිධ දත්ත වර්ග වලට සේවය කළ හැකි දත්ත ව්‍යුහ සේවාදායකයකි. එම දත්ත වර්ග වලින් උපරිම ප්‍රයෝජන ගැනීමට ඔබට අවශ්‍ය විධාන ද එය සපයයි.

නූල් ( විධාන )

512MB දක්වා විශාල විය හැකි සරල පෙළ හෝ ද්විමය අගයන්. මතක තබා ගත් නූල් 1MB ට සීමා වුවද, එකම දත්ත වර්ගය රෙඩිස් සහ මතක සටහන් කළ කොටස මෙයයි.

බිට්වේස් මෙහෙයුම්, බිට්-මට්ටම් හැසිරවීම, පාවෙන ලක්ෂ්‍ය වර්ධක / අඩු කිරීමේ සහාය, පරාස විමසුම් සහ බහු යතුරු මෙහෙයුම් සඳහා විධාන ලබා දීමෙන් රෙඩිස් ඔබට මෙම දත්ත සමුදාය උත්තේජනය කිරීම සඳහා තවත් මෙවලම් ලබා දෙයි. Memcached ඒ කිසිවක් සඳහා සහය නොදක්වයි.

සියළුම ආකාරයේ භාවිත අවස්ථා සඳහා නූල් ප්‍රයෝජනවත් වේ, එම නිසා මෙම දත්ත වර්ගය සමඟ පමණක් මතක තබා ගැනීම තරමක් ප්‍රයෝජනවත් වේ.

හැෂ් ( විධාන )

හැෂ් යනු යතුරු වටිනාකම් ගබඩාවක් තුළ ඇති යතුරු අගය ගබඩාවක් වැනි ය. ඒවා නූල් ක්ෂේත්‍ර සහ නූල් අගයන් අතර සිතියම් ගත කරයි. හෑෂ් භාවිතා කරන ක්ෂේත්‍ර-> අගය සිතියම් සාමාන්‍ය නූල් භාවිතා කරන යතුරු-> අගය සිතියම් වලට වඩා තරමක් වැඩි ඉඩ කාර්යක්ෂම වේ.

හැෂ් නාම අවකාශයක් ලෙස ප්‍රයෝජනවත් වේ, නැතහොත් ඔබට බොහෝ යතුරු තාර්කිකව කාණ්ඩ කිරීමට අවශ්‍ය විට. හෑෂ් එකකින් ඔබට සියලුම සාමාජිකයන් කාර්යක්ෂමව අල්ලා ගත හැකිය, සියලුම සාමාජිකයන් එකට කල් ඉකුත්විය හැකිය, සියලුම සාමාජිකයන් එකට මකා දැමිය හැකිය.

හැෂ් භාවිතා කිරීම එක් උදාහරණයක් වන්නේ යෙදුම් අතර පරිශීලක පැතිකඩ ගබඩා කිරීමයි. යතුර ලෙස පරිශීලක හැඳුනුම්පත සමඟ ගබඩා කර ඇති රෙඩිස් හැෂ් මඟින් පරිශීලකයෙකු පිළිබඳ අවශ්‍ය තරම් දත්ත එක් යතුරක් යටතේ ගබඩා කර තබා ගැනීමට ඔබට ඉඩ සලසයි. පැතිකඩක් නූලකට අනුක්‍රමණය කිරීම වෙනුවට හැෂ් භාවිතා කිරීමේ වාසිය නම්, එක් යෙදුමක් අනෙක් අය විසින් සිදුකරන ලද වෙනස්කම් ඉක්මවා යාම ගැන කරදර නොවී පරිශීලක පැතිකඩ තුළ විවිධ ක්ෂේත්‍ර කියවීමට / ලිවීමට ඔබට හැකිය (ඔබ පරණ අනුක්‍රමික නම් එය සිදුවිය හැකිය) දත්ත).

ලැයිස්තු ( විධාන )

රෙඩිස් ලැයිස්තු ඇණවුම් කරනු ලැබේ. ලැයිස්තුවේ ඉහළ හෝ පහළින් (අකා: වමේ හෝ දකුණේ) අගයන් ඇතුළත් කිරීම, කියවීම හෝ ඉවත් කිරීම සඳහා ඒවා ප්‍රශස්ත කර ඇත.

රෙඩිස් ලැයිස්තු උත්තේජනය කිරීම සඳහා බොහෝ විධානයන් සපයයි , අයිතම තල්ලු කිරීම / පොප් කිරීම, ලැයිස්තු අතර තල්ලු කිරීම / පොප් කිරීම, ලැයිස්තු කපා දැමීම, පරාස විමසීම් සිදු කිරීම යනාදිය.

ලැයිස්තු විශාල කල් පවතින, පරමාණුක, පෝලිම් සාදයි. රැකියා පෝලිම්, ල logs ු-සටහන්, බෆර සහ වෙනත් බොහෝ භාවිත අවස්ථා සඳහා මේවා විශිෂ්ට ලෙස ක්‍රියා කරයි.

කට්ටල ( විධාන )

කට්ටල යනු අද්විතීය අගයන් එකතු නොකරන ලද එකතුවකි. කට්ටලයක් තුළ අගයක් තිබේදැයි ඉක්මනින් පරීක්ෂා කිරීමට, ඉක්මණින් අගයන් එකතු කිරීමට / ඉවත් කිරීමට සහ වෙනත් කට්ටල සමඟ අතිච්ඡාදනය මැනීමට ඔබට ඉඩ සලසයි.

ප්‍රවේශ පාලන ලැයිස්තු, අද්විතීය ආගන්තුක ලුහුබැඳීම් සහ තවත් බොහෝ දේ සඳහා මේවා විශිෂ්ටයි. බොහෝ ක්‍රමලේඛන භාෂාවන්ට සමාන දෙයක් ඇත (සාමාන්‍යයෙන් එය සෙට් ලෙස හැඳින්වේ). මෙය එසේ ය, බෙදා හැරීම පමණි.

කට්ටල කළමනාකරණය කිරීම සඳහා රෙඩිස් විධාන කිහිපයක් සපයයි . කට්ටලය එකතු කිරීම, ඉවත් කිරීම සහ පරීක්ෂා කිරීම වැනි පැහැදිලි ඒවා තිබේ. අහඹු අයිතමයක් පොප් කිරීම / කියවීම වැනි අඩු පැහැදිලි විධානයන් සහ වෙනත් කට්ටල සමඟ වෘත්තීය සමිති හා මංසන්ධි සිදු කිරීම සඳහා වන විධානයන් ද එසේමය.

වර්ග කළ කට්ටල ( විධාන )

වර්ග කළ කට්ටල ද අද්විතීය අගයන් එකතුවකි. නමට අනුව මේවා ඇණවුම් කර ඇත. ඒවා ලකුණු මගින් ඇණවුම් කරනු ලැබේ, පසුව ශබ්දකෝෂයෙන්.

මෙම දත්ත වර්ගය ලකුණු අනුව ඉක්මන් සොයා බැලීම සඳහා ප්‍රශස්තිකරණය කර ඇත. අතර ඉහළම, පහත් හෝ ඕනෑම පරාසයක අගයන් ලබා ගැනීම අතිශයින්ම වේගවත්ය.

ඔබ ඔවුන්ගේ ඉහළ ලකුණු සමඟ වර්ග කළ කට්ටලයකට පරිශීලකයින් එකතු කරන්නේ නම්, ඔබට පරිපූර්ණ නායක මණ්ඩලයක් ඇත. නව ඉහළ ලකුණු ලැබෙන විට, ඔවුන්ගේ ඉහළ ලකුණු සමඟ ඔවුන්ව නැවත කට්ටලයට එක් කරන්න, එවිට එය ඔබේ නායක මණ්ඩලයට නැවත ඇණවුම් කරනු ඇත. පරිශීලකයින් අවසන් වරට සංචාරය කළ සහ ඔබගේ යෙදුමේ ක්‍රියාකාරී වන්නේ කවුරුන්ද යන්න පිළිබඳව සොයා බැලීම සඳහාද විශිෂ්ටයි.

එකම ලකුණු සමඟ අගයන් ගබඩා කිරීම ශබ්දකෝෂ විද්‍යාත්මකව ඇණවුම් කිරීමට හේතු වේ (අකාරාදී ලෙස සිතන්න). ස්වයංක්‍රීය සම්පූර්ණ අංග වැනි දේ සඳහා මෙය ප්‍රයෝජනවත් වේ.

වර්ග කළ සෙට් විධාන බොහොමයක් කට්ටල සඳහා වන විධාන වලට සමාන වේ, සමහර විට අතිරේක ලකුණු පරාමිතියක් ඇත. ලකුණු කළමනාකරණය කිරීම සහ ලකුණු අනුව විමසීම සඳහා වන විධානයන් ද ඇතුළත් ය.

භූ

භූගෝලීය දත්ත ගබඩා කිරීම, ලබා ගැනීම සහ මැනීම සඳහා රෙඩිස්ට විධාන කිහිපයක් තිබේ . අරය විමසීම් සහ ලකුණු අතර දුර මැනීම මෙයට ඇතුළත් වේ.

රෙඩිස් හි තාක්ෂණික භූගෝලීය දත්ත වර්ගීකරණය කරන ලද කට්ටල තුළ ගබඩා කර ඇත, එබැවින් මෙය සැබවින්ම වෙනම දත්ත වර්ගයක් නොවේ. එය වර්ග කළ කට්ටල මත දිගුවකි.

බිට්මැප් සහ හයිපර්ලොග් ලොග්

භූ මෙන්, මේවා සම්පූර්ණයෙන්ම වෙනම දත්ත වර්ග නොවේ. මේවා ඔබට දත්ත දත්ත බිට්මැප් හෝ හයිපර්ලොග් ලෙස සැලකීමට ඉඩ දෙන විධාන වේ.

බිට්මැප් යනු මා යටතේ සඳහන් කළ බිට්-ලෙවල් ක්‍රියාකරුවන් Stringsසඳහා ය. මෙම දත්ත වර්ගය රෙඩ්ඩිට් හි මෑත කාලීන සහයෝගීතා කලා ව්‍යාපෘතිය සඳහා මූලික ගොඩනැඟිලි කොටස විය: r / Place .

කම්පනකාරී නිරවද්‍යතාවයකින් අසීමිත අද්විතීය අගයන් ගණනය කිරීම සඳහා නියත අතිශය කුඩා ඉඩ ප්‍රමාණයක් භාවිතා කිරීමට හයිපර්ලොග් ඔබට ඉඩ දෙයි. K 16KB පමණක් භාවිතා කිරීමෙන් ඔබේ වෙබ් අඩවියට පැමිණෙන සුවිශේෂී අමුත්තන් සංඛ්‍යාව මිලියන ගණනක් වුවද කාර්යක්ෂමව ගණනය කළ හැකිය.

ගනුදෙනු සහ පරමාණුකතාව

රෙඩිස් හි ඇති විධාන පරමාණුක වේ, එයින් අදහස් වන්නේ ඔබ රෙඩිස් වෙත අගයක් ලිවූ වහාම එම අගය රෙඩිස් හා සම්බන්ධ සියලුම සේවාදායකයින්ට දැකිය හැකි බවයි. එම වටිනාකම ප්‍රචාරය කිරීමට බලා සිටීමක් නැත. තාක්‍ෂණිකව මතක තබා ගැනීම පරමාණුක වේ, නමුත් රෙඩිස් විසින් මෙම ක්‍රියාකාරීත්වය මතක තබා ගත නොහැකි තරමට එකතු කිරීම සැලකිල්ලට ගැනීම වටී. මේ සියලු අතිරේක දත්ත වර්ග සහ විශේෂාංග ද පරමාණුක වේ.

සබැඳි දත්ත සමුදායන්හි ගනුදෙනු වලට සමාන නොවූවත්, රෙඩිස් සතුව “ශුභවාදී අගුලු දැමීම” ( WATCH / MULTI / EXEC ) භාවිතා කරන ගනුදෙනු ද ඇත .

නල මාර්ගගත කිරීම

රෙඩිස් විසින් ' නල මාර්ගකරණය ' නමින් විශේෂාංගයක් සපයයි . ඔබට ක්‍රියාත්මක කිරීමට අවශ්‍ය බොහෝ රෙඩිස් විධානයන් තිබේ නම්, ඔබට එකවර නල මාර්ගයක් වෙනුවට එකවර නැවත නැවත යැවීමට පයිප්ලයින් භාවිතා කළ හැකිය.

සාමාන්‍යයෙන් ඔබ නැවත විධානයක් හෝ මතක තබා ගැනීම සඳහා විධානයක් ක්‍රියාත්මක කරන විට, සෑම විධානයක්ම වෙනම ඉල්ලීමක් / ප්‍රතිචාර චක්‍රයක් වේ. නල මාර්ගයෙන්, රෙඩිස්ට විධාන කිහිපයක් බෆර් කර එකවරම ක්‍රියාත්මක කළ හැකි අතර, ඔබගේ සියලු විධානයන් සඳහා එකම ප්‍රතිචාරයකින් ප්‍රතිචාර දක්වනු ඇත.

තොග ආනයනය කිරීම හෝ බොහෝ විධානයන් ඇතුළත් වෙනත් ක්‍රියාවන් මත ඊටත් වඩා විශාල ප්‍රති put ල ලබා ගැනීමට මෙය ඔබට ඉඩ සලසයි.

පබ් / උප

රෙඩිස් සතුව පබ් / උප ක්‍රියාකාරිත්වය සඳහා වෙන් කර ඇති විධානයන් ඇත , රෙඩිස්ට අධිවේගී පණිවිඩ විකාශකයෙකු ලෙස ක්‍රියා කිරීමට ඉඩ සලසයි. තනි සේවාදායකයෙකුට නාලිකාවකට සම්බන්ධ වෙනත් බොහෝ සේවාදායකයින්ට පණිවිඩ පළ කිරීමට මෙය ඉඩ දෙයි.

රෙඩිස් පබ් / සබ් මෙන්ම ඕනෑම මෙවලමක් පාහේ කරයි. RabbitMQ වැනි කැපවූ පණිවුඩ තැරැව්කරුවන්ට ඇතැම් ප්‍රදේශවල වාසි තිබිය හැකි නමුත්, එකම සේවාදායකයට ඔබට අඛණ්ඩ කල් පවතින පෝලිම් සහ ඔබේ දත්ත / උප කාර්ය භාරයන් අවශ්‍ය විය හැකි වෙනත් දත්ත ව්‍යුහයන් ලබා දිය හැකි නිසා, රෙඩිස් බොහෝ විට හොඳම හා සරලම මෙවලම බව ඔප්පු කරනු ඇත. රැකියාව සඳහා.

ලුවා ස්ක්‍රිප්ටින්

රෙඩිස්ගේම SQL හෝ ගබඩා කළ ක්‍රියා පටිපාටි වැනි ලුවා ස්ක්‍රිප්ට් ගැන ඔබට යම් ආකාරයකින් සිතිය හැකිය . එය ඊට වඩා වැඩි හා අඩු ය, නමුත් ප්‍රතිසම බොහෝ දුරට ක්‍රියාත්මක වේ.

සමහර විට ඔබට නැවත ගණනය කිරීම් කිරීමට අවශ්‍ය සංකීර්ණ ගණනය කිරීම් තිබේ. සමහර විට ඔබේ ගනුදෙනු ආපසු හැරවීමට ඔබට නොහැකි විය හැකි අතර සංකීර්ණ ක්‍රියාවලියක සෑම පියවරක්ම පරමාණුකව සිදුවන බවට සහතිකයක් අවශ්‍ය වේ. මෙම ගැටළු සහ තවත් බොහෝ දේ ලුවා ස්ක්‍රිප්ටින් මගින් විසඳා ගත හැකිය.

සම්පූර්ණ ස්ක්‍රිප්ට් එක පරමාණුකව ක්‍රියාත්මක වේ, එබැවින් ඔබට ඔබේ තර්කනය ලුවා ස්ක්‍රිප්ටයකට ගැලපීමට හැකි නම්, ඔබට බොහෝ විට ශුභවාදී අගුලු දැමීමේ ගනුදෙනු අවුල් කිරීමෙන් වළක්වා ගත හැකිය.

පරිමාණය

ඉහත සඳහන් කළ පරිදි, රෙඩිස් පොකුරුකරණය සඳහා ආධාරක ලෙස ගොඩනගා ඇති අතර එය එහි ඉහළ උපයෝගීතා මෙවලමක් ලෙස හැඳින්වේ redis-sentinel.

නිගමනය

පැකිලීමකින් තොරව මම නිර්දේශ කරන්නේ කිසියම් නව ව්‍යාපෘතියක් සඳහා හෝ දැනටමත් මතක තබා නොගත් දැනට පවතින ව්‍යාපෘති සඳහා මතක තබා ගැනීම පිළිබඳව නැවත නිර්දේශ කිරීමයි.

ඉහත සඳහන් දේ මා මතක තබා ගැනීමට අකමැති බවක් පෙනෙන්නට තිබේ. ඊට පටහැනිව: එය බලවත්, සරල, ස්ථාවර, පරිණත හා දැඩි වූ මෙවලමකි. රෙඩිස් වලට වඩා ටිකක් වේගවත් වන සමහර භාවිත අවස්ථා පවා තිබේ. මම මතක තබා ගැනීමට කැමතියි. අනාගත සංවර්ධනය සඳහා එය එතරම් අර්ථවත් යැයි මම නොසිතමි.

රෙඩිස් විසින් මතක තබා ගන්නා සෑම දෙයක්ම කරයි, බොහෝ විට වඩා හොඳය. මතක තබා ගැනීම සඳහා වන ඕනෑම කාර්ය සාධන වාසිය සුළු හා කාර්ය භාරය විශේෂිත වේ. රෙඩිස් වේගවත් වන වැඩ බරද ඇත, සහ රෙඩිස්ට කළ හැකි තවත් බොහෝ වැඩ බරක් මතක තබා ගත නොහැක. ක්‍රියාකාරීත්වයේ යෝධ ගල්ෆ් හමුවේ කුඩා කාර්ය සාධන වෙනස්කම් සුළු ලෙස පෙනේ. මෙවලම් දෙකම ඉතා වේගවත් හා කාර්යක්ෂම බැවින් ඒවා ඔබේ යටිතල ව්‍යුහයේ අවසාන කොටස විය හැකිය.

මතක තබා ගැනීම වඩාත් අර්ථවත් කරන එක් අවස්ථාවක් පමණක් ඇත: මතක තබා ගැනීම දැනටමත් හැඹිලියක් ලෙස භාවිතා වේ. ඔබ දැනටමත් මතක සටහන් සමඟ හැඹිලිගත කරන්නේ නම් එය ඔබගේ අවශ්‍යතා සපුරාලන්නේ නම් එය දිගටම භාවිතා කරන්න. රෙඩිස් වෙත යාමේ උත්සාහය වටින්නේ නැති අතර ඔබ හැඹිලිය සඳහා රෙඩිස් භාවිතා කිරීමට යන්නේ නම් එය ඔබේ කාලය වටිනාකමින් ප්‍රමාණවත් ප්‍රතිලාභයක් ලබා නොදේ. මතක තබා ගැනීම ඔබගේ අවශ්‍යතා සපුරාලන්නේ නැත්නම්, ඔබ බොහෝ විට නැවත සකස් කළ යුතුය. ඔබට මතකයෙන් ඔබ්බට පරිමාණය කිරීමට අවශ්‍යද නැතහොත් ඔබට අමතර ක්‍රියාකාරීත්වයක් අවශ්‍යද යන්න මෙය සත්‍යයකි.


11
සේවාදායකයේ පවතින ආකාරයට Memcached පිරිනැමීමේ පොකුරුකරණය කරන්නේ කෙසේද? හැෂිං ඇල්ගොරිතම හෝ මාපාංකයක් භාවිතා කර මතක තබා ගත් සේවාදායක සංචිතයකට බෙදා හරින පුස්තකාල මම නිතරම භාවිතා කර ඇත්තෙමි. රෙඩිස් සඳහාද එයම කියනු ලැබේ. මම වැඩිපුරම පයිතන් භාවිතා කරන අතර සම්බන්ධතා තටාක හැසිරවීම සඳහා මතක තබා ගත් පුස්තකාලය මත රඳා නොපවතින මොඩියුල කිහිපයක් ඇති බව පෙනේ.
වෝර්ඩියර්

2
"ශුභවාදී අගුලු දැමීමේ ගනුදෙනු (WATCH / MULTI / EXEC)" - රෙඩිස්ට නිවැරදි ගනුදෙනු නොමැත. එනම් [බහු, cmd1, cmd2, cmd3 (ව්‍යතිරේකය), exec] නම් cmd1 සහ cmd2 ක්‍රියාත්මක වේ.
ZedZip

10
Le ඔලෙග් එය ඇත්ත වශයෙන්ම සත්‍ය නොවේ. ඔබ බහු-ක්‍රියාකාරීත්වය භාවිතා කරන්නේ නම්, ක්‍රියාත්මක වන තෙක් විධාන බෆර් කරනු ලැබේ (එනම්: ක්‍රියාත්මක නොකෙරේ), එබැවින් ඔබට ක්‍රියාත්මක වීමට පෙර ව්‍යතිරේකයක් තිබේ නම් කිසිදු විධානයක් සත්‍ය වශයෙන්ම ක්‍රියාත්මක නොවේ. Exec ලෙස හැඳින්වුවහොත්, සියලු බෆර් කරන ලද විධානයන් පරමාණුකව ක්‍රියාත්මක වේ. මෙම අවසාන යාන්ත්‍රණය සුභවාදී අගුලු දැමීමේ කොටසයි.
කාල් සුලූෆ්

3
har වාර්ඩියර් ඔබ හරි. මතක තබා ගත් පොකුරු “සහාය” අතිරේක මෙවලම් මඟින් සක්‍රීය කර ඇති බව පිළිබිඹු කිරීම සඳහා පිළිතුර යාවත්කාලීන කරන ලදි. ඊට වඩා හොඳින් පර්යේෂණ කළ යුතුව තිබුණි.
කාල් සුලූෆ්

3
කච්බේස් සේවාදායකය සමඟ පොකුරු කිරීම ගැන කුමක් කිව හැකිද? (memcached compatible)
කෙන් ලියු

142

නම් Redis භාවිතා කරන්න

  1. හැඹිලියේ ඇති අයිතම තෝරා බේරා ගැනීම / කල් ඉකුත්වීම ඔබට අවශ්‍ය වේ. (ඔබට මෙය අවශ්‍යයි)

  2. විශේෂිත වර්ගයක යතුරු විමසීමේ හැකියාව ඔබට අවශ්‍ය වේ. eq. 'blog1: posts: *', 'blog2: category: xyz: posts: *'. ඔව්, ඇත්ත! මෙය ඉතා වැදගත් ය. ඇතැම් හැඹිලි අයිතම තෝරා බේරා අවලංගු කිරීමට මෙය භාවිතා කරන්න. කොටස් හැඹිලිය, පිටු හැඹිලිය, දී ඇති වර්ගයක AR වස්තු පමණක් අවලංගු කිරීමට ඔබට මෙය භාවිතා කළ හැකිය.

  3. නොනැසී පැවතීම (සෑම නැවත ආරම්භ කිරීමෙන් පසු ඔබේ හැඹිලිය උණුසුම් වීමට සිදු නොවන්නේ නම් ඔබටත් මෙය අවශ්‍ය වනු ඇත. කලාතුරකින් වෙනස් වන වස්තූන් සඳහා ඉතා අත්‍යවශ්‍ය වේ)

නම් memcached භාවිතා කරන්න

  1. Memcached ඔබට හිසරදයක් ලබා දෙයි!
  2. ම්ම් ... පොකුරු කිරීම? මෙහ්. ඔබ එතරම් දුරක් යන්නේ නම්, කෑෂ් සහ AR වස්තු හැඹිලි සඳහා වාර්නිෂ් සහ රෙඩිස් භාවිතා කරන්න.

මගේ අත්දැකීම් වලින් මට රෙඩිස් සමඟ මෙම්චේච්ට වඩා හොඳ ස්ථාවරත්වයක් ඇත


7
රෙඩිස් ප්‍රලේඛනය පවසන්නේ රටා භාවිතා කිරීම සඳහා මේස පරිලෝකනයක් අවශ්‍ය බවයි. blog1: posts: * ට O (N) වගු පරිලෝකනයක් අවශ්‍ය විය හැකිය. ඇත්ත වශයෙන්ම, රෙඩිස් වේගවත් බැවින් සාධාරණ ප්‍රමාණයේ දත්ත කට්ටල මත එය තවමත් වේගවත් ය. පරීක්ෂා කිරීම හෝ පරිපාලක සඳහා එය හරි විය යුතුය.
wisty

185
හිසරදය විහිළුවක් නේද? :-) මම හිසේ කැක්කුම ගැන කතා කළ නමුත් සාධාරණ දෙයක් සොයා ගැනීමට නොහැකි විය. (මම Memcached සහ Redis වලට අලුත්)
KajMagnus

12
පෙලුසයිඩ් වලට වඩා එකම හේතුව නිසා ඡන්දය ප්‍රකාශ කළේය . රෙඩිස් මෙම්චේච් වලට වඩා හොඳ විය හැකි නමුත් මෙම්කාචේඩ් භාවිතා කිරීම ඉතා සුළුය. මට එය කිසි විටෙකත් ගැටළුවක් නොවූ අතර එය වින්‍යාස කිරීම ඉතා සුළුය.
ඩියාගෝ ජැන්සික්

5
මගේ දවස සෑදීම ගැන @ කජ් මැග්නස්ට ස්තූතියි .. සමහරවිට මගේ මුළු සතියම 😂
ඇලෙක්ස්

IeDiegoJancic Redis යනු භාවිතා කිරීමට පහසුම තාක්‍ෂණයකි. පූර්ව රෙඩිස් දැනුමක් නොමැතිව වලාකුළෙහි පැකේජ කළමණාකරුවෙකු භාවිතා කර උබුන්ටු මත ස්ථාපනය කිරීමට සහ සරල විමසුම් ආරම්භ කිරීමට මට විනාඩි 20 ක් ගතවිය. පැය 4 කට පසුව මට ලුආ ස්ක්‍රිප්ට් භාවිතයෙන් කණ්ඩායම් ඇතුළත් කිරීම් හා කාර්ය සාධනය වැඩි දියුණු කිරීම සඳහා නිවැරදි (එන්අයිඕ) ජාවා පුස්තකාලය තෝරා ගැනීමට හැකි විය. රෙඩිස්ට වඩා මිත්‍රශීලී හා සරල දෙයක් මට සිතාගත නොහැකිය.
මූස්

107

Memcached බහු තෙරපුම් සහ වේගවත් ය.

රෙඩිස්ට විශේෂාංග රාශියක් ඇති අතර එය ඉතා වේගවත් නමුත් සිදුවීම් ලූපයක් මත පදනම් වී ඇති බැවින් එය එක් හරයකට සම්පූර්ණයෙන්ම සීමා වේ.

අපි දෙකම භාවිතා කරමු. මතක තබා ගැනීම වස්තු හැඹිලි සඳහා භාවිතා කරයි, මූලික වශයෙන් දත්ත සමුදායන්හි කියවීමේ භාරය අඩු කරයි. කාල ශ්‍රේණියේ දත්ත පෙරළීම සඳහා පහසු වන වර්ග කළ කට්ටල වැනි දේ සඳහා රෙඩිස් භාවිතා කරයි.


2
අධික ලෙස ගමනාගමන අඩවි මතක තබා ගැනීම සඳහා ආයෝජනය කර ඇති අතර "පරිශීලක පැතිකඩ" මත ඩීබී බාධක ඇති අතර සම්බන්ධ නොවන දත්ත වලට සමාන කූපේබස් සුපුරුදු මොන්ගෝ, රෙඩිස් සමඟ සමාන්තරව තක්සේරු කළ යුතුය

2
il සිලිකොන්රොක්ස්ටාර් - රෙඩිස් 3 තවමත් තනි හරයක් බව විශ්වාසයි; අවම වශයෙන් AWS Redis (3.2.6 හෝ 3.2.10 යොදා ගන්නා) උදා: දෙස බලන විට එම සැලකිල්ලට ගැනීමට අනතුරු අඟවයි EngineCpuUtilization ප්රමිතික
dwanderson

1
ඔබ නිවැරදි බව පෙනේ, මම එම ප්‍රකාශය කරන විට එය අසම්පූර්ණ ප්‍රභවයන් මත පදනම් වූවක් යැයි සිතමි. මකා දැමූ අදහස්.
සිලිකොන්රොක්ස්ටාර්

නමුත් ඔබට තවමත් රෙඩිස්
ඉමාස්කාර්

2
රෙඩිස් අතිශයින්ම කාර්යක්ෂමතාව කෙරෙහි අවධානය යොමු කර ඇත - එබැවින් ස්මාර්ට් සංවර්ධකයින් කණ්ඩායමක් එය තනි නූල් තබා ගැනීමට තෝරාගත්තේ මන්දැයි ඔබ ඔබගෙන්ම අසාගත යුතුය. රෙඩිස් ලියකියවිලි වලින් "සාමාන්‍යයෙන් රෙඩිස් මතකය හෝ ජාලයට බැඳී ඇති බැවින් CPU ඔබේ රෙඩිස් සමඟ බාධකයක් බවට පත්වීම බොහෝ විට සිදු නොවේ". ඔබ CPU බැඳී ඇති අශෝභන සේවාදායකයක් භාවිතා කරන්නේ නම්, ඔබට බොහෝ පරිශීලකයින් සිටින අතර කෙසේ හෝ බහු අතිරික්ත සේවාදායක තිබිය යුතුය. ඔබට එක් සේවාදායකයක බහු CPU උපරිම කිරීමට අවශ්‍ය නම්, කොටස් කිරීම භාවිතා කරන්න. කියවන්න: redis.io/topics/…
robocat

91

මෙය දැනටමත් පිළිගත් පිළිතුරකට අදහස් දැක්වීමක් ලෙස පළ කිරීමට තරම් දිගු බැවින් මම එය වෙනම පිළිතුරක් ලෙස තැබුවෙමි

සලකා බැලිය යුතු එක් කරුණක් නම්, ඔබේ හැඹිලි අවස්ථාවට ඉහළ මතක සීමාවක් ලබා ගැනීමට ඔබ අපේක්ෂා කරන්නේද යන්නයි.

රෙඩිස් යනු ටොන් ගණනක් සහිත නොස්ක්ල් දත්ත සමුදායක් වන අතර එය හැඹිලි භාවිතා කිරීම සඳහා භාවිතා කළ හැකි එක් විකල්පයක් පමණක් වන බැවින්, එය අවශ්‍ය පරිදි මතකය වෙන් කරයි - ඔබ එය තුළට දැමූ වස්තූන් වැඩි වන තරමට එය මතකය භාවිතා කරයි. මෙම maxmemoryවිකල්පය දැඩි ඉහළ මතකය භාවිතය ප්රතිෙකෂ්ප කරන්නේ නැහැ. ඔබ හැඹිලිය සමඟ වැඩ කරන විට, යතුරු ඉවත් කර කල් ඉකුත් වේ; ඔබගේ යතුරු සියල්ලම එකම ප්‍රමාණයෙන් නොපවතින බැවින් අභ්‍යන්තර මතක ඛණ්ඩනය සිදු වේ.

පෙරනිමියෙන් රෙඩිස් විසින් ජෙමලොක් මතක විබෙදන්නෙකු භාවිතා කරයි , එය මතක-සංයුක්ත හා වේගවත් වීමට උපරිම උත්සාහයක් දරයි, නමුත් එය පොදු අරමුණු මතක විබෙදන්නෙකු වන අතර එයට විශාල ප්‍රතිපාදන හා වස්තු පිරිසිදු කිරීම ඉහළ අනුපාතයකින් පවත්වා ගත නොහැක. මේ නිසා, සමහර පැටවුම් රටා මත රෙඩිස් ක්‍රියාවලිය අභ්‍යන්තර ඛණ්ඩනය හේතුවෙන් මතකය කාන්දු විය හැක. නිදසුනක් ලෙස, ඔබට 7 Gb RAM සහිත සේවාදායකයක් තිබේ නම් සහ නොනවතින LRU හැඹිලියක් ලෙස රෙඩිස් භාවිතා කිරීමට ඔබට අවශ්‍ය නම්, maxmemoryකාලයත් සමඟ 5Gb ලෙස සකසා ඇති රෙඩිස් ක්‍රියාවලිය වැඩි වැඩියෙන් මතකය භාවිතා කරන බව ඔබට පෙනී යනු ඇත. මතකයෙන් පිටත ler ාතකයා මැදිහත් වේ.

memcached යනු ඉහත විස්තර කර ඇති තත්වයට වඩා හොඳ සුදුසුකමක් වන අතර එය එහි මතකය සම්පූර්ණයෙන්ම වෙනස් ආකාරයකින් කළමනාකරණය කරයි. memcached විසින් මතකයේ විශාල කොටසක් වෙන් කරයි - එයට අවශ්‍ය සෑම දෙයක්ම - ඉන්පසු මෙම මතකය තනිවම කළමනාකරණය කරයි, එය ක්‍රියාත්මක කරන ලද ස්ලැබ් විබෙදුම භාවිතා කරයි . එපමණක් නොව, මතක විකාශනය අභ්‍යන්තර ඛණ්ඩනය අඩු මට්ටමක තබා ගැනීමට දැඩි උත්සාහයක් දරයි, ඇත්ත වශයෙන්ම එය එක් ස්ලැබ් එකකට LRU ඇල්ගොරිතම භාවිතා කරයි , LRU ඉවත් කිරීම වස්තු ප්‍රමාණයෙන් සලකා බලන විට.

ඒ සමඟම, මතක භාවිතය බලහත්කාරයෙන් කළ යුතු සහ / හෝ පුරෝකථනය කළ හැකි පරිසරයන් තුළ මතක සටහන් තවමත් ශක්තිමත් ස්ථානයක් ඇත. නවතම ස්ථායී රෙඩිස් (2.8.19) 10-15k op / s වැඩ බරින් අඛණ්ඩව LRU මත පදනම් වූ මතක සටහන් ආදේශකයක් ලෙස භාවිතා කිරීමට අපි උත්සාහ කර ඇති අතර එය මතකය කාන්දු විය; එකම කාර්ය භාරය නිසා ඇමසන් සමාගමේ ElastiCache redis අවස්ථා දිනක් හෝ ඊට වැඩි කාලයකදී බිඳ වැටුණි.


2
Redis.io/topics/faq වෙතින් : රෙඩිස් විසින් ගොඩනංවන ලද ආරක්ෂණ මඟින් පරිශීලකයාට මතක භාවිතයට උපරිම සීමාවක් නියම කිරීමට ඉඩ සලසයි, වින්‍යාස ගොනුවේ ඇති උපරිම විකල්පය භාවිතා කරමින් රෙඩිස්ට භාවිතා කළ හැකි මතකයට සීමාවක් තැබිය හැකිය. මෙම සීමාව ළඟා වුවහොත් රෙඩිස් විධාන ලිවීමේ දෝෂයකින් පිළිතුරු දීමට පටන් ගනී (නමුත් කියවීමට පමණක් ඇති විධානයන් දිගටම පිළිගනු ඇත), නැතහොත් ඔබ රෙඩිස් භාවිතා කරන අවස්ථාවෙහිදී උපරිම මතක සීමාව ළඟා වූ විට යතුරු ඉවත් කිරීම සඳහා එය වින්‍යාසගත කළ හැකිය. හැඹිලි සඳහා. ඔබ රෙඩිස් LRU හැඹිලියක් ලෙස භාවිතා කිරීමට අදහස් කරන්නේ නම් අපට ලියකියවිලි තිබේ. link
StefanNch

8
St ස්ටෙෆාන්ච් රෙඩිස්ගේ maxmemoryවිකල්පය අභ්‍යන්තර මතක ඛණ්ඩනය සඳහා හේතු නොවේ. කරුණාකර විස්තර සඳහා ඉහත මගේ අදහස බලන්න - මා විසින් විස්තර කර ඇති ගැටළු "රෙඩිස් එල්ආර්ආර් හැඹිලියක්" පිටුවෙහි විස්තර කර ඇති මතකය සීමා කිරීමේ විකල්පයන් සක්‍රීය කර ඇත. memcached, අනෙක් පැත්තෙන්, මතක ඛණ්ඩනය වීමේ ගැටළුව මඟහරවා ගැනීම සඳහා විවිධ ප්‍රවේශයන් භාවිතා කරයි, එබැවින් එහි මතක සීමාව වඩාත් “දැඩි” වේ.
artyom

46

මතක තබා ගැනීම සරල යතුරු / වටිනාකම් ගබඩාවක් වීම හොඳ වන අතර යතුර => STRING කිරීම හොඳය. මෙය සැසි ගබඩා කිරීම සඳහා ඇත්තෙන්ම හොඳ කරයි.

යතුර => SOME_OBJECT කිරීම රෙඩිස් හොඳයි.

එය සැබවින්ම රඳා පවතින්නේ ඔබ එහි දැමීමට යන්නේ කුමක්ද යන්න මතය. මගේ අවබෝධය නම් කාර්ය සාධනය අනුව ඒවා ලස්සනයි.

කිසියම් වෛෂයික මිණුම් සලකුණු සොයා ගැනීම වාසනාවකි, ඔබ යම්කිසි කාරණයක් සොයා ගන්නේ නම් ඒවා මගේ මාර්ගයට යවන්න.


2
IMO රෙඩිස් හැෂ් දත්ත වර්ගය සැසි විචල්‍යයන් මතක තබා ගත් නූලකට අනුක්‍රමණය කිරීමට වඩා වැඩි අර්ථයක් ලබා දෙයි.
කාල් සුලූෆ්

6
ඔබ පරිශීලක අත්දැකීම් ගැන සැලකිලිමත් වන්නේ නම්, ඔබේ සැසි හැඹිලිගත නොකරන්න. dormando.livejournal.com/495593.html
sleblanc

4
blesebleblanc තැටි නොනැසී පවතින බැවින් මෙය න්‍යායාත්මකව රෙඩිස් සමඟ ගැටළුවක් නොවිය යුතුය.
haknick

2
ඔබ එය දුර්වල ලෙස ක්‍රියාත්මක කළත් නැතත් සැසි ගබඩා කිරීමේදී @sebleblanc memcache තවමත් හොඳයි. ඔව් නෙරපා හැරීම ගැටළුවක් වන නමුත් එය කෙසේ හෝ ජයගත නොහැකි ය, ඔබ ඉවත් කිරීම ගැන කරදර නොවන්නේ නම් එය මතක සටහන් ගැටළුව නොවේ. බොහෝ මතක සටහන් සැසි විසඳුම් කුකීස් උපස්ථයක් ලෙස භාවිතා කරන බව මම විශ්වාස කරමි.
එරික් පීටර්සන්

11
"ඔබේ සැසි හැඹිලියට දමන්න එපා" නොමඟ යවන සුළුය. ඔබ අදහස් කරන්නේ "ඔබේ සැසි හැඹිලියේ පමණක් ගබඩා නොකරන්න" යන්නයි. වැදගත් දත්ත මතක සටහන් තුළ පමණක් ගබඩා කරන ඕනෑම කෙනෙකුට වහාම වෙඩි තැබිය යුතුය.
ජාකොබ්

37

ඔබට ලිවීමේ ශෛලියක් ගැන ප්‍රශ්නයක් නැත්නම්, සිස්ටොයිලට් බ්ලොග් අඩවියේ රෙඩිස් එදිරිව මතක තබා ගැනීම උපයෝගීතා දෘෂ්ටි කෝණයකින් කියවීම වටී, නමුත් කාර්ය සාධනය පිළිබඳ නිගමනවලට එළඹීමට පෙර අදහස් දැක්වීමේදී පිටුපසට හා ඉදිරියට කියවීමට වග බලා ගන්න; ක්‍රමෝපායික ගැටළු කිහිපයක් ඇත (තනි-නූල් කාර්යබහුල-ලූප් පරීක්ෂණ), සහ ලිපිය ලියා ඇති දා සිට රෙඩිස් විසින් යම් යම් දියුණු කිරීම් සිදු කර ඇත.

දේවල් ටිකක් ව්‍යාකූල නොකර කිසිදු මිණුම් ලකුණක් සම්පුර්ණ නොවේ, එසේම ඩොර්මොන්ඩෝගේ ලයිව් ජර්නල් සහ ඇන්ටිරෙස් වෙබ්ලොග් හි ගැටුම්කාරී මිණුම් සලකුණු කිහිපයක් බලන්න .

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


9
මෙම memcached එදිරිව Redis අසනීප මිණුම් ලකුණක් පිළිසිඳ ඇත. oldblog.antirez.com/post/redis-memcached-benchmark.html
යෙදුම් වැඩ

28
ඔබ පිස්සු ගැන විහිළු කළේ නැත.
ocodo

1
එහි 2010 ට වඩා යල්පැනගිය බ්ලොග් අඩවිය
සිද්ධාර්ත්

24

මා වැඩ කර ඇති හැඹිලි ප්‍රොක්සිය තුළ මතක සටහන් සහ රෙඩිස් යන දෙකම එකට භාවිතා කිරීමට මට අවස්ථාව ලැබුණි, මම හරියටම භාවිතා කර ඇති දේ සහ හේතුව පිටුපස භාවිතා කර ඇති ස්ථානය ඔබට බෙදා දෙන්නම් ....

රෙඩිස්>

1) හැඹිලි අන්තර්ගතය පොකුරු හරහා සුචිගත කිරීම සඳහා භාවිතා කරයි. රෙඩිස් පොකුරු පුරා මට යතුරු බිලියනයකට වඩා තිබේ, නැවත ප්‍රතිචාර දැක්වීමේ වේලාවන් තරමක් අඩු හා ස්ථාවර වේ.

2) මූලික වශයෙන්, එය යතුරු / වටිනාකම් ගබඩාවක් වන අතර, එබැවින් ඔබේ යෙදුමේ ඔබට සමාන දෙයක් තිබේ නම්, යමෙකුට බොහෝ දේ කරදර කරමින් රෙඩිස් භාවිතා කළ හැකිය.

3) රෙඩිස් නොනැසී පැවතීම, අසාර්ථක වීම සහ උපස්ථය (AOF) ඔබේ කාර්යය පහසු කරනු ඇත.

මතක සටහන්>

1) ඔව්, හැඹිලියක් ලෙස භාවිතා කළ හැකි ප්‍රශස්ත මතකයක්. 1 MB ට වඩා අඩු ප්‍රමාණයකින් නිතර නිතර (පහර 50 ක් / තත්පරයක් සහිතව) හැඹිලි අන්තර්ගතය ගබඩා කිරීම සඳහා මම එය භාවිතා කළෙමි.

2) මගේ තනි අන්තර්ගත ප්‍රමාණය> 1MB වන විටද එය මතක තබා ගැනීම සඳහා මම ගිගාබයිට් 16 න් 2GB පමණක් වෙන් කර ඇත්තෙමි.

3) අන්තර්ගතය සීමාවන් ආසන්නයේ වර්ධනය වන විට, ඉඳහිට මම සංඛ්‍යාලේඛනවල ඉහළ ප්‍රතිචාර දැක්වීමේ වේලාවන් නිරීක්ෂණය කර ඇත්තෙමි (රෙඩිස් සම්බන්ධයෙන් නොවේ).

ඔබ සමස්ත අත්දැකීම් ඉල්ලුවොත් රෙඩිස් හරිත පැහැයෙන් යුක්ත වන අතර එය වින්‍යාස කිරීමට පහසුය, ස්ථාවර ශක්තිමත් ලක්ෂණ සමඟ නම්‍යශීලී වේ.

තවද, මෙම සබැඳියෙන් මිණුම් සලකුණු කිරීමේ ප්‍රති result ලයක් ඇත, පහත දැක්වෙන්නේ එහි සිට හයිලයිට් කිහිපයක් පමණි,

රූප විස්තරය මෙහි ඇතුළත් කරන්න

රූප විස්තරය මෙහි ඇතුළත් කරන්න

මෙය උපකාරී වේ යැයි සිතමි !!


14

පරීක්ෂණය. සරල මිණුම් සලකුණු කිහිපයක් ධාවනය කරන්න. දිගු කලක් තිස්සේ මා පැරණි පාසැල් රයිනෝවක් ලෙස සැලකූ බැවින් මම වැඩිපුරම මතක තබා ගත් අතර රෙඩිස් නව ළමයා ලෙස සලකමි.

මගේ වර්තමාන සමාගම සමඟ රෙඩිස් ප්‍රධාන හැඹිලිය ලෙස භාවිතා කරන ලදී. මම සමහර කාර්ය සාධන සංඛ්‍යාලේඛන හාරා හුදෙක් පරීක්‍ෂණය ආරම්භ කළ විට, රෙඩිස්, කාර්ය සාධනය අනුව, MySQL වලට වඩා සැසඳිය හැකි හෝ අවම මන්දගාමී විය.

මතක තබා ගත්, සරල වුවත්, රෙඩිස් මුළුමනින්ම ජලයෙන් ඉවතට විසිවිය . එය වඩා හොඳ පරිමාණයකින්:

  • විශාල අගයන් සඳහා (ස්ලැබ් ප්‍රමාණයෙහි වෙනසක් අවශ්‍ය නමුත් වැඩ කර ඇත)
  • සමගාමී ඉල්ලීම් සඳහා

එසේම, මතක තබා ගත් ඉවත් කිරීමේ ප්‍රතිපත්තිය මගේ අදහස අනුව, වඩා හොඳින් ක්‍රියාත්මක කර ඇති අතර, එහි ප්‍රති ing ලයක් ලෙස සමස්තයක් ලෙස ස්ථාවර සාමාන්‍ය ප්‍රතිචාර කාලයක් ලැබෙනු ඇති අතර හැඹිලිය හැසිරවිය හැකි ප්‍රමාණයට වඩා දත්ත හැසිරවිය හැකිය.

සමහර මිණුම් සලකුණු වලින් හෙළි වූයේ රෙඩිස් අපගේ නඩුවේ ඉතා දුර්වල ලෙස ක්‍රියා කරන බවයි. මෙය බොහෝ විචල්‍යයන් සමඟ කළ යුතු යැයි මම විශ්වාස කරමි:

  • ඔබ රෙඩිස් ක්‍රියාත්මක කරන දෘඩාංග වර්ගය
  • ඔබ ගබඩා කරන දත්ත වර්ග
  • ලැබීම් සහ කට්ටල ප්‍රමාණය
  • ඔබගේ යෙදුම කෙතරම් සමගාමීද?
  • ඔබට දත්ත ව්‍යුහ ගබඩා කිරීම අවශ්‍යද?

පුද්ගලිකව, රෙඩිස් කතුවරුන් සමගාමී හා බහු කියවීම් පිළිබඳ මතය බෙදා නොගනිමි.


කරුණාකර "MySQL වලට වඩා අවම මන්දගාමී" යන්න පැහැදිලි කරන්න.
අනිරුදා ගුප්තා

සත්‍යය කිවහොත් මා සතුව මෙම මිණුම් දණ්ඩ දත්ත නොමැති නමුත් එම විශේෂිත අවස්ථාව කියවීමට / ලිවීමට බොහෝ දේ
තිබුණි

13

තවත් ප්‍රසාද දීමනාවක් නම්, හැඹිලි වාතාවරණයක දී මෙම්කාචේ හැසිරෙන්නේ කෙසේද යන්න ඉතා පැහැදිලි විය හැකි අතර, රෙඩිස් සාමාන්‍යයෙන් අඛණ්ඩ දත්ත ගබඩාවක් ලෙස භාවිතා කරයි, නමුත් එය අවම වශයෙන් මෑතදී භාවිතා කළ අයිතමයන් උපරිමයට ළඟා වන විට ඉවත් කිරීම මෙන් මතක තබා ගත හැකි ආකාරයට හැසිරවීමට වින්‍යාසගත කළ හැකිය. ධාරිතාව.

මම ක්‍රියා කළ සමහර යෙදුම් දෙකම දත්ත හැසිරවීමට අදහස් කරන්නේ කෙසේද යන්න පැහැදිලි කිරීම සඳහා භාවිතා කරයි - මතක සටහන් වල ඇති දේවල්, එය නොමැති අවස්ථාවන් හසුරුවා ගැනීම සඳහා අපි කේත ලියන්නෙමු - රෙඩිස් හි ඇති දේවල්, අපි එය එහි රැඳී සිටිමු .

ඒ හැරුණු විට රෙඩිස් සාමාන්‍යයෙන් බොහෝ විශේෂාංග වලින් පොහොසත් වන අතර එමඟින් නම්‍යශීලී වේ.


10

රෙඩිස් යනු (හැඹිලි + දත්ත ව්‍යුහය) සංයෝජනයක් යැයි අප කියන්නේ නම් එය වැරදිය.


1
මෙය හොඳ පිළිතුරකි - ලාරවෙල් රෙඩිස් හැඹිලිය සහ දත්ත ගබඩා කිරීමේ යාන්ත්‍රණය ලෙස භාවිතා කරයි
මිරෝස්ලාව් ට්‍රිනික්

8

Redis-2.2.2 ට එරෙහිව 100k අද්විතීය යතුරු සහ අගයන් සැකසීමට සහ ලබා ගැනීමට ඉතා සරල පරීක්ෂණයකි. දෙකම ලිනක්ස් වීඑම් (සෙන්ටොස්) මත ධාවනය වන අතර මගේ සේවාදායක කේතය (පහත අලවා ඇත) වින්ඩෝස් ඩෙස්ක්ටොප් එකේ ධාවනය වේ.

රෙඩිස්

  • 100000 අගයන් ගබඩා කිරීමට ගතවන කාලය = 18954ms

  • 100000 අගයන් පැටවීමට ගතවන කාලය = 18328ms

මතක තබා ඇත

  • 100000 අගයන් ගබඩා කිරීමට ගතවන කාලය = 797ms

  • 100000 අගයන් ලබා ගැනීමට ගතවන කාලය = 38984ms


Jedis jed = new Jedis("localhost", 6379);
int count = 100000;
long startTime = System.currentTimeMillis();
for (int i=0; i<count; i++) {
  jed.set("u112-"+i, "v51"+i);
}
long endTime = System.currentTimeMillis();
System.out.println("Time taken to store "+ count + " values is ="+(endTime-startTime)+"ms");

startTime = System.currentTimeMillis();
for (int i=0; i<count; i++) {
  client.get("u112-"+i);
}
endTime = System.currentTimeMillis();
System.out.println("Time taken to retrieve "+ count + " values is ="+(endTime-startTime)+"ms");

6
ඔබ පැහැදිලිවම මිනුම් සඳහා ජාවා භාවිතා කර ඇති බැවින් .... ඔබ ඔබේ පරීක්ෂණ අවස්ථා "උණුසුම්" කළාද? මෙතරම් කෙටි කාලයක් මැනීම සඳහා මෙය අත්‍යවශ්‍ය වේ ... JIT විසින් උණුසුම් ස්ථාන සම්පාදනය කරන ලදී.
cljk

7

මෙහි පෙන්වා දී නොමැති එක් ප්‍රධාන වෙනසක් වන්නේ මෙම්කාචේ සෑම විටම ඉහළ මතක සීමාවක් ඇති අතර රෙඩිස් පෙරනිමියෙන් නොපවතින නමුත් (වින්‍යාසගත කළ හැකිය). ඔබ සෑම විටම යම් කාලයක් සඳහා යතුරක් / අගයක් ගබඩා කිරීමට කැමති නම් (සහ අඩු මතකය නිසා එය කිසි විටෙකත් ඉවත් නොකරන්න) ඔබට රෙඩිස් සමඟ යාමට අවශ්‍යය. ඇත්ත වශයෙන්ම, ඔබ මතකයෙන් ඉවතට යාමේ අවදානම ද අවදානමට ලක් කරයි ...


6

ඉතිරිව ඇති ලොකුම හේතුව විශේෂීකරණයයි.

රෙඩිස්ට විවිධ දේ කළ හැකි අතර එහි එක් අතුරු effect ලයක් වන්නේ සංවර්ධකයින් එකම අවස්ථාවකදී විවිධ අංග කට්ටල භාවිතා කිරීමට පටන් ගැනීමයි. ඔබ රෙඩිස් හි LRU විශේෂාංගය භාවිතා කරන්නේ නම්, LRU නොවන දෘඩ දත්ත ගබඩා කිරීම සඳහා හැඹිලියක් සඳහා එය සම්පූර්ණයෙන්ම මතකය නැති වී යා හැකිය.

එම විශේෂිත තත්ත්වය මඟහරවා ගැනීම සඳහා ඔබ LRU නිදසුනක් ලෙස පමණක් භාවිතා කිරීමට කැපවූ රෙඩිස් නිදසුනක් සැකසීමට යන්නේ නම්, ඇත්ත වශයෙන්ම මෙම්කාචඩ් හරහා රෙඩිස් භාවිතා කිරීමට බලවත් හේතුවක් නොමැත.

ඔබට විශ්වාසදායක "කිසි විටෙකත් බැස නොයනු" LRU හැඹිලියක් අවශ්‍ය නම් ... සැලසුම් අනුව මතකයෙන් ඉවතට යා නොහැකි බැවින් විශේෂ specialized ක්‍රියාකාරීත්වය මඟින් බිල්පතට ගැළපෙනු ඇත. උත්සුකයන් සරල ලෙස වෙන් කිරීම.


6

රෙඩිස් ජාලකරණයට (ටී.සී.පී. ඇමතුම්) සම්බන්ධ වූවත් ඔබ කාර්ය සාධනය ගැන උනන්දුවක් දක්වන්නේ නම් මතක තබා ගැනීම වේගවත් වේ. එසේම අභ්‍යන්තරව Memcache වේගවත් වේ.

රෙඩිස්ට වෙනත් විශේෂාංග වලින් සඳහන් කර ඇති පරිදි තවත් විශේෂාංග ඇත.


6

රෙඩිස් අපගේ ව්‍යාපෘතියේ වැඩ භාර ගැනීමේදී බර පැටවීමක් ලෙස අපි සිතුවෙමු. මොඩියුලයක් nginxකැඳවූ විට HttpRedis2Moduleහෝ ඒ හා සමාන දෙයක් භාවිතා කිරීමෙන් අපට නියම වේගයක් ලැබෙනු ඇතැයි අපි සිතුවෙමු.

සමහර විට මොඩියුලය නරක හෝ අපගේ පිරිසැලසුම විය හැකි නමුත් එය ඉතා සරල කාර්යයක් වන අතර එය php සමඟ දත්ත ගෙන මොන්ගෝ ඩීබී වෙත පුරවා ගැනීම ඊටත් වඩා වේගවත් විය. අපි APC හැඹිලි පද්ධතියක් ලෙස භාවිතා කරන අතර එම php සහ MongoDB සමඟ. nginxරෙඩිස් මොඩියුලය වඩා වේගවත් විය .

මගේ ඉඟිය එය ඔබම පරීක්ෂා කර බැලීමයි, එය කිරීමෙන් ඔබේ පරිසරය සඳහා ප්‍රති results ල පෙන්වනු ඇත. අපගේ ව්‍යාපෘතියේ කිසිදු තේරුමක් නැති බැවින් රෙඩිස් භාවිතා කිරීම අනවශ්‍ය බව අපි තීරණය කළෙමු.


සිත්ගන්නාසුලු පිළිතුර නමුත් එය OP
ස්කොට් ෂුල්ටෙස්

රෙඩිස් වෙත ඇතුළු කිරීම සහ එය හැඹිලියක් ලෙස භාවිතා කිරීම APC + PHP + MongoDB භාවිතා කිරීමට වඩා මන්දගාමී විය. නමුත් රෙඩිස්ට ඇතුළත් කිරීම මොන්ගෝ ඩීබී වෙත කෙලින්ම ඇතුළත් කිරීමට වඩා මන්දගාමී විය. ඒපීසී නොමැතිව මම හිතන්නේ ඔවුන් තරමක් සමාන ය.
Ms01

2
එයට හේතුව මොන්ගෝ ඔබ ඇතුළු කළ දේ කවදා හෝ තැටියට ලිවීමට කිසිදු සහතිකයක් ලබා නොදෙන බැවිනි ...
ඩේමියන්

21
නමුත් එය වෙබ් පරිමාණයකි, ඔබ ලියන අතරතුර මොන්ගෝඩ් ඔබ වටා රවුමක දිව යයි. වර්තමානයේ මම ලියන්නේ / dev / null වෙත පමණි, මන්ද එය වේගවත්ම වේ.
Ms01

1

රෙඩිස් වඩා හොඳයි.

එහි වාසි Redisවන්නේ,

  1. එය නූල්, කට්ටල, වර්ග කළ කට්ටල, හැෂ්, බිට්මැප් වැනි දත්ත ගබඩා විකල්ප රාශියක් ඇත
  2. තැටි වාර්තා වල අඛණ්ඩතාව
  3. ගබඩා කළ පටිපාටිය ( LUAස්ක්‍රිප්ටින්) සහාය
  4. PUB / SUB භාවිතා කරමින් පණිවිඩ තැරැව්කරුවකු ලෙස ක්‍රියා කළ හැකිය

නමුත් Memcacheමතකයේ ඇති යතුරු අගය හැඹිලි වර්ගයේ පද්ධතියකි.

  1. රෙඩිස් හි මෙන් ලැයිස්තු, කට්ටල වැනි විවිධ දත්ත වර්ග ගබඩාවලට සහය නොදක්වයි.
  2. ප්‍රධාන කේතය වන්නේ මෙම්කාචේට තැටි නොනැසී පැවතීමයි.

0

හොඳයි, මම වැඩිපුරම භාවිතා කළේ මගේ යෙදුම්, සැසි හැඹිලි සඳහා මෙම්කාචේ සහ මූලධර්ම / ඕර්ම් විමසුම් වස්තු සඳහා රෙඩිස් ය. කාර්ය සාධනය අනුව දෙකම පාහේ සමාන වේ.


0

මෙන්න ඇමසන් විසින් සපයන ලද විශිෂ්ට ලිපිය / වෙනස්කම්

රෙඩිස් යනු මතක සටහන් සමඟ සසඳන විට පැහැදිලි ජයග්‍රාහකයෙකි.

Memcached සඳහා එක් ප්ලස් පොයින්ට් එකක් පමණක් එය බහු-ත්‍රෙඩ් සහ වේගවත් වේ. රෙඩිස්ට විශාල ලක්ෂණ රාශියක් ඇති අතර එය ඉතා වේගවත් නමුත් එක් හරයකට සීමා වේ.

රෙඩිස් පිළිබඳ විශිෂ්ට කරුණු, මෙම්චේච් හි සහාය නොදක්වයි

  • ස්නැප්ෂොට් - පරිශීලකයාට රෙඩිස් හැඹිලියේ ඡායාරූපයක් ගත හැකි අතර ඕනෑම වේලාවක ද්විතීයික ආචයනය දිගටම කරගෙන යා හැකිය.
  • Set, Map, SortedSet, List, BitMaps වැනි බොහෝ දත්ත ව්‍යුහයන් සඳහා ආදාන සහාය.
  • රෙඩීස් හි ලුවා ස්ක්‍රිප්ටින් සඳහා සහාය
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.