Redis + Jedis + Spring (一)—— 配置&常规操做(GET SET DEL)接着须要快速的调研下基于spring框架下的Redis操做。java
相关连接:redis
Redis实战spring
Redis实战之Redis + Jedismongodb
Redis实战之征服 Redis + Jedis + Spring (一)app
Redis实战之征服 Redis + Jedis + Spring (二)框架
Redis实战之征服 Redis + Jedis + Spring (三)dom
前文有述,Spring提供了对于Redis的专门支持:spring-data-redis。此外,相似的还有:ide
我想大部分人对spring-data-Hadoop、spring-data-MongoDB、spring-data-redis以及spring-data-jpa表示关注。oop
spring把专门的数据操做独立封装在spring-data系列中,spring-data-redis天然是针对Redis的独立封装了。ui
当前版本1.0.1,主要是将jedis、jredis、rjc以及srp等Redis Client进行了封装,同时支持事务。已经让我垂涎欲滴了。固然,当前版本不支持Sharding。例如,前文曾经经过Jedis经过Client配置,实现一致性哈希,达到Sharding的目的。再一点,若是你早在spring1.x写过SpringJdbc的话,如今会以为似曾相识。
在通过一番思想斗争后,我最终放弃了Jedis原生实现,拥抱spring-data-redis了。为何?由于,我须要一个有事务机制的框架,一个不须要显式调用对象池操做的框架。这些spring-data-redis都解决了。至于Sharding,当前数据量要求还不大,期待Redis 3.0吧。
对象池配置:
工厂实现:
模板类:
是否是很像配置一个JdbcTemplate?其实就这么简单。
redis.properties配置以下:
当前只能用一个节点,期待Redis 3.0,Sharding吧!
Redis初来乍练,目前也就是用Memcached多些,只会这些基本的操做,在这里献丑了!
假定作一个UserDao:
User对象就这么两个属性:
实现这三个方法须要获得RedisTemplate的支持:
为何用序列化泛型?我存的数据都是可序列化的内容。还有更多为何?其实我也解答不了不少,边练边学,我弄通了必定告诉你!
作一个保存造做,使用Redis的SET命令:
这里是经过模板类,实现方法回调。在spring框架下,能够方便的控制事务,若是你研究过spring的dao源代码,对此必定熟悉。
这跟当年的SpringJdbcTemplate有那么一拼!
想要将对象从Redis中取出来,就麻烦一些,须要序列化key,最好判断下这个key是否存在,避免无用功。若是键值存在,须要对数据反序列化。
当年写SpringJdbc的时候,就是这样一个字段一个字段拼装的,甭提多累人。好吧,用Spring-Data-Redis,又让我回归了!
删除,就简单点,不过也须要这样折腾一会:
作个TestCase,暂时够我用了!
貌似少了update,也许之后操做Hash时,会用上。
看看控制台得到了什么:
好吧,能够开始用它来存点什么了!
相关连接:
Redis实战之征服 Redis + Jedis + Spring (一)