SpringDataRedis入门到实战

2024-04-10 12:58

本文主要是介绍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

这篇关于SpringDataRedis入门到实战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/891127

相关文章

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

深度解析Spring Boot拦截器Interceptor与过滤器Filter的区别与实战指南

《深度解析SpringBoot拦截器Interceptor与过滤器Filter的区别与实战指南》本文深度解析SpringBoot中拦截器与过滤器的区别,涵盖执行顺序、依赖关系、异常处理等核心差异,并... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现