Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 3522|Відповідь: 2

[Джерело] Просте порівняння кешу Garnet і Redis, розроблене з .NET

[Копіювати посилання]
Опубліковано 2024-3-28 18:00:42 | | | |
Garnet — це новий тип віддаленого кеш-сховища, розроблений Microsoft Research, який пропонує кілька унікальних переваг:

  • Garnet бере за відправну точку популярний лінійний протокол RESP, що дозволяє використовувати Garnet із немодифікованих клієнтів Redis, доступних у більшості сучасних мов програмування, таких як StackExchange.Redis у C#.
  • Garnet пропонує кращу пропускну здатність і масштабованість завдяки багатьом клієнтським підключенням і невеликими пакетами порівняно з порівнянним відкритим кеш-сховищем, що дозволяє економити витрати на великі додатки та сервіси.
  • Garnet продемонстрував надзвичайно низьку затримку клієнта (зазвичай менше 300 мікросекунд при 99,9%) при використанні віртуальних машин Commodity Cloud (Azure) з увімкненим прискореним TCP, що критично важливо для реальних ситуацій.
  • Garnet базується на найновішій технології .NET, є кросплатформенною, розширюваною та сучасною. Він розроблений так, щоб його було легко розвивати та розвивати, не жертвуючи продуктивністю у звичайних ситуаціях. Ми використовуємо багату бібліотечну екосистему .NET для розширення API та відкритих можливостей для оптимізації. Завдяки ретельному використанню .NET Garnet досягає найсучаснішої продуктивності як на Linux, так і на Windows.


Відкрита адреса:Вхід за гіперпосиланням видно.
Документації:Вхід за гіперпосиланням видно.

Гранат має такі ключові переваги:

  • Пропускна здатність сервера (операції за секунду) збільшується на кілька порядків для малих партій і багатьох клієнтських сесій порівняно з порівнянним відкритим кеш-сховищем.
  • На звичайних хмарних (Azure) машинах з увімкненим прискореним TCP на Windows і Linux затримка на одну операцію надзвичайно низька (зазвичай менше 300 мікросекунд при 99,9%).
  • Зі збільшенням кількості клієнтів досягається краща масштабованість як з пакетуванням клієнтів, так і без нього.
  • Можливість використовувати всі ресурси CPU/пам'яті серверного комп'ютера через один екземпляр спільного сервера пам'яті (не потребує кластеризації всередині вузлів).
  • Підтримка наборів даних більшими за пам'ять, які переповнюють локальні та хмарні пристрої зберігання.
  • Функції бази даних, такі як швидкий контрольний пункт, відновлення та публікація/підписка.
  • Підтримка багатовузлового шардового хеш-розділення (режим «кластера» Redis), міграції стану та реплікації.
  • Добре протестований з комплексним набором тестів (тисячі юніт-тестів проти Garnet та його рівня зберігання Tsavorite).
  • Кодова база C#, яку легко розвивати та розширювати.


Garnet не підтримує всі команди Redis, зокрема підтримувані команди для перегляду:Вхід за гіперпосиланням видно.
Проєкт Garnet включає інструмент Benchmark для запуску RESP-бенчмарків із використанням різних клієнтів, різних навантажень і різних політик для вимірювання пропускної здатності, продуктивності та затримки. Адреса:Вхід за гіперпосиланням видно.
Протокол RESP:Вхід за гіперпосиланням видно.

У цій статті використовуються вбудовані інструменти бенчмаркінгу Redis для простого тестування, а середовище тестування виглядає так:

Тест продуктивності Redis Benchmark
https://www.itsvse.com/thread-9645-1-1.html

Кешверсія
РедісRedis 3.0.504 (00000000/0) 64-бітний
ГранатGarnet 1.0.2 64 біт; Автономний режим


Бенчмарки Redis

Спочатку запустіть кеш Redis за допомогою командного рядка з наступною командою:


Команда тестування виглядає так:


Результати такі:



====== SET ======
  500000 запитів виконано за 24,38 секунди
  100 паралельних клієнтів
  Корисне навантаження 3 байти
  Зберегти життя: 1

0,03% <= 1 мілісекунда
0,25% < = 2 мілісекунди
2,65% < = 3 мілісекунди
16,49% <= 4 мілісекунди
59,95% < = 5 мілісекунд
99,09% <= 6 мілісекунд
99,76% < = 7 мілісекунд
99,86% <= 8 мілісекунд
99,93% <= 9 мілісекунд
99,98% <= 10 мілісекунд
99,99% < = 11 мілісекунд
100,00% < = 12 мілісекунд
20512,82 запитів за секунду

====== ОТРИМАТИ ======
  500000 запитів виконано за 27,41 секунди
  100 паралельних клієнтів
  Корисне навантаження 3 байти
  Зберегти життя: 1

0,03% <= 1 мілісекунда
0,19% < = 2 мілісекунди
6,44% < = 3 мілісекунди
25,82% < = 4 мілісекунди
45,65% < = 5 мілісекунд
98,79% < = 6 мілісекунд
99,98% <= 7 мілісекунд
99,98% <= 8 мілісекунд
99,98% < = 9 мілісекунд
100,00% <= 9 мілісекунд
18238,86 запитів за секунду

Бенчмарки Garnet

Створіть новий проєкт консолі .NET 8 і спочатку зверніться до пакету Microsoft.Garnet за допомогою наступної команди:


Код виглядає так:


Команда запуску виглядає так:


Використовуючи ту ж команду бенчмарку, результат виглядає так:



====== SET ======
  500000 запитів виконано за 11,51 секунди
  100 паралельних клієнтів
  Корисне навантаження 3 байти
  Зберегти життя: 1

75,51% < = 1 мілісекунда
88,24% <= 2 мілісекунди
92,04% <= 3 мілісекунди
99,46% <= 4 мілісекунди
99,98% < = 5 мілісекунд
99,99% <= 6 мілісекунд
100,00% < = 12 мілісекунд
100,00% < = 12 мілісекунд
43448,04 запитів за секунду

====== ОТРИМАТИ ======
  500000 запитів виконано за 31,50 секунди
  100 паралельних клієнтів
  Корисне навантаження 3 байти
  Зберегти життя: 1

0,01% <= 1 мілісекунда
0,90% < = 2 мілісекунди
27,25% < = 3 мілісекунди
97,65% < = 4 мілісекунди
99,82% <= 5 мілісекунд
99,94% <= 6 мілісекунд
99,98% <= 7 мілісекунд
99,98% < = 9 мілісекунд
99,98% <= 10 мілісекунд
99,99% < = 11 мілісекунд
100,00% < = 12 мілісекунд
100,00% < = 12 мілісекунд
15872.01 запитів за секунду

Через те, що інструменти для тестування, версії програмного забезпечення, параметри тестування тощо дають різні результати, тести є лише для довідки; з простих тестів у цій статті видно, що затримка Garnet значно нижча, ніж Redis.

(Кінець)




Попередній:.NET/C# атрибут відображення, який можна оцінити за нульовими типами
Наступний:SSE (1) використовує ASP.NET Core як SSE-сервер
 Орендодавець| Опубліковано 2024-3-28 18:01:32 |
KeyDB — це повністю відкрита база даних, що працює на Snap, і є швидшою альтернативою Redis. Адреса:https://docs.keydb.dev/
 Орендодавець| Опубліковано 2025-9-3 09:36:07 |
ШВИДШЕ: Швидке одночасно зберігання постійного значення ключа та логування на C# і C++.
        
Документації:Вхід за гіперпосиланням видно.
Джерело:Вхід за гіперпосиланням видно.
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com