您当前的位置:首页 > 电脑百科 > 数据库 > Redis

如何搜索存储在Redis中的Java对象

时间:2020-03-07 10:50:39  来源:  作者:

JAVA中的Live对象是什么?

Java是一种面向对象的编程语言,这意味着在Java中几乎没有比对象更重要的概念了。Java中的对象的强大功能分布式对象,使您能够跨多个进程或计算机构建分布式系统。

在Java中,活动对象(也称为活动分布式对象)是标准对象的“增强”版本。对于活动对象,实例引用不仅可以在Java虚拟机线程,但在不同机器上的不同JVM之间也是如此。

redis是一种开放源码的内存数据结构存储,通常用于构建分布式NoSQL键值数据库。要在Redis中使用Java对象,开发人员可以使用RedisJava客户端,例如雷迪森.

在本文中,我们将讨论Redisson如何处理Java对象的主题,以及如何使用Redisson在Redis中搜索Java对象。

Redisson Live Objects(RLO)

RedissonLiveObjects(RLO)是REDIS活动对象概念的重新实现。对于rlo,Java类中的所有字段都映射到红花散列。此映射由运行时构造的代理类完成。

更具体地说,Java类中每个字段的get/set方法被转换为Redis散列中的hget/hset方法。这使得连接到Redis服务器的任何客户端都可以访问RLO。

使用RLO,在多个应用程序和服务器之间共享对象就像在单个应用程序中共享对象一样容易。通过消除处理序列化和反序列化的需要,RLO极大地简化了分布式编程的过程。

用Redisson在Redis中搜索Java对象

下面是如何使用Redisson创建JavaLiveObject的示例。使用活动对象需要使用@REntity和@RID注释。

@REntity2 public class MyObject {3 4 @RId 5 private String id;67 @RIndex8 private String field1;910 @RIndex11 private Integer field2;12 13 @RIndex14 private Long field3; 15

一旦您创建了一个rlo并将其存储在Redis中,您还可以使用Redisson搜索它。现有的搜索条件包括:

  • Conditions.eq:“等于”条件将属性限制为已定义的值。
  • 条件.和:“和”条件用于嵌套条件的集合。
  • 条件。或:嵌套条件集合的“OR”条件。
  • 条件.在:“IN”条件将属性限制为一组已定义的值。
  • 条件:“大于”条件将属性限制为已定义的值。
  • 条件通用:“大于或等于”条件将属性限制为定义的值。
  • 条件:将属性限制为定义值的“小于”条件。
  • 条件:“小于或等于”条件将属性限制为定义的值。

下面是如何在Redisson中搜索Java活动对象的示例。此示例搜索将发现字段1=value和field 2<12的所有对象,或field 1=value和field 2>23的对象,或字段3位于[1,2]范围内的对象。

RLiveObjectService liveObjectService = redisson.getLiveObjectService();2 liveObjectService.persist(new MyObject());34 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)), Conditions.in("field3", 1L, 2L));

Redissonpro为Java对象实现了一个Redis搜索引擎,比开源版本快10倍,这一切都降低了JVM内存消耗。若要了解更多关于redisson pro的特性(包括附加功能、更高性能和24x7技术支持),请参阅Redisson pro网站



