5.Spring Data Redis入门实例
准备工作
(1)构建Maven工程 SpringDataRedisDemo
(2)引入Spring相关依赖、引入JUnit依赖 (内容参加其它工程)
(3)引入Jedis和SpringDataRedis依赖
pom.xml
4.0.0
com.ldc.org
SpringDataRedisDemo
0.0.1-SNAPSHOT
<!-- 集中定义依赖版本号 -->
<properties>
<junit.version>4.12</junit.version>
<spring.version>4.2.4.RELEASE</spring.version>
</properties>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
</dependency>
<!-- 缓存 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.8.1</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.7.2.RELEASE</version>
</dependency>
</dependencies>
(4)在src/main/resources下创建properties文件夹,建立redis-config.properties
redis.host=127.0.0.1
redis.port=6379
redis.pass=
redis.database=0
redis.maxIdle=300
redis.maxWait=3000
redis.testOnBorrow=true
(5)在src/main/resources下创建spring文件夹 ,创建applicationContext-redis.xml
<context:property-placeholder location=“classpath*:properties/*.properties” />
maxIdle :最大空闲数 maxWaitMillis:连接时的最大等待毫秒数 testOnBorrow:在提取一个jedis实例时,是否提前进行验证操作;如果为true,则得到的jedis实例均是可用的; 6.值类型操作 package test;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4Cla***unner;
@RunWith(SpringJUnit4Cla***unner.class)
@ContextConfiguration(locations=“classpath:spring/applicationContext-redis.xml”)
public class TestValue {
@Autowired
private RedisTemplate redisTemplate;
@Test
public void setValue() {
redisTemplate.boundValueOps("name").set("ldc");
}
@Test
public void getValue() {
String string=(String) redisTemplate.boundValueOps("name").get();
System.out.println(string);
}
@Test
public void deleteValue() {
redisTemplate.delete("name");
}
}
7. Set类型操作
package test;
import java.util.Set;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4Cla***unner;
@RunWith(SpringJUnit4Cla***unner.class)
@ContextConfiguration(locations=“classpath:spring/applicationContext-redis.xml”)
public class TestSet {
@Autowired
private RedisTemplate redisTemplate;
@Test
public void setValue() {
//存进去和顺序无关
redisTemplate.boundSetOps("nameSet").add("曹操");
redisTemplate.boundSetOps("nameSet").add("刘备");
redisTemplate.boundSetOps("nameSet").add("孙权");
}
@Test
public void getValue() {
Set set=redisTemplate.boundSetOps("nameSet").members();
System.out.println(set);
}
@Test
public void removeValue() {
//单独的移除其中一个元素
redisTemplate.boundSetOps("nameSet").remove("孙权");
}
@Test
public void delete() {
//移除全部
redisTemplate.delete("nameSet");
}
}
8.List类型操作
package test;
import java.util.List;
import java.util.Set;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4Cla***unner;
@RunWith(SpringJUnit4Cla***unner.class)
@ContextConfiguration(locations=“classpath:spring/applicationContext-redis.xml”)
public class TestList {
@Autowired
private RedisTemplate redisTemplate;
/**
* 右压栈
*/
@Test
public void setValue1() {
redisTemplate.boundListOps("nameList1").rightPush("刘备");
redisTemplate.boundListOps("nameList1").rightPush("关羽");
redisTemplate.boundListOps("nameList1").rightPush("张飞");
}
/**
* 显示右压栈的值
*/
@Test
public void getValue1() {
List list=redisTemplate.boundListOps("nameList1").range(0, 10);
System.out.println(list);
}
/**
* 左压栈
*/
@Test
public void setValue2() {
redisTemplate.boundListOps("nameList2").leftPush("刘备");
redisTemplate.boundListOps("nameList2").leftPush("关羽");
redisTemplate.boundListOps("nameList2").leftPush("张飞");
}
/**
* 显示左压栈的值
*/
@Test
public void getValue2() {
List list=redisTemplate.boundListOps("nameList2").range(0, 10);
System.out.println(list);
}
/**
* 按照索引查询
*/
@Test
public void searchByIndex() {
String string=(String) redisTemplate.boundListOps("nameList2").index(1);
System.out.println(string);
}
/**
* 删除其中一个元素
*/
@Test
public void removeValue() {
//单独的移除其中一个元素,第一个参数是移除的个数,不是位置的下表
redisTemplate.boundSetOps("nameList1").remove(1,"关羽");
}
/**
* 删除整个List集合
*/
@Test
public void delete() {
//单独的移除其中一个元素,第一个参数是移除的个数,不是位置的下表
redisTemplate.delete("nameList1");
}
}
9.Hash类型操作
package test;
import java.util.List;
import java.util.Set;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4Cla***unner;
@RunWith(SpringJUnit4Cla***unner.class)
@ContextConfiguration(locations=“classpath:spring/applicationContext-redis.xml”)
public class TestHash {
@Autowired
private RedisTemplate redisTemplate;
/**
* 存值
*/
@Test
public void setValue() {
redisTemplate.boundHashOps("nameHash").put("a", "唐僧");
redisTemplate.boundHashOps("nameHash").put("b", "悟空");
redisTemplate.boundHashOps("nameHash").put("c", "八戒");
redisTemplate.boundHashOps("nameHash").put("d", "沙僧");
}
/**
* 取所有key
*/
@Test
public void getKey() {
Set keys=redisTemplate.boundHashOps("nameHash").keys();
System.out.println(keys);
}
/**
* 取所有value
*/
@Test
public void getValue() {
List list=redisTemplate.boundHashOps("nameHash").values();
System.out.println(list);
}
/**
* 根据key取值
*/
@Test
public void searchValueByKey() {
String string=(String) redisTemplate.boundHashOps("nameHash").get("b");
System.out.println(string);
}
/**
* 移除某个小key的值
*/
@Test
public void removeValueByKey() {
redisTemplate.boundHashOps("nameHash").delete("c");
}
/**
* 删除其中一个元素
*/
@Test
public void removeValue() {
//单独的移除其中一个元素,第一个参数是移除的个数,不是位置的下表
redisTemplate.boundSetOps("nameList1").remove(1,"关羽");
}
/**
* 删除整个List集合
*/
@Test
public void delete() {
//单独的移除其中一个元素,第一个参数是移除的个数,不是位置的下表
redisTemplate.delete("nameList1");
}
}
龙华大道1号http://www.kinghill.cn/LongHuaDaDao1Hao/index.html