Я получаю 10000 TPS. Я использовал внутреннюю хэш-карту Java, чтобы принимать и хранить эти транзакции в качестве ключей. Большинство транзакций являются дубликатами, поэтому при вводе ключа будет создан объект и значения будут сохранены в этом объекте. Если появится тот же ключ, мы просто сделаем некоторые оценки и обновим значения в этом объекте. Этот подход был очень быстрым. Он мог справиться с количеством TPS, которое я бросил в него.
Теперь я хотел использовать Redis. Я использую Redisson, чтобы взять эти объекты, и pu sh в Redis. Этот подход очень медленный, и я не уверен, что это из-за Redisson. Вот весь код с участием Redisson:
RBucket<BookRequest> bucket = redis.getBucket(key);
setRequestBucket(bucket);
if (bucket.isExists()) {
BookRequest bookRequest = bucket.get();
BookRequest.incrementVolume(bookHour);
return shopRequest;
}
bucket.set(new BookRequest(bookHour));
return bucket.get();
После того, как я получу объект, изменим значения, я делаю это:
this.bucket.getAndDelete();
this.bucket.set(shopRequest);
И все. TPS составляет 2 КБ в секунду, что очень медленно. Есть ли способ сделать это быстрее?