Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建一个java域类来同时为Redis缓存(NoSQL)和Sybase ASE(关系数据库)服务?_Java_Redis_Pojo_Redis Cache - Fatal编程技术网

如何创建一个java域类来同时为Redis缓存(NoSQL)和Sybase ASE(关系数据库)服务?

如何创建一个java域类来同时为Redis缓存(NoSQL)和Sybase ASE(关系数据库)服务?,java,redis,pojo,redis-cache,Java,Redis,Pojo,Redis Cache,我们将使用Redis缓存来提高性能。我们需要创建一个java域类(例如Employee.java),可以用于Redis和Sybase ASE,但问题是Redis是NoSql数据库,Sybase ASE是关系数据库。 如果我们将Employee对象作为键值对存储在Redis中,然后如果我们想通过从Redis缓存中提取它来将其存储在数据库(Sybase ASE)中,那么它将产生问题。 因此,简而言之,我们需要一个java域类。我们怎样才能做到这一点呢?只要将您的员工序列化为一个C字符串值,然后放入R

我们将使用Redis缓存来提高性能。我们需要创建一个java域类(例如Employee.java),可以用于Redis和Sybase ASE,但问题是Redis是NoSql数据库,Sybase ASE是关系数据库。 如果我们将Employee对象作为键值对存储在Redis中,然后如果我们想通过从Redis缓存中提取它来将其存储在数据库(Sybase ASE)中,那么它将产生问题。
因此,简而言之,我们需要一个java域类。我们怎样才能做到这一点呢?

只要将您的员工序列化为一个C字符串值,然后放入Redis,例如多亏了Kryo库。然后,您只需从Redis对其进行反序列化,以重建Java实例并将其与Sybase一起使用(另一种方法也适用)


可以使用任何将java序列化为C字符串(bytearray)或经典字符串的过程,因此您可以查看Jackson(从java和到java的JSON序列化)、JSON模式(生成JSON可序列化java类)、MessagePack(带压缩的JSON序列化)、FlatBuffers。。。即使是普通的传统Java序列化也可以使用。

我也可以以正常的方式序列化对象,那么为什么我要使用Kryo库呢?使用它有什么好处吗?@pan1490主要是序列化数据的大小,这可能是影响redis和性能的一个重要因素。尽管新的挑战者(见答案)已经出现,但Kryo在java世界已经建立了良好的基础。