SpringDataRedis入门到实战

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

<?xml version="1.0" encoding="UTF-8"?>

<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

发布了0 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ting2909/article/details/104197390