Мне интересно, какие преимущества Redis с его клиентом C# над Dictionary/ConcurrentDictionary и в противном случае.Преимущества Redis over C# Dictionary
Я не уверен, что при использовании redis считается излишним для хранения словаря.
Спасибо.
Мне интересно, какие преимущества Redis с его клиентом C# над Dictionary/ConcurrentDictionary и в противном случае.Преимущества Redis over C# Dictionary
Я не уверен, что при использовании redis считается излишним для хранения словаря.
Спасибо.
Redis, вероятно, является излишеством для локального приложения с одной машиной. Особенно, если данные невелики.
В основном используется в качестве уровня кэша L2. Скажем, у вас есть несколько машин, обслуживающих ваше приложение, каждая машина может хранить свой собственный локальный кеш, но Redis может служить глобальным кешем для всех. Предположим, что пользователь вашего приложения просматривает страницу или функцию, требующую некоторых данных из вашей базы данных. Затем ваше приложение проверит локальный кеш L1 (например, словарь). Это был бы самый быстрый метод, так как он не связан ни с какой другой сетевой поездкой. Если данных нет, он будет искать его в Redis в качестве глобального кэша приложений. Если он есть - отлично - извлеките данные и вставьте их в локальный кеш L1. Если нет, перейдите в базу данных, извлеките данные, поместите их в Redis (L2) и в локальный кеш (L1).
Подробнее об этом можно узнать здесь here.
Это, как говорится, есть больше обыкновений для Redis, кроме простого кэша - Pub/Sub функциональности, SET
сек, SORTED SET
сек и функциональность на них (как перекрестки, союзы и т.д.) и даже смарт-функциональность на STRING
типов, например как побитовые операции.
@ Авиран Коэн, помог ли мой ответ? –
Как вы уже знаете, используя Redis для кэширования в сервере, вы бы перехитрили.
Но используя Redis с C# в распределенном приложении определенно предлагает некоторые преимущества (все из перечисленных ниже операций потокобезопасны):
Dictionary
в хэшах Redis, List
объектов в списках Redis, HashSet
объектов в Redis и т.д. Если ваши значения являются строками/ints/float, нет необходимости даже сериализовать!sorted set
с Redis.Но в конце концов все зависит от вашего прецедента.
1/Почему бы вам не узнать, пытаясь? 2/Такой общий вопрос, вероятно, больше подходит для http://programmers.stackexchange.com/. – Aybe
Я хочу узнать, как использовать redis и каковы его преимущества перед обычным в объекте памяти C#, его не означает, что он будет сражаться на одном бар между этими двумя. –
Да, но вы знаете, как эти вопросы возникают в SO: субъективный ответ, так что либо у вас есть точный вопрос, чтобы спросить, либо вы не получите никакого ответа, или он будет закрыт. – Aybe