Zastanawiam się, jakie korzyści z Redis z jego klienta C# ponad słownik/ConcurrentDictionary i inne.Korzyści Redis ponad C# Słownik
Nie jestem pewien, czy użycie redisu jest uważane za nadmierne w przypadku przechowywania słownika.
Dzięki.
Zastanawiam się, jakie korzyści z Redis z jego klienta C# ponad słownik/ConcurrentDictionary i inne.Korzyści Redis ponad C# Słownik
Nie jestem pewien, czy użycie redisu jest uważane za nadmierne w przypadku przechowywania słownika.
Dzięki.
Redis jest prawdopodobnie przesadą dla lokalnej aplikacji typu "jeden komputer". Zwłaszcza, gdy dane nie są duże.
Jest używany głównie jako warstwa pamięci podręcznej L2. Powiedzmy, że masz wiele komputerów obsługujących twoją aplikację, każda maszyna może przechowywać własną lokalną pamięć podręczną, ale Redis może służyć jako globalna pamięć podręczna dla nich wszystkich. Załóżmy, że użytkownik Twojej aplikacji przegląda stronę lub funkcję wymagającą danych z Twojej bazy danych. Twoja aplikacja sprawdzi następnie swoją lokalną pamięć podręczną L1 (na przykład słownik). Byłaby to najszybsza metoda, ponieważ nie wiąże się z żadnym objazdem w sieci. Jeśli danych tam nie ma, będzie szukał go w Redis jako globalnej pamięci podręcznej aplikacji. Jeśli jest tam - świetnie - pobierz dane i umieść je w lokalnej pamięci podręcznej L1. Jeśli nie, przejdź do bazy danych, pobierz dane, umieść je w Redis (L2) iw lokalnej pamięci podręcznej (L1).
Możesz przeczytać więcej na ten temat here.
Mając na uwadze powyższe, istnieje więcej zwyczajów dla Redis inne niż zwykłe cache - Pub/Sub funkcjonalności, SET
s, SORTED SET
S i funkcji na nich (jak skrzyżowania, związków itp), a nawet inteligentne funkcje na STRING
typów, takich jako operacje bitowe.
@Airiran Cohen, czy moja odpowiedź ci pomogła? –
Jak już wiesz, użycie Redis do buforowania w serwerze spowodowałoby przesadę.
Ale używając Redis z C# w aplikacji rozproszonej zdecydowanie oferuje pewne korzyści (wszystkie z poniższych operacji są thread-safe):
Dictionary
w skrótach Redisa, obiektach List
na listach Redis, obiektach HashSet
w zestawie Redis itp. Jeśli twoje wartości są ciągami/ints/floats, nie ma potrzeby nawet serializacji!sorted set
s.Ale pod koniec dnia wszystko zależy od twojego przypadku użycia.
1/Dlaczego nie dowiesz się, próbując? 2/Takie ogólne pytanie prawdopodobnie bardziej pasuje do http://programmers.stackexchange.com/. – Aybe
Chcę się dowiedzieć, w jaki sposób należy używać redis i jakie są jego zalety w stosunku do zwykłego obiektu pamięciowego C#, który nie jest przeznaczony do walki na luzie między tymi dwoma elementami. –
Tak, ale wiesz, jak te pytania kończą się słowem: odpowiedź subiektywna, więc albo masz dokładne pytanie, albo nie dostaniesz żadnej odpowiedzi, albo zostanie zamknięta. – Aybe