使用spring-data-redis与redis集成,今天我们就通过例子来学习一下。当时间和耐心都已经变为奢侈,我们只能靠星座了解彼此。

spring与redis集成的实例

注意:这里我们测试的是安装在window本地的redis,版本为redis-3-2.0。测试的项目结构如下,主体有三个文件。

一、在pom.xml中添加spring-data-redis的依赖

  1. <dependency>
  2. <groupId>org.springframework.data</groupId>
  3. <artifactId>spring-data-redis</artifactId>
  4. <version>1.8.1.RELEASE</version>
  5. </dependency>
  6.  
  7. <dependency>
  8. <groupId>redis.clients</groupId>
  9. <artifactId>jedis</artifactId>
  10. <version>2.9.0</version>
  11. </dependency>

二、定义一个主的配置文件spring-redis.xml,供我们主程序加载使用

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
        xmlns:p="http://www.springframework.org/schema/p"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
                    http://www.springframework.org/schema/beans/spring-beans.xsd
                    http://www.springframework.org/schema/context
                    http://www.springframework.org/schema/context/spring-context.xsd">
  6.  
  7. <context:property-placeholder location="classpath:redis.properties"/>
  8. <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
  9. <property name="maxIdle" value="${redis.maxIdle}" />
  10. <property name="maxTotal" value="${redis.maxTotal}" />
  11. <property name="maxWaitMillis" value="${redis.maxWaitMillis}" />
  12. <property name="testOnBorrow" value="true" />
  13. </bean>
  14.  
  15. <bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
  16. p:host-name="${redis.host}"
  17. p:port="${redis.port}"
  18. p:pool-config-ref="jedisPoolConfig"/>
  19.  
  20. <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
  21. <property name="connectionFactory" ref="connectionFactory" />
  22. </bean>
  23.  
  24. </beans>

三、一些属性的配置,放在redis.properties文件中

  1. # Redis settings
  2. redis.host=localhost
  3. redis.port=
  4.  
  5. redis.maxIdle=
  6. redis.maxTotal=
  7. redis.maxWaitMillis=

这里面用到的jedis版本比较新,网上比较旧的配置属性是不一样的。

配置文件中千万要注意前后的空格问题,如果localhost有空格,那么会报找不到host的。而且这个错有点难以发现,关于空格的问题要注意一下。

四、主体测试类RedisMain.java

我们这里简单的演示一下,string数据的插入与取得过程。

  1. package com.linux.huhx.springRedis;
  2.  
  3. import org.springframework.context.support.ClassPathXmlApplicationContext;
  4. import org.springframework.dao.DataAccessException;
  5. import org.springframework.data.redis.connection.RedisConnection;
  6. import org.springframework.data.redis.core.RedisCallback;
  7. import org.springframework.data.redis.core.RedisTemplate;
  8. import org.springframework.data.redis.core.StringRedisTemplate;
  9. import org.springframework.data.redis.serializer.RedisSerializer;
  10.  
  11. /**
  12. * Created by huhx on 2017-07-18.
  13. */
  14. public class RedisMain {
  15. public static void main(String[] args) {
  16. ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring-redis.xml");
  17. final RedisTemplate redisTemplate = (StringRedisTemplate) context.getBean("redisTemplate");
  18.  
  19. // 存放key-value
  20. redisTemplate.execute(new RedisCallback<Boolean>() {
  21. @Override
  22. public Boolean doInRedis(RedisConnection connection) throws DataAccessException {
  23. RedisSerializer<String> serializer = redisTemplate.getStringSerializer();
  24. byte[] key = serializer.serialize("username");
  25. byte[] value = serializer.serialize("liuling");
  26. return connection.setNX(key, value);
  27. }
  28. });
  29.  
  30. // 得到key,得到value
  31. redisTemplate.execute(new RedisCallback<Boolean>() {
  32. @Override
  33. public Boolean doInRedis(RedisConnection connection) throws DataAccessException {
  34. RedisSerializer<String> serializer = redisTemplate.getStringSerializer();
  35. byte[] key = serializer.serialize("username");
  36. String username = serializer.deserialize(connection.get(key));
  37. System.out.println(username); // liuling
  38. return null;
  39. }
  40. });
  41. }
  42. }

五、在本地启动redis,运行RedisMain程序。

在redis-cli的控制台,可以看出已经成功插入数据到redis中。

友情链接

