Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Redis hash bardzo niska prędkość zapisu

Musisz trochę więcej pomyśleć o tym, co naprawdę testujesz za pomocą tego programu. Mogę ci powiedzieć, że nie jest to Redis, ale raczej zdolność twojego systemu do uruchomienia gry ping-pong między dwoma procesami (ponieważ wszystkie twoje wywołania hsetnx są synchroniczne).

Przeczytaj tę stronę, zanim spróbujesz przetestować Redis, na pewno ci to pomoże.

Twoje założenie, że prędkość Redis powinna zbliżyć się do prędkości zapisu pamięci RAM, jest nieco naiwne. Redis to zdalny sklep, a dla operacji O(1) większość kosztów ogólnych wynika z kosztów komunikacji. W przypadku ruchu synchronicznego (jak w twoim przykładzie) jest to również spowodowane kosztem harmonogramu systemu operacyjnego.

Jeśli chcesz zastosować wiele poleceń po kolei, musisz użyć potoku. Lub jeśli nie zależy Ci na sekwencji, możesz pracować jednocześnie z kilkoma połączeniami (jest to domyślny tryb dla redis-benchmark). Lub możesz zamiast tego spróbować wysłać polecenia asynchroniczne. We wszystkich przypadkach chodzi o amortyzację kosztów podróży w obie strony do serwera Redis

Dzięki pipeliningowi na kilku połączeniach z ruchem asynchronicznym uzyskasz maksymalną przepustowość, jaką Redis może osiągnąć na tej maszynie.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak uruchomić Redis na Amazon OpsWorks dla aplikacji Rails?

  2. Klient AWS Lambda i Redis. Dlaczego nie mogę oddzwonić?

  3. Zabezpieczanie węzła Redis

  4. django:redis:CommandError:Nie ustawiłeś ASGI_APPLICATION, który jest potrzebny do uruchomienia serwera

  5. Otrzymuję błąd Nie znaleziono klasy „Predis\Client” w Laravel 5.2