通过spring-data-redis操作Redis
一、操作String类型数据
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring/applicationContext-redis.xml")
public class RedisStrTest { @Autowired
private RedisTemplate redisTemplate; @Test
public void testSetString(){
//模板绑定存储的数据类型为String并存入数据: key是bookName value是Java基础
redisTemplate.boundValueOps("bookName").set("Java基础");
} @Test
public void testGetString(){
//模板绑定存储的数据类型为String并取数据:使用key bookName
String testStr = (String) redisTemplate.boundValueOps("bookName").get();
System.out.println(testStr);
} @Test
public void testDelString(){
//直接用模板根据key删除数据,删除后无数据查询返回null
redisTemplate.delete("bookName");
} //使用相同的key重新设置值便是更新
}
二、操作List类型数据
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring/applicationContext-redis.xml")
public class RedisListTest { @Autowired
private RedisTemplate redisTemplate; @Test
public void testSetList(){
//模板绑定存储的数据类型为List并存入数据:key是myList,List的数据类型
redisTemplate.boundListOps("myList").leftPush("java");
redisTemplate.boundListOps("myList").leftPush("c#");
redisTemplate.boundListOps("myList").leftPush("python");
} @Test
public void testGetList(){
//模板绑定存储的数据类型为List并取数据:key是myList,rang中0是开始,-1是全部
List myList = redisTemplate.boundListOps("myList").range(0, -1);
myList.stream().forEach(System.out::println);
//取list中的一个数据 :先进先出(相当于弹出-删除了)
//String myList = (String) redisTemplate.boundListOps("myList").rightPop();
//System.out.println(myList); //java
} @Test
public void testDelList(){
//直接用模板根据key删除数据(删除整个集合)
redisTemplate.delete("myList");
//指定删除list的数据 :删除一个java
//redisTemplate.boundListOps("myList").remove(1,"java");
} //使用相同的key重新设置值便是更新
}
三、操作Set类型数据
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring/applicationContext-redis.xml")
public class RedisSetTest { @Autowired
private RedisTemplate redisTemplate; @Test
public void testSetValue(){
//模板绑定存储的数据类型为Set并存入数据: key是mySet
redisTemplate.boundSetOps("mySet").add("Java");
redisTemplate.boundSetOps("mySet").add("c#");
redisTemplate.boundSetOps("mySet").add("python");
redisTemplate.boundSetOps("mySet").add("html");
} @Test
public void testGetValue(){
//模板绑定存储的数据类型为Set并取数据:使用key为 mySet
Set mySet = redisTemplate.boundSetOps("mySet").members();
mySet.stream().forEach(System.out::println);
} @Test
public void testDelValue(){
//直接用模板根据key删除数据,删除整个Set集合
redisTemplate.delete("mySet");
//redisTemplate.boundSetOps("mySet").remove("html");
} //使用相同的key重新设置值便是更新
}
四、操作ZSet类型数据
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring/applicationContext-redis.xml")
public class RedisZSetTest { @Autowired
private RedisTemplate redisTemplate; //ZSet集合有序,数据有分值
@Test
public void testSetValue(){
//模板绑定存储的数据类型为Set并存入数据: key是myZSet
redisTemplate.boundZSetOps("myZSet").add("Java",15);
redisTemplate.boundZSetOps("myZSet").add("c#",55);
redisTemplate.boundZSetOps("myZSet").add("python",25);
redisTemplate.boundZSetOps("myZSet").add("html",45);
} @Test
public void testGetValue(){
//1.模板绑定存储的数据类型为ZSet并取数据:使用key为 myZSet(取一定分值范围的)
//Set myZSet = redisTemplate.boundZSetOps("myZSet").rangeByScore(20, 50);
//myZSet.stream().forEach(System.out::println);
//2.取全部的
//Set myZSet = redisTemplate.boundZSetOps("myZSet").range(0, -1);
//myZSet.stream().forEach(System.out::println);
//3.取数据,带分值
Set<DefaultTypedTuple> myZSet = redisTemplate.boundZSetOps("myZSet").rangeWithScores(0, -1);
for (DefaultTypedTuple defaultTypedTuple : myZSet) {
System.out.println(defaultTypedTuple.getValue());//数据
System.out.println(defaultTypedTuple.getScore());//分值
}
} @Test
public void testDelValue(){
//1.直接用模板根据key删除数据,删除整个ZSet集合
//redisTemplate.delete("myZSet");
//2.删除部分数据
redisTemplate.boundZSetOps("myZSet").removeRangeByScore(15,25);
} //使用相同的key重新设置值便是更新
}
五、操作Hash类型数据
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring/applicationContext-redis.xml")
public class RedisHashTest { @Autowired
private RedisTemplate redisTemplate; @Test
public void testSetHash(){
//模板绑定存储的数据类型为Hash并存入数据: key是myHash value是{后端:Java}等键值对
redisTemplate.boundHashOps("myHash").put("后端","Java");
redisTemplate.boundHashOps("myHash").put("前端","html");
redisTemplate.boundHashOps("myHash").put("数据库","mysql");
} @Test
public void testGetHash(){
//模板绑定存储的数据类型为Hash并取数据:使用key为 myHash,获取键的集合
//Set myHash = redisTemplate.boundHashOps("myHash").keys();
//myHash.stream().forEach(System.out::println);
//获取value的集合(值可重复,所以是list)
//List myHash = redisTemplate.boundHashOps("myHash").values();
//myHash.stream().forEach(System.out::println);
//使用myHash这个key获取到Hash并用键获取值
String s = (String) redisTemplate.boundHashOps("myHash").get("后端");
System.out.println(s);
} @Test
public void testDelHash(){
//直接用模板根据key删除数据,删除整个Hash集合
//redisTemplate.delete("myHash");
redisTemplate.boundHashOps("myHash").delete("后端");
} //使用相同的key重新设置值便是更新
}
通过spring-data-redis操作Redis的更多相关文章
- 使用Spring Data Redis操作Redis(集群版)
说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点.并且会与一些低版本的Sp ...
- spring data jpa 操作pipelinedb 的continuous view 与stream
一. 由于pipelinedb是postgreSQL的扩展,因此相关依赖于配置都合集成postgreSQL是一样的. springboot + spring data jpa + postgreSQL ...
- Spring Boot使用Spring Data Redis操作Redis(单机/集群)
说明:Spring Boot简化了Spring Data Redis的引入,只要引入spring-boot-starter-data-redis之后会自动下载相应的Spring Data Redis和 ...
- 使用Spring Data Redis操作Redis(单机版)
说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点.并且会与一些低版本的Sp ...
- Spring 使用RedisTemplate操作Redis
首先添加依赖: <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> < ...
- Spring Data Solr操作solr的简单案例
Spring Data Solr简介 虽然支持任何编程语言的能力具有很大的市场价值,你可能感兴趣的问题是:我如何将Solr的应用集成到Spring中?可以,Spring Data Solr就是为了方便 ...
- 通过Spring Data Neo4J操作您的图形数据库
在前面的一篇文章<图形数据库Neo4J简介>中,我们已经对其内部所使用的各种机制进行了简单地介绍.而在我们尝试对Neo4J进行大版本升级时,我发现网络上并没有任何成型的样例代码以及简介,而 ...
- Spring Boot (五)Spring Data JPA 操作 MySQL 8
一.Spring Data JPA 介绍 JPA(Java Persistence API)Java持久化API,是 Java 持久化的标准规范,Hibernate是持久化规范的技术实现,而Sprin ...
- [Reprinted] 使用Spring Data Redis操作Redis(一) 很全面
Original Address: http://blog.csdn.net/albertfly/article/details/51494080
- 使用WeihanLi.Redis操作Redis
WeihanLi.Redis Intro StackExchange.Redis 扩展,更简单的泛型操作,并提供一些的适用于业务场景中的扩展 基于 Redis 的五种数据类型扩展出了一些应用: Str ...
随机推荐
- [linux]centos7.4上安装MySQL-8.0.11【完美安装】
版本声明 centos7.4 MySQL-8.0.11 1.我用的阿里云的虚拟主机,刚从windows换到linux,需要装下常用工具 #安装下sz rz常用到上传下载的命令 yum install ...
- java中lamda表达式用法
map-> list Map<String, Object> map = new HashMap<>(); List<String> list = new A ...
- Django笔记&教程 总目录
本篇博客只有目录,正文内容在目录章节链接的博客里 除目录本身外,没有链接的章节,说明内容还没开始编辑 本项目笔记仍在不断创作中,还有些内容会根据自身所学不断更新完善 本项目主要为markdwon文档, ...
- 论文解读(LLE)《Nonlinear Dimensionality Reduction by Locally Linear Embedding》and LLE
论文题目:<Nonlinear Dimensionality Reduction by Locally Linear Embedding > 发表时间:Science 2000 论文地址 ...
- [atAGC051C]Flipper
对于这一个平面用$a_{x,y}$来表示,即$(x,y)$为黑色则$a_{x,y}=1$,否则$a_{x,y}=0$,之后定义$a$能生成$b$当且仅当$a$能够通过若干次操作后得到$b$ 令$p_{ ...
- c语言是如何处理函数调用的?
1. 要编译的测试代码: int plus(int x, int y) { return x + y; } int main(void) { return plus(3, 4); } 2. main ...
- 9.1 k8s pod版本更新流程及命令行实现升级与回滚
1.创建 Deployment root@k8-deploy:~/k8s-yaml/controllers/deployments# vim nginx-deployment.yaml apiVers ...
- Docker namespace,cgroup,镜像构建,数据持久化及Harbor安装、高可用配置
1.Docker namespace 1.1 namespace介绍 namespace是Linux提供的用于分离进程树.网络接口.挂载点以及进程间通信等资源的方法.可以使运行在同一台机器上的不同服务 ...
- 查找 Search
如果值域小一点. 那么我们有一个很精妙的做法. 分块完维护数字\(cnt\),和一个\(bitset\)信息. 然而小不得. 那么我们考虑维护后缀\(nxt_i\),表示第\(i\)位后,最近的\(a ...
- SSRF的原理和防范
背景 最近做的安全测评主要是SSRF,发现自己在这一块有挺大知识盲点,抓紧补一下. 1.介绍 SSRF(Server-Side Request Forgery:服务器端请求伪造),是一种攻击者利用服务 ...