springdata----->spring集成redis(一)的更多相关文章

  1. Spring集成Redis集群(含spring集成redis代码)

    代码地址如下:http://www.demodashi.com/demo/11458.html 一.准备工作 安装 Redis 集群 安装参考: http://blog.csdn.net/zk6738 ...

  2. spring 集成 redis -- pub/sub

    redis除了常用的当做缓存外,还可以当做简单的消息中间件,实现消息发布订阅 spring集成redis,可以使用spring-data-redis 首先引入相关maven依赖(此处我spring相关 ...

  3. spring集成redis

    redis是一种非关系型数据库,与mongoDB不同的是redis是内存数据库,所以访问速度很快.常用作缓存和发布-订阅式的消息队列.redis官方没有提供windows版本的软件.windows版本 ...

  4. spring 集成redis客户端jedis(java)

    spring集成jedis简单实例   jedis是redis的java客户端,spring将redis连接池作为一个bean配置. “redis.clients.jedis.JedisPool”,这 ...

  5. spring集成redis,集成redis集群

    原文:http://chentian114.iteye.com/blog/2292323 1.通过spring-data-redis集成redis pom.xml依赖包 <project xml ...

  6. Spring集成Redis方案(spring-data-redis)(基于Jedis的单机模式)(待实践)

    说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点.并且会与一些低版本的Sp ...

  7. spring集成redis——主从配置以及哨兵监控

    Redis主从模式配置: Redis的主从模式配置是非常简单的,首先我们需要有2个可运行的redis环境: master node : 192.168.56.101 8887 slave node: ...

  8. Spring集成Redis缓存

    作者:13 GItHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 整合Redis 本来以为类似的Redis教程和整合代码应该会很多,因 ...

  9. Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十二)Spring集成Redis缓存

    作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 整合Redis 本来以为类似的Redis教程和整合代码应该会很多,因 ...

  10. Spring集成Redis使用注解

    转载:http://blog.csdn.net/u013725455/article/details/52129283 使用Maven项目,添加jar文件依赖: <project xmlns=& ...

随机推荐

  1. error LNK2019: 无法解析的外部符号 WinMain,该符号在函数 "int __cdecl invoke_main(void)”中被引用

    一,问题描述 MSVCRTD.lib(exe_winmain.obj) : error LNK2019: 无法解析的外部符号 WinMain,该符号在函数 "int __cdecl invo ...

  2. # rp2833板卡更新u-boot.bin的步骤

    1 建立tftpserver,并验证tftpserver的正确性(切记),并将PC主机网址设置192.168.18.105: 2 将u-boot-am.bincopy到tftpserver的目录下,并 ...

  3. Shell替换:Shell变量替换,命令替换,转义字符

    如果表达式中包含特殊字符,Shell 将会进行替换.例如,在双引号中使用变量就是一种替换,转义字符也是一种替换. 举个例子: 复制纯文本复制 #!/bin/bash a=10 echo -e &quo ...

  4. spark学习系列

    转自: http://www.cnblogs.com/magj2006/p/4316264.html spark 系列文章汇总 源码导读 spark 源码导读1 从spark启动脚本开始 spark ...

  5. 第二百八十四节,MySQL数据库-MySQL触发器

    MySQL数据库-MySQL触发器 对某个表进行[增/删/改]操作的前后如果希望触发某个特定的行为时,可以使用触发器,触发器用于定制用户对表的行进行[增/删/改]前后的行为. 1.创建触发器基本语法 ...

  6. Linux下密码抓取神器mimipenguin

    前有Mimikatz,今有mimipenguin,近日国外安全研究员huntergregal发布了工具mimipenguin,一款Linux下的密码抓取神器,可以说弥补了Linux下密码抓取的空缺. ...

  7. unity3d中的DontDestroyOnLoad来回切换出现多个实例问题

    在用Unity3D开发游戏中,我们会经常创建多个场景,但是在场景过度的时候,通常场景中的对象会被删除.所以Unity3D给了我们一个不删除前一个 场景中的某一个对象或者脚本的API,那就是“DontD ...

  8. poj 3414 Pots(广搜BFS+路径输出)

    转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents 题目链接:id=3414">http://poj.org/probl ...

  9. Oracle 11g 的bug?: aix 上,expdp 11.2.0.1 导出,impdp 11.2.0.3 导入,Interval 分区的 【Interval】 分区属性成了【N】

    如题: Oracle 11g 的bug?: aix 上,expdp 11.2.0.1 导出,impdp 11.2.0.3 导入,Interval 分区的 [Interval] 分区属性成了[N] 谨记 ...

  10. win8安装msi出现提示2503 2502的错误代码

    安装TortoiseSVN-1.9.5.27581-x64-svn-1.9.5.msi时出现错误,网上查看原因是权限不够造成的 解决方法: 解决方法: 1.鼠标移到桌面左下角->右键(或者直接: ...