Tags:Redis   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
来源: my.oschina.net/xiaomu0082/blog/2990388首先说下问题现象:内网sandbox环境API持续1周出现应用卡死,所有api无响应现象刚开始当测试抱怨环境响应慢的时候 ,我们重启一下应...【详细内容】
2021-12-08  Tags: Redis  点击:(18)  评论:(0)  加入收藏
我不知道为什么你会选择对特定数量的“错误”(或警告)如此具体。听起来您正在寻找将要发布到 Yahoo! 的某些文章的内容。 Insider (N Foos to Blah for the BlahBlah)。那说:...【详细内容】
2021-12-07  Tags: Redis  点击:(14)  评论:(0)  加入收藏
目录 一、背景 二、步骤 0.理论支持 1、获取数据 2、结果 3、分析数据并评估大小 三、关于repl-backlog-size 一、背景 repl-backlog-size控制这个环形缓冲区. ​ 主从断...【详细内容】
2021-11-05  Tags: Redis  点击:(41)  评论:(0)  加入收藏
Redis 性能测试是通过同时执行多个命令实现的。1,Redis-benchmarkRedis性能命令:redis性能命令格式: redis-benchmark [option] [option value] redis 性能测试工具可选参数如...【详细内容】
2021-11-02  Tags: Redis  点击:(41)  评论:(0)  加入收藏
1 概述数据结构和内部编码 无传统关系型数据库的 Table 模型schema 所对应的db仅以编号区分。同一 db 内,key 作为顶层模型,它的值是扁平化的。即 db 就是key的命名空间。 key...【详细内容】
2021-11-01  Tags: Redis  点击:(28)  评论:(0)  加入收藏
普通java中使用引用Java redis 驱动,即可连接:import redis.clients.jedis.Jedis; public class RedisTestJava { public static void main(String[] args) { //连...【详细内容】
2021-10-13  Tags: Redis  点击:(34)  评论:(0)  加入收藏
Redis常用的数据结构有 string list set zset hashstringstring 是 Redis 的基本的数据类型,一个 key 对应一个 value。string 类型是二进制安全的,Redis的string可以包含任...【详细内容】
2021-10-12  Tags: Redis  点击:(36)  评论:(0)  加入收藏
列表类型可以存储一组按插入顺序排序的字符串,它非常灵活,支持在两端插入、弹出数据,可以充当栈和队列的角色。> LPUSH fruit apple(integer) 1> RPUSH fruit banana(integer)...【详细内容】
2021-09-17  Tags: Redis  点击:(54)  评论:(0)  加入收藏
Redis持久化意义 是做灾难恢复,数据恢复,也可以归类到高可用的一个环节里面去,比如你的redis整个挂了,然后redis就不可用了,你要做的事情是让redis变得可用,尽快变得可用 大量的请...【详细内容】
2021-08-12  Tags: Redis  点击:(77)  评论:(0)  加入收藏
Nginx来限制访问控制的方法有多种,nginx主要有2个模块控制,但是那些不支持自定义,非常死,在大多数场景下并不实用。今天分享一个:利用openresty+lua+redis 实现封杀频繁恶意访问I...【详细内容】
2021-08-12  Tags: Redis  点击:(119)  评论:(0)  加入收藏
▌简易百科推荐
来源: my.oschina.net/xiaomu0082/blog/2990388首先说下问题现象:内网sandbox环境API持续1周出现应用卡死,所有api无响应现象刚开始当测试抱怨环境响应慢的时候 ,我们重启一下应...【详细内容】
2021-12-08  Java识堂    Tags:Redis   点击:(18)  评论:(0)  加入收藏
我不知道为什么你会选择对特定数量的“错误”(或警告)如此具体。听起来您正在寻找将要发布到 Yahoo! 的某些文章的内容。 Insider (N Foos to Blah for the BlahBlah)。那说:...【详细内容】
2021-12-07  富集云科技有限公司    Tags:Redis   点击:(14)  评论:(0)  加入收藏
目录 一、背景 二、步骤 0.理论支持 1、获取数据 2、结果 3、分析数据并评估大小 三、关于repl-backlog-size 一、背景 repl-backlog-size控制这个环形缓冲区. ​ 主从断...【详细内容】
2021-11-05  弈秋的美好生活    Tags:redis   点击:(41)  评论:(0)  加入收藏
Redis 性能测试是通过同时执行多个命令实现的。1,Redis-benchmarkRedis性能命令:redis性能命令格式: redis-benchmark [option] [option value] redis 性能测试工具可选参数如...【详细内容】
2021-11-02  川石信息    Tags:Redis   点击:(41)  评论:(0)  加入收藏
1 概述数据结构和内部编码 无传统关系型数据库的 Table 模型schema 所对应的db仅以编号区分。同一 db 内,key 作为顶层模型,它的值是扁平化的。即 db 就是key的命名空间。 key...【详细内容】
2021-11-01  JavaEdge    Tags:Redis   点击:(28)  评论:(0)  加入收藏
普通java中使用引用Java redis 驱动,即可连接:import redis.clients.jedis.Jedis; public class RedisTestJava { public static void main(String[] args) { //连...【详细内容】
2021-10-13  faesuite    Tags:Redis   点击:(34)  评论:(0)  加入收藏
Redis常用的数据结构有 string list set zset hashstringstring 是 Redis 的基本的数据类型,一个 key 对应一个 value。string 类型是二进制安全的,Redis的string可以包含任...【详细内容】
2021-10-12  语霖    Tags:Redis   点击:(36)  评论:(0)  加入收藏
列表类型可以存储一组按插入顺序排序的字符串,它非常灵活,支持在两端插入、弹出数据,可以充当栈和队列的角色。> LPUSH fruit apple(integer) 1> RPUSH fruit banana(integer)...【详细内容】
2021-09-17  深夜敲代码    Tags:Redis   点击:(54)  评论:(0)  加入收藏
Redis持久化意义 是做灾难恢复,数据恢复,也可以归类到高可用的一个环节里面去,比如你的redis整个挂了,然后redis就不可用了,你要做的事情是让redis变得可用,尽快变得可用 大量的请...【详细内容】
2021-08-12  小李说IT    Tags:Redis   点击:(77)  评论:(0)  加入收藏
当查询Redis中没有的数据时,该查询会下沉到数据库层,同时数据库层也没有该数据,当这种情况大量出现或被恶意攻击时,接口的访问全部透过Redis访问数据库,而数据库中也没有这些数据...【详细内容】
2021-07-30  随便t    Tags:缓存穿透   点击:(91)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条