BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

SpringSource发布Spring Data Redis 1.0.0

| 作者 Kostis Kapelonis 关注 0 他的粉丝 ,译者 张龙 关注 14 他的粉丝 发布于 2012年1月30日. 估计阅读时间: 6 分钟 | AICon 关注机器学习、计算机视觉、NLP、自动驾驶等20+AI热点技术和最新落地成功案例。

近日,SpringSource 发布了用于将Redis轻松集成到Java应用中的开源的首个稳定版。Redis是个由VMWare/SpringSource资助的键值存储,为一些高性能网站如GitHub与StackOverflow等所用。

Redis是新近涌现的NoSQL数据存储之一,它关注于简单性与性能(整个数据集放在内存中)。你可以通过大量命令来访问Redis,与其他众多的键值存储不同,除了基本的字符串外,Redis还支持额外的数据类型。下面列出Redis的一些命令:

set my-news-site INFOQ
=>OK

get my-news-site
=>"INFOQ"

set my-counter 22
=>OK

get my-counter
=>"22"

incr my-counter
=>(integer) 23

get my-counter
=>"23"

虽然Redis本身是用ANSI C编写的,但其提供了各种编程语言的客户端,包括Tcl、Go、SmallTalk、C#与Java。要想与Java集成,你可以使用如下库:

这么多选择表明社区参与的健康程度,但选择恰当的库进行开发可能会比较浪费时间。每个库都拥有自己的一套API、配置与文档。选择其中一个,然后决定升级到其他库并不是那么直接的事情。

Spring Data Redis是Spring Data umbrella项目的一部分,旨在促进在Spring环境下(已经实现了JPA/Hibernate)非关系数据库的使用。其主要目标是保证Spring Java应用中的可移植性与一致性。在其最底层,Spring Data Redis在每个Java Redis库之上提供了一个基本的抽象层。开发者面对的是统一的Spring Redis API,并且可以轻松在多种实现间切换(比如说出于性能原因等)。

Spring Data Redis提供了RedisConnection,这是针对Redis实例(类似于JPA EntityManager或是Hibernate Session)的短暂、非线程安全的连接抽象;还提供了RedisConnectionFactory,它用于创建这种连接(类似于JPA EntityManagerFactory或是Hibernate SessionFactory)。这些抽象在共同的编程接口之上隐藏了实际的实现机制,考虑到了Spring所支持的Java Redis库的轻松移植。

RedisConnection包含了所有的Redis命令,但使用的却是Java语法。你可以使用底层的键保存/检索命令通过该接口获得Redis的全部能量。上面的示例可以使用RedisConnection提供的Java setgetincr命令编写。这么做最大的好处在于无论实际使用的是哪个Java库,这些命令能够保持一致。切换到不同的实现只需在Spring Context中修改单独一行配置即可:

  <!-- Jedis ConnectionFactory -->
  <bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"/>

  <!-- JRedis ConnectionFactory -->
  <bean id="connectionFactory" class="org.springframework.data.redis.connection.jredis.JredisConnectionFactory"/>

  <!-- RJC ConnectionFactory -->
  <bean id="connectionFactory" class="org.springframework.data.redis.connection.rjc.RjcConnectionFactory"/>

在高层,Spring Data Redis使用了RedisTemplate,它用于将整个Java对象直接存储到Redis中,而不仅仅是基本类型(比如说字符串与数字)。如下序列化方法支持都是开箱即用的:

  1. JDK序列化(默认方式)
  2. toString
  3. JSON(通过Jackson库)
  4. XML(通过Spring OXM模块

要想了解更多信息,请观看这个介绍Redis与Spring Data Redis的视频参考文档Javadocs。Spring Data Redis的源代码托管在GitHub上。

查看英文原文:SpringSource Releases Spring Data Redis 1.0.0

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

不知道效率如何 by Wang Frank

和现有的java客户端相比,除了和spring更好地集成,最关注效率了

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT