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

相关文章

Python在二进制文件中进行数据搜索的实战指南

《Python在二进制文件中进行数据搜索的实战指南》在二进制文件中搜索特定数据是编程中常见的任务,尤其在日志分析、程序调试和二进制数据处理中尤为重要,下面我们就来看看如何使用Python实现这一功能吧... 目录简介1. 二进制文件搜索概述2. python二进制模式文件读取(rb)2.1 二进制模式与文本

Django调用外部Python程序的完整项目实战

《Django调用外部Python程序的完整项目实战》Django是一个强大的PythonWeb框架,它的设计理念简洁优雅,:本文主要介绍Django调用外部Python程序的完整项目实战,文中通... 目录一、为什么 Django 需要调用外部 python 程序二、三种常见的调用方式方式 1:直接 im

SpringBoot整合 Quartz实现定时推送实战指南

《SpringBoot整合Quartz实现定时推送实战指南》文章介绍了SpringBoot中使用Quartz动态定时任务和任务持久化实现多条不确定结束时间并提前N分钟推送的方案,本文结合实例代码给大... 目录前言一、Quartz 是什么?1、核心定位:解决什么问题?2、Quartz 核心组件二、使用步骤1

SpringBoot整合AOP及使用案例实战

《SpringBoot整合AOP及使用案例实战》本文详细介绍了SpringAOP中的切入点表达式,重点讲解了execution表达式的语法和用法,通过案例实战,展示了AOP的基本使用、结合自定义注解以... 目录一、 引入依赖二、切入点表达式详解三、案例实战1. AOP基本使用2. AOP结合自定义注解3.

Java 队列Queue从原理到实战指南

《Java队列Queue从原理到实战指南》本文介绍了Java中队列(Queue)的底层实现、常见方法及其区别,通过LinkedList和ArrayDeque的实现,以及循环队列的概念,展示了如何高效... 目录一、队列的认识队列的底层与集合框架常见的队列方法插入元素方法对比(add和offer)移除元素方法

Spring Boot基于 JWT 优化 Spring Security 无状态登录实战指南

《SpringBoot基于JWT优化SpringSecurity无状态登录实战指南》本文介绍如何使用JWT优化SpringSecurity实现无状态登录,提高接口安全性,并通过实际操作步骤... 目录Spring Boot 实战:基于 JWT 优化 Spring Security 无状态登录一、先搞懂:为什

C++11中的包装器实战案例

《C++11中的包装器实战案例》本文给大家介绍C++11中的包装器实战案例,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录引言1.std::function1.1.什么是std::function1.2.核心用法1.2.1.包装普通函数1.2.

Nginx概念、架构、配置与虚拟主机实战操作指南

《Nginx概念、架构、配置与虚拟主机实战操作指南》Nginx是一个高性能的HTTP服务器、反向代理服务器、负载均衡器和IMAP/POP3/SMTP代理服务器,它支持高并发连接,资源占用低,功能全面且... 目录Nginx 深度解析:概念、架构、配置与虚拟主机实战一、Nginx 的概念二、Nginx 的特点

Spring IOC核心原理详解与运用实战教程

《SpringIOC核心原理详解与运用实战教程》本文详细解析了SpringIOC容器的核心原理,包括BeanFactory体系、依赖注入机制、循环依赖解决和三级缓存机制,同时,介绍了SpringBo... 目录1. Spring IOC核心原理深度解析1.1 BeanFactory体系与内部结构1.1.1

SpringCloud Stream 快速入门实例教程

《SpringCloudStream快速入门实例教程》本文介绍了SpringCloudStream(SCS)组件在分布式系统中的作用,以及如何集成到SpringBoot项目中,通过SCS,可... 目录1.SCS 组件的出现的背景和作用2.SCS 集成srping Boot项目3.Yml 配置4.Sprin