/ / Stan usługi sieci Web z HashMap - java, struktury danych, hash, hashmap, hashtable

Stan usługi sieci Web z HashMap - java, struktury danych, hash, hashmap, hashtable

Dzień dobry. Projektując usługę internetową, która korzysta z loginu (i innych działań) i przechowuje wszystkie dane użytkownika i hasła w pamięci (nie korzysta z żadnej bazy danych), miałem wątpliwości, kiedy zapewnić przyzwoity standard wydajności:

Najpierw wybierz strukturę danych do przechowywania informacji. Chociaż myślę, że HashMap byłby dobrym wyborem, gdzie byłyby klucze nazwy użytkownika i inne wartości informacji (lub tylko hasło). Zastanawiam się, czy istnieją inne struktury danych, które lepiej pasują.

Ponadto w przypadku HashMap, czy lepiej byłoby użyć separateChainnig lub LinearProbing jako strategia rozwiązywania konfliktów? W przypadku separateChaining mamy do czynienia z jedną z list „luk” w Hashmap, które w najgorszym przypadku są bardzo długie i złożone w kolejności liniowej, ale LinearProbing może być wiele przeróbek.

Jaka jest Twoja opinia?

Dziękuję Ci bardzo.

Odpowiedzi:

0 dla odpowiedzi № 1

Dlaczego nie używasz trwałości w pamięci?Pamięć masowa jak Redis, H2 ..... i wiele innych jest dostępnych, które są open source zamiast polegać na nietrwałej pamięci. Mają one własne wsparcie struktury danych, takie jak mapa, lista itp.

Ale jeśli nadal chcesz użyć mapy skrótów, to jestcałkiem dobry wybór, jeśli masz unikalny klucz. Ale odpowiadając na twoje następne pytanie (oddzielne Chainnig lub LinearProbing). Dlaczego naprawdę zależy Ci na implementacji mapy skrótów, gdy Java zapewnia lepszą wydajność mapowania w Javie 8. Sprawdź przykład tutaj http://www.nurkiewicz.com/2014/04/hashmap-performance-improvements-in.html