1 先看pom.xml

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.6.2.RELEASE</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>

2 创建 redis.properties

# Redis settings
redis.host=192.168.1.88
redis.port=6379
redis.timeOut=10000
# redis.pass= redis.maxIdle=300
redis.maxTotal=1024
redis.maxWaitMillis=10000
redis.testOnBorrow=true

3 applicationContext.xml

两段配置都要

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

        <property name="locations">
<list>
<value>classpath:redis/redis.properties</value>
</list>
</property>
</bean>
<bean name="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxIdle" value="${redis.maxIdle}" />
<property name="maxTotal" value="${redis.maxTotal}" />
<property name="maxWaitMillis" value="${redis.maxWaitMillis}" />
<property name="testOnBorrow" value="${redis.testOnBorrow}" />
</bean> <bean name="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg index="0" ref="jedisPoolConfig" />
<constructor-arg index="1" value="${redis.host}" />
<constructor-arg index="2" value="${redis.port}" />
<constructor-arg index="3" value="${redis.timeOut}" />
</bean>
<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<property name="hostName" value="${redis.host}" />
<property name="port" value="${redis.port}" />
<!-- <property name="password" value="${redis.password}" /> -->
<property name="poolConfig" ref="jedisPoolConfig" />
</bean>
<bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate" p:connection-factory-ref="jedisConnectionFactory" />

4 创建Test.cs

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/applicationContext.xml")
public class RedisTest {
@Autowired
StringRedisTemplate redisTemplate; @Test
public void Test() throws Exception{
redisTemplate.opsForValue().set("a","test");
String q = redisTemplate.opsForValue().get("a")+" hello";
System.out.println(q);
}
}

比较 RedisTemplate 和 StringRedisTemplate的相关信息:

RedisTemplate

方法 子API接口 描述
opsForValue() ValueOperations<K,V> 描述具有简单值的条目
opsForList() ListOperations<K,V> 操作具有list值的条目
opsForSet() SetOperations<K,V> 操作具有set值的条目
opsForZSet() ZSetOperations<K,V> 操作具有ZSet值(排序的set)的条目
opsForHash() HashOperations<K,HK,VH> 操作具有hash值的条目
boundValueOps(K) BoundValueOperations<K,V> 以绑定指定key的方式,操作具有简单值的条目
boundListOps(K) BoundListOperations<K,V> 以绑定指定key的方式,操作具有list的条目
boundSetOps(K) BoundSetOperations<K,V> 以绑定指定key的方式,操作具有set的条目
boundZSet(K) BoundZSetOperations<K,V> 以绑定指定key的方式,操作具有ZSet(排序的set)的条目
boundHashOps(K) BoundHashOperations<K,V> 以绑定指定key的方式,操作具有hash值的条目

StringRedisTemplate

方法 子API接口 描述
opsForValue() ValueOperations<String,String> 描述具有简单值的条目
opsForList() ListOperations<String,String> 操作具有list值的条目
opsForSet() SetOperations<String,String> 操作具有set值的条目
opsForZSet() ZSetOperations<String,String> 操作具有ZSet值(排序的set)的条目
opsForHash() HashOperations<String,Object,Object> 操作具有hash值的条目
boundValueOps(K) BoundValueOperations<String,String> 以绑定指定key的方式,操作具有简单值的条目
boundListOps(K) BoundListOperations<String,String> 以绑定指定key的方式,操作具有list的条目
boundSetOps(K) BoundSetOperations<String,String> 以绑定指定key的方式,操作具有set的条目
boundZSet(K) BoundZSetOperations<String,String> 以绑定指定key的方式,操作具有ZSet(排序的set)的条目
boundHashOps(K) BoundHashOperations<String,String> 以绑定指定key的方式,操作具有hash值的条目

常用方法:

转载:http://blog.csdn.net/u011911084/article/details/53435172

  1. stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS);//向redis里存入数据和设置缓存时间
  1. stringRedisTemplate.boundValueOps("test").increment(-1);//val做-1操作
  1. stringRedisTemplate.opsForValue().get("test")//根据key获取缓存中的val
  1. stringRedisTemplate.boundValueOps("test").increment(1);//val +1
  1. stringRedisTemplate.getExpire("test")//根据key获取过期时间
  1. stringRedisTemplate.getExpire("test",TimeUnit.SECONDS)//根据key获取过期时间并换算成指定单位
  1. stringRedisTemplate.delete("test");//根据key删除缓存
  1. stringRedisTemplate.hasKey("546545");//检查key是否存在,返回boolean值
  1. stringRedisTemplate.opsForSet().add("red_123", "1","2","3");//向指定key中存放set集合
  1. stringRedisTemplate.expire("red_123",1000 , TimeUnit.MILLISECONDS);//设置过期时间
  1. stringRedisTemplate.opsForSet().isMember("red_123", "1")//根据key查看集合中是否存在指定数据
  1. stringRedisTemplate.opsForSet().members("red_123");//根据key获取set集合

Spring StringRedisTemplate 配置的更多相关文章

  1. Redis篇之操作、lettuce客户端、Spring集成以及Spring Boot配置

    Redis篇之操作.lettuce客户端.Spring集成以及Spring Boot配置 目录 一.Redis简介 1.1 数据结构的操作 1.2 重要概念分析 二.Redis客户端 2.1 简介 2 ...

  2. Spring Boot -- 配置切换指南

    一般在一个项目中,总是会有好多个环境.比如: 开发环境 -> 测试环境 -> 预发布环境 -> 生产环境 每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一 ...

  3. spring 定时任务配置

    1.(易)如何在spring中配置定时任务? spring的定时任务配置分为三个步骤: 1.定义任务 2.任务执行策略配置 3.启动任务 (程序中一般我们都是到过写的,直观些) 1.定义任务 < ...

  4. 两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz

    1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 import java.util.TimerTask; public class EmailReportT ...

  5. Spring Cloud 配置服务

    Spring Cloud 配置服务 1. 配置服务简介 产生背景: 传统开发中,我们通常是将系统的业务无关配置(数据库,缓存服务器)在properties中配置,在这个文件中不会经常改变,但随着系统规 ...

  6. spring事务配置详解

    一.前言 好几天没有在对spring进行学习了,由于这几天在赶项目,没有什么时间闲下来继续学习,导致spring核心架构详解没有继续下去,在接下来的时间里面,会继续对spring的核心架构在继续进行学 ...

  7. spring MVC配置详解

    现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...

  8. Spring mvc 配置详解

    现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过 ...

  9. Spring动态配置多数据源

    Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性.而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时 ...

随机推荐

  1. linux中断源码分析 - 软中断(四)

    本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 在上一篇文章中,我们看到中断实际分为了两个部分,俗称就是一部分是硬中断,一部分是软中断.软中断是专门用于处理中断 ...

  2. 画线函数Glib_Line算法的研究

      在这里首先先简单把我对函数的功能的理解阐述一下,方便后面的分析:Glib_Line函数实现的功能是通过参数给定(x1,y1,x2,y2,color),来确定起点(x1,y1)和终点(x2,y2)两 ...

  3. c# 获取文件本身的哈希值

    1. 哈希值是什么 我个人认为,哈希值是一个统称,也就是经过加密算法后得出的长度较短.位数固定的输出序列即散列值,这个哈希值是一个凭证,一个数字签名之类的,唯一对应你加密之前的东西,这都是我自个儿觉得 ...

  4. JSON WEB TOKEN,简单谈谈TOKEN的使用及在C#中的实现

    十年河东,十年河西,莫欺少年穷. 学无止境,精益求精. 突然发现整个十月份自己还没有写一篇博客......哎,说出来都是泪啊,最近加班实在实在实在是太多了,真的没有多余的时间写博客.这不,今天也在加班 ...

  5. EZ 2018 07 06 NOIP模拟赛

    又是慈溪那边给的题目,这次终于没有像上次那样尴尬了, T1拿到了较高的暴力分,T2没写炸,然后T3写了一个优雅的暴力就203pts,Rank3了. 听说其它学校的分数普遍100+,那我们学校还不是强到 ...

  6. [Oracle]如何取Control File 的Dump

    ]如何取Control File 的Dump: SQL> alter session set events 'immediate trace name controlf level 3';SQL ...

  7. maven依赖的描述

    maven的坐标和依赖 坐标和依赖,主要涉及的就是pom文件的头部和<dependencies>标签部分(1)pom文件的头部 这里头部不是指pom文件的开头<project> ...

  8. android开发之Tabhost刷新

    在android中,使用tabHost的时候,如果tab被点击,该tab所对应的activity被加载了,从别的tab切换回来的时候,activity不会再次被创建了(onCreate),所以要想每次 ...

  9. 个人项目Individual Project:n皇后问题

     源码的github链接: https://github.com/luhan420/test/tree/master 1.需求分析 在本次的课程设计中,用到的知识点主要有:类.函数.选择结构里的条件语 ...

  10. The Contest CodeForces - 813A (思维)

    Pasha is participating in a contest on one well-known website. This time he wants to win the contest ...