springboot 使用 redis
springboot 自己是实现了一套 redis 缓存框架, 地址: https://www.cnblogs.com/huanggy/p/9473822.html, 通过配置即可轻松愉快地实现
某些特殊场合还是需要我们自己写入 redis, 首先需要在 springboot 项目整合 redis, 整合方法: https://www.cnblogs.com/huanggy/p/9473822.html
1, 注入 StringRedisTemplate
@Autowired
private StringRedisTemplate redis;
2, 通用操作
// 检查 key 是否存在, 返回布尔值
redis.hasKey("test");
// 通过 key 删除
redis.delete("test");
// 获取过期时间
redis.getExpire("test")
// 获取过期时间并换算成指定单位
redis.getExpire("test",TimeUnit.SECONDS)
// 设置过期时间
redis.expire("test",1000 , TimeUnit.SECONDS);
3, Value 操作
// 设置值
redis.opsForValue().set("userName","Marry");
// 设置值同时设置过期时间, 3600 秒
redis.opsForValue().set("userAge", 3600, TimeUnit.SECONDS);
// 获取值
redis.opsForValue().get("userName");
// 自减 1
redis.boundValueOps("age").increment(-1)
// 自加 1
redis.boundValueOps("age").increment(-1)
4, List 操作
// 添加(从右添加, 可以理解为从尾部添加)
redis.opsForList().rightPush("myList","1");
redis.opsForList().rightPush("myList","2");
redis.opsForList().rightPush("myList","3");
// 添加(从左添加, 可以理解为从头部添加)
redis.opsForList().leftPush("myList","0");
redis.opsForList().leftPush("myList","-1");
// 获取 list 所有元素(0 表示第一个, -1 表示所有)
redis.opsForList().range("myList",0,-1)
// 获取 list 前5个元素(0,5 前闭后开)
redis.opsForList().range("myList",0,5)
// 添加一个 list
List<String> strList = new ArrayList<>();
strList.add("4);
strList.add("5);
redis.opsForList().rightPushAll("MyList", strList);
// 删除最先进入 myList 的值为 "1"的元素(因为List 可以重复, 一个值可能会出现多次)
redis.opsForList().remove("myList",1, "1");
// 删除所有值是 "1" 的元素
redis.opsForList().remove("myList",0, "1");
5, Hash 操作
// 单独添加属性 姓名(后面的会覆盖前面的)
redis.opsForHash().put("user:10001", "userName", "Marry");
// 单独添加属性 年龄
redis.opsForHash().put("user:10001", "userAge", 20);
// 添加整个对象
Map<String, String> map = new HashMap<>();
map.put("userName", "Rose");
map.put("userAge", 20);
redis.opsForHash().putAll("user:10002", map);
// 获取 map 对象所有键值对
Map<Object, Object> map = redis.opsForHash().entries("user:10001");
// 获取 map 对象的某一个 key 的值
redis.opsForHash().get("userName:10001", "userName");
// 获取所有 key
Set<Object> set = redis.opsForHash().keys("user:10001");
// 获取所有 value
List<Object> list = redis.opsForHash().values("user:10001");
// 删除 map 对象的某一个 key-value
redis.opsForHash().get("userName:10002", "userAge");
springboot 使用 redis的更多相关文章
- 【springBoot】springBoot集成redis的key,value序列化的相关问题
使用的是maven工程 springBoot集成redis默认使用的是注解,在官方文档中只需要2步; 1.在pom文件中引入即可 <dependency> <groupId>o ...
- SpringBoot整合Redis、ApachSolr和SpringSession
SpringBoot整合Redis.ApachSolr和SpringSession 一.简介 SpringBoot自从问世以来,以其方便的配置受到了广大开发者的青睐.它提供了各种starter简化很多 ...
- SpringBoot集成redis的key,value序列化的相关问题
使用的是maven工程 springBoot集成redis默认使用的是注解,在官方文档中只需要2步; 1.在pom文件中引入即可 <dependency> <groupId>o ...
- springboot集成redis(mybatis、分布式session)
安装Redis请参考:<CentOS快速安装Redis> 一.springboot集成redis并实现DB与缓存同步 1.添加redis及数据库相关依赖(pom.xml) <depe ...
- Windows环境下springboot集成redis的安装与使用
一,redis安装 首先我们需要下载Windows版本的redis压缩包地址如下: https://github.com/MicrosoftArchive/redis/releases 连接打开后如下 ...
- SpringBoot系列——Redis
前言 Redis是一个缓存.消息代理和功能丰富的键值存储.StringBoot提供了基本的自动配置.本文记录一下springboot与redis的简单整合实例 官方文档:https://docs.sp ...
- SpringBoot整合Redis及Redis工具类撰写
SpringBoot整合Redis的博客很多,但是很多都不是我想要的结果.因为我只需要整合完成后,可以操作Redis就可以了,并不需要配合缓存相关的注解使用(如@Cacheable). ...
- SpringBoot 整合 Redis缓存
在我们的日常项目开发过程中缓存是无处不在的,因为它可以极大的提高系统的访问速度,关于缓存的框架也种类繁多,今天主要介绍的是使用现在非常流行的NoSQL数据库(Redis)来实现我们的缓存需求. Spr ...
- 带着新人学springboot的应用04(springboot+mybatis+redis 完)
对于缓存也说了比较多了,大家对下图这一堆配置类现在应该有些很粗略的认识了(因为我也就很粗略的认识了一下,哈哈!),咳,那么我们怎么切换这个缓存呢?(就是不用springboot提供的默认的Simple ...
- SpringBoot系列十:SpringBoot整合Redis
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:SpringBoot 整合 Redis 2.背景 Redis 的数据库的整合在 java 里面提供的官方工具包:jed ...
随机推荐
- [AI开发]Python+Tensorflow打造自己的计算机视觉API服务
"与其停留在概念理论层面,不如动手去实现一个简单demo ." ——鲁迅 没有源码都是耍流氓github 前言 目前提供AI开发相关API接口的公司有很多,国外如微软. ...
- [.net 面向对象程序设计深入](26)实战设计模式——策略模式 Strategy (行为型)
[.net 面向对象程序设计深入](26)实战设计模式——策略模式 Strategy (行为型) 1,策略模式定义 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换.策略模 ...
- 【RL-TCPnet网络教程】第26章 RL-TCPnet之DHCP应用
第26章 RL-TCPnet之DHCP应用 本章节为大家讲解RL-TCPnet的DHCP应用,学习本章节前,务必要优先学习第25章的DHCP基础知识.有了这些基础知识之后,再搞本章节会有事半功 ...
- Lock、ReentrantLock、ReentrantReadWriteLock区别
Lock Lock相比于synchronized具有更强大的功能,在jdk1.6之前,锁竞争激烈的情况下使用lock的实现类ReentrantLock甚至比synchronized具有更好的性能,1. ...
- Python程序员为什么一定要掌握Linux?
不少Python新手经常问到学Python到底需不需要学习Linux? Python不是支持Windows和Linux操作系统吗?能在Windows下开发为什么还要学习Linux? 问这样的问题的朋友 ...
- [Swift]LeetCode103. 二叉树的锯齿形层次遍历 | Binary Tree Zigzag Level Order Traversal
Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to ...
- apache(OS 10013)以一种访问权限不允许的方式做了一个访问套接字的尝试 ...
今天启动Apache时, 报了“(OS 10013)以一种访问权限不允许的方式做了一个访问套接字的尝试. : make_sock: could not bind to address 0.0.0.0: ...
- "人机"对战:电脑太简单了,我是射手 skr~skr~skr
9月17日,2018 世界人工智能大会在上海拉开帷幕.在 SAIL 榜单入围项目中,我看到了小爱同学.小马智行.微软小冰.腾讯觅影等等,这不仅让我大开了眼界,也不禁让我感慨 AI 的发展神速.犹记得去 ...
- .NET Core中的性能测试工具BenchmarkDotnet
背景介绍 之前一篇博客中,我们讲解.NET Core中的CSV解析库,在文章的最后,作者使用了性能基准测试工具BenchmarkDotNet测试了2个不同CSV解析库的性能,本篇我们来详细介绍一下Be ...
- Java开发需掌握的常用Linux命令(持续更新)
linux命令是对Linux系统进行管理的命令.对于Linux系统来说,无论是中央处理器.内存.磁盘驱动器.键盘.鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命 ...