Комментарии 9
«HMSET» «Student:1» "_class" «com.odis.redisserviceweb.model.Student» «id» «1» «name» «Stephen» «age» «12»
Вы только что потратили больше 50% памяти на Редисе просто так. Зная типичные имена пакетов уйдет еще больше. Память там самый ценный ресурс.
Не надо так делать.
Не совсем вас понял. Превращением объекта в хеш занимался Spring. Я лишь хотел показать, каким образом он это делает.
Вы написали статью в которой описан метод требующий х2-х3 памяти. В Редисе, где память сильно ограничена.
А потом говорят что джава жрет много памяти и вообще не оптимальная.
Не надо валить на кого-то. Это ваша статья и ваш код. Его можно сделать по другому и не потреблять столько памяти.
Речь о том, что формат хранения данных весьма расточительный. Особенно учитывая, что в Редисе все должно помещаться в память.
Также не раскрыта тема шардинга. Как он будет пересекать множества, если они в разных шардах (слотах)? Возможно, есть какая-то настройка колокации в этом фреймворке.
Что касается пересечений то документация говорит следующее:
Some commands (such as SINTER and SUNION) can only be processed on the server side when all involved keys map to the same slot. Otherwise, computation has to be done on client side. Therefore, it is useful to pin keyspaces to a single slot, which lets make use of Redis server side computation right away.
Redis заслуженно считается старичком в мире NoSQL-решений.
Так совпало, что последней на момент публикации вашей статьи венчурной инвестицией в разработчиков СУБД по данным Crunchbase был раунд F у Redis Labs (25 августа, $100M).
Как Spring Data работает с Redis