Выпуск Π‘Π£Π‘Π” Redis 8.2

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Ρ€Π΅Π»ΠΈΠ· Π‘Π£Π‘Π” Redis 8.2, относящСйся ΠΊ классу NoSQL-систСм. Redis прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΊΠ»ΡŽΡ‡/Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ структурированных Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ списки, Ρ…ΡΡˆΠΈ ΠΈ мноТСства, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ выполнСния Π½Π° сторонС сСрвСра скриптов-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π° языкС Lua. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° написан Π½Π° язык Π‘ΠΈ ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ AGPLv3.

Π‘Π£Π‘Π” Redis ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π° ΠΎΠ΄ΠΈΠ½ шаг Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΊΠΎΠΌΠ°Π½Π΄, гарантируя Π½Π΅ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ (ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… запросов Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΠΈΠ½ΠΈΡ‚ΡŒΡΡ) выполнСния Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄, Π° Π² случаС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ позволяя ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ измСнСния. ВсС Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΠΎΠ»Π½ΠΎΠΌ ΠΎΠ±ΡŠΡ‘ΠΌΠ΅ ΠΊΡΡˆΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ доступны для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° популярных языков, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Perl, Python, PHP, Java, Ruby ΠΈ Tcl.

Для управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠ°ΠΊ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚/Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚, стандартныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ списками ΠΈ мноТСствами (объСдинСниС, пСрСсСчСниС), ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, мноТСствСнныС Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сортировки. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π΄Π²Π° Ρ€Π΅ΠΆΠΈΠΌΠ° хранСния: пСриодичСская синхронизация Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° диск ΠΈ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π° дискС Π»ΠΎΠ³Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС гарантируСтся полная ΡΠΎΡ…Ρ€Π°Π½Π½ΠΎΡΡ‚ΡŒ всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Π° организация master-slave Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° нСсколько сСрвСров, осущСствляСмая Π² Π½Π΅Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. ДоступСн Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями «публикация/подписка», ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ создаётся ΠΊΠ°Π½Π°Π», сообщСния ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ ΠΏΠΎ подпискС.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ измСнСния Π² Redis 8.2:

  • ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° оптимизация Π±ΠΎΠ»Π΅Π΅ 70 ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стали Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ быстрСС, Ρ‡Π΅ΠΌ Π² Redis 8.0. НапримСр, ΠΊΠΎΠΌΠ°Π½Π΄Π° BITCOUNT стала быстрСС Π½Π° 35%, Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со списками LINSERT, LREM ΠΈ LPOS β€” быстрСС Π½Π° 25%. 17 ΠΈΠ· ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ стали быстрСС ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π½Π° 5%, Π° 52 β€” ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π½Π° 2%.
     Выпуск Π‘Π£Π‘Π” Redis 8.2
  • ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, позволившиС Π½Π° 49% ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ число ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² сСкунду Π² тСстах c 8 ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€ΠΈ распрСдСлСнии Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² 20% запросов Π½Π° запись ΠΈ 80% Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅. На ΠΎΠ΄Π½ΠΎΠΌ сСрвСрС ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΡ€Π΅Π²Ρ‹ΡΠΈΡ‚ΡŒ Ρ€ΡƒΠ±Π΅ΠΆ Π² 1 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² сСкунду.
     Выпуск Π‘Π£Π‘Π” Redis 8.2
  • Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΊΠ»ΡŽΡ‡/Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” для хранСния Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ унифицированная структура kvobj, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ имя ΠΊΠ»ΡŽΡ‡Π°, ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ врСмя ΠΆΠΈΠ·Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ выдСляСмой памяти ΠΈ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΎΠ΄Π½ΠΎΠΉ ссылкой Π½Π° эту структуру Π² Ρ…ΡΡˆ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ…, вмСсто ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ссылок Π½Π° ΠΊΠ»ΡŽΡ‡ΠΈ, Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ TTL. ΠŸΡ€ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… строковых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти Π½Π° 25-37%.
     Выпуск Π‘Π£Π‘Π” Redis 8.2
  • ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° оптимизация хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON, позволившая ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти Π½Π° 25-67% ΠΏΡ€ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠΈ Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΈ чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой.
  • Π’ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Streams, примСняСмый для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ хранСния ΠΏΠΎΡ‚ΠΎΠΊΠ° сообщСний, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ XACKDEL ΠΈ XDELEX, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ нСсколько ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ (consumer groups). ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Π·Π°Π΄Π°Ρ‡Ρƒ удалСния сообщСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΎ всСми ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ.
  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ BITOP, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΡƒΡŽ для Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ DIFF, DIFF1, ANDOR ΠΈ ONE.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ индСксов Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² SVS-VAMANA, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ сТатиС Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ².
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ: Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π² Ρ€Π°Π·Ρ€Π΅Π·Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… слотов ΠΈ распрСдСлСниС Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠ»ΡŽΡ‡Π΅ΠΉ для Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