一、操作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重新设置值便是更新
}

原文链接:Redis和SpringDataRedis

通过spring-data-redis操作Redis的更多相关文章

  1. 使用Spring Data Redis操作Redis(集群版)

    说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点.并且会与一些低版本的Sp ...

  2. spring data jpa 操作pipelinedb 的continuous view 与stream

    一. 由于pipelinedb是postgreSQL的扩展,因此相关依赖于配置都合集成postgreSQL是一样的. springboot + spring data jpa + postgreSQL ...

  3. Spring Boot使用Spring Data Redis操作Redis(单机/集群)

    说明:Spring Boot简化了Spring Data Redis的引入,只要引入spring-boot-starter-data-redis之后会自动下载相应的Spring Data Redis和 ...

  4. 使用Spring Data Redis操作Redis(单机版)

    说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点.并且会与一些低版本的Sp ...

  5. Spring 使用RedisTemplate操作Redis

    首先添加依赖: <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> < ...

  6. Spring Data Solr操作solr的简单案例

    Spring Data Solr简介 虽然支持任何编程语言的能力具有很大的市场价值,你可能感兴趣的问题是:我如何将Solr的应用集成到Spring中?可以,Spring Data Solr就是为了方便 ...

  7. 通过Spring Data Neo4J操作您的图形数据库

    在前面的一篇文章<图形数据库Neo4J简介>中,我们已经对其内部所使用的各种机制进行了简单地介绍.而在我们尝试对Neo4J进行大版本升级时,我发现网络上并没有任何成型的样例代码以及简介,而 ...

  8. Spring Boot (五)Spring Data JPA 操作 MySQL 8

    一.Spring Data JPA 介绍 JPA(Java Persistence API)Java持久化API,是 Java 持久化的标准规范,Hibernate是持久化规范的技术实现,而Sprin ...

  9. [Reprinted] 使用Spring Data Redis操作Redis(一) 很全面

    Original Address: http://blog.csdn.net/albertfly/article/details/51494080

  10. 使用WeihanLi.Redis操作Redis

    WeihanLi.Redis Intro StackExchange.Redis 扩展,更简单的泛型操作,并提供一些的适用于业务场景中的扩展 基于 Redis 的五种数据类型扩展出了一些应用: Str ...

随机推荐

  1. ARM汇编解决阶乘以及大小写转换

    环境以及硬件 一.硬件仿真基于 SAMSUNG's S3C44B0X 16/32-bit RISC microprocessor 芯片,仿真器为 J-LINK 二.编写指令软件为 Integrated ...

  2. Part 17 Consuming ASP NET Web Service in AngularJS using $http

    Here is what we want to do1. Create an ASP.NET Web service. This web service retrieves the data from ...

  3. Vue组件传值prop验证方式

    在Vue组件开发过程中,父组件要经常给子组件传递数据,在传递数据的过程中,子组件可以使用prop来接收父组件传递的值,同时呢,我们可以为组件的 prop 指定验证要求,例如你知道的这些类型.如果有一个 ...

  4. [cf1240F]Football

    (事实上,总是可以让每一场都比,因此$w_{i}$并没有意义) 当$k=2$时,有如下做法-- 新建一个点,向所有奇度数的点连边,并对得到的图求欧拉回路,那么只需要将欧拉回路上的边交替染色,即可保证$ ...

  5. [hdu7023]Yet Another Matrix Problem

    关于$f(x)$的条件,将$C=A\times B$代入,即$\sum_{i=1}^{n}\sum_{j=1}^{n}\sum_{k=1}^{r}A_{i,k}B_{k,j}=x$ 调换枚举顺序,即$ ...

  6. Docker之容器化学习之路v20.10.3

    Docker概述 **本人博客网站 **IT小神 www.itxiaoshen.com Docker文档官网 Docker是一个用于开发.发布和运行应用程序的开放平台.Docker使您能够将应用程序与 ...

  7. Python+selenium之弹窗

  8. C++ 编译错误记录

    C++ _ZSt28__throw_bad_array_new_lengthv1 编译错误 出现场景:类似代码 vector<vector<int>> grid = {{1, ...

  9. CF814E An unavoidable detour for home

    考虑有每个最短路只有一条. 那么我们建出最短路树后,显然所有的非树边都是同层之间的横叉边. 那么我们考虑设\(f(i,j,k,z)\)为我们考虑到了第\(i\)个点,此时他被我们分配到了\(p\)层, ...

  10. Linux-各种姿势(less\vi等)打开各种类型的文件(txt/csv/xlsx等)出现不能打开(全乱码、部分乱码、二进制文件等)的问题

    (一)linux各种中文乱码解决办法整理 远程登录服务器用vim在终端下编辑查看文件经常会遇见各种中文乱码问题. 做如下设置可基本解决vim中文乱码问题,首先查看系统对中文的支持locale -a | ...