Что такое живой объект в Java?
Java — это объектно-ориентированный язык программирования, что означает, что в Java есть несколько концепций, более важных, чем объекты. Мощь объектов в Java расширена за счет распределенных объектов , которые позволяют создавать распределенные системы на нескольких процессах или компьютерах.
В Java живой объект (также известный как живой распределенный объект) является «улучшенной» версией стандартного объекта. С живыми объектами ссылки на экземпляры могут быть разделены не только между потоками виртуальной машины Java (JVM), но также между различными JVM на разных машинах.
Redis — это хранилище структуры данных с открытым исходным кодом в памяти, которое часто используется для создания распределенных баз данных ключей NoSQL. Чтобы использовать объекты Java с Redis, разработчики используют клиенты Redis Java, такие как Redisson .
Вам также может понравиться: Все об объекте в Java
В этой статье мы обсудим, как Redisson относится к теме объектов Java, и как вы можете использовать Redisson для поиска объектов Java в Redis.
Redisson Live Objects (RLO)
Redisson Live Objects (RLO) — это переосмысление концепции живых объектов для Redis. В RLO все поля внутри класса Java отображаются в хэш Redis . Это сопоставление выполняется прокси-классом, созданным во время выполнения.
Более конкретно, методы get / set каждого поля в классе Java преобразуются в методы hget / hset в хэше Redis. Это делает RLO доступным для любого клиента, подключенного к серверу Redis.
С RLO совместное использование объектов между несколькими приложениями и серверами так же просто, как и их совместное использование в одном приложении. Устраняя необходимость обрабатывать сериализацию и десериализацию, RLO значительно упрощают процесс распределенного программирования.
Поиск объектов Java в Redis с помощью Redisson
Ниже приведен пример того, как создать живой объект Java с Redisson. Аннотации @REntity и @RId необходимы для использования живых объектов.
Джава
1
2
public class MyObject {
3
5
private String id;
6
8
private String field1;
9
11
private Integer field2;
12
13
14
private Long field3;
15
16
}
После того как вы создали RLO и сохранили его в Redis, вы также можете искать его с помощью Redisson. Доступные условия поиска включают в себя:
- Conditions.eq: условие «EQUALS», ограничивающее свойство определенным значением.
- Conditions.and: условие «И» для набора вложенных условий.
- Conditions.or: условие «ИЛИ» для набора вложенных условий.
- Conditions.in: условие «IN», ограничивающее свойство набором определенных значений.
- Conditions.gt: условие «GREATER THAN», ограничивающее свойство определенным значением.
- Conditions.ge: условие «БОЛЬШЕ, ЧЕМ ИЛИ РАВНО», ограничивающее свойство определенным значением.
- Conditions.lt: условие "МЕНЬШЕ", ограничивающее свойство определенным значением.
- Conditions.le: условие "МЕНЬШЕ, ЧЕМ ИЛИ РАВНО", ограничивающее свойство определенным значением.
Ниже приведен пример поиска живых объектов Java в Redisson. В этом примере поиска будут найдены все объекты, где field1 = value и field2 <12, или где field1 = value и field2> 23, или где field3 находится в диапазоне [1, 2].
Джава
xxxxxxxxxx
1
RLiveObjectService liveObjectService = redisson.getLiveObjectService();
2
liveObjectService.persist(new MyObject());
3
Collection<MyObject> objects = liveObjectService.find(MyObject.class,
5
Conditions.or(Conditions.and(Conditions.eq("field1", "value"), Conditions.lt("field2", 12)),
6
Conditions.and(Conditions.eq("field1", "value2"), Conditions.gt("field2", 23)),
7
Conditions.in("field3", 1L, 2L));
8
В Redisson PRO реализована поисковая система Redis для объектов Java, которая работает в 10 раз быстрее, чем версия с открытым исходным кодом, и все это снижает потребление памяти JVM. Чтобы узнать больше о возможностях Redisson PRO, включая дополнительные функции, более высокую производительность и техническую поддержку 24x7, посетите веб-сайт Redisson PRO .