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 ...
随机推荐
- .NET Core 源码导航(按程序集链接)
System.*.dll/dotnetfx mscorlib.dll/dotnetclr Microsoft.AspNetCore.dll Microsoft.EntityFrameworkCore. ...
- Nuget私有服务搭建实战
最近更新了Nuget私有服务器的版本,之前是2.8.5,现在是2.11.3. Nuget服务器的搭建,这里有篇很详细的文章,跟着弄就好了: https://docs.microsoft.com/en- ...
- MySQL 分区建索引
200 ? "200px" : this.width)!important;} --> 介绍 mysql分区后每个分区成了独立的文件,虽然从逻辑上还是一张表其实已经分成了多张 ...
- [Swift]LeetCode424. 替换后的最长重复字符 | Longest Repeating Character Replacement
Given a string that consists of only uppercase English letters, you can replace any letter in the st ...
- [Reversing.kr] Easy ELF Writeup
IDA打开,看到main()函数,当sub_8048451() 返回1 是flag正确. 跟踪函数. 脚本: #!usr/bin/env python #!coding=utf-8 __author_ ...
- PyCharm无法激活
如果你激活软件遇到问题 (Pycharm.GoLand.idea.phpstorm.webstorm.sublime.ultraEdit.win10等等) 比如: 激活框提示Key is invali ...
- 使用 C# 代码实现拓扑排序
0.参考资料 尊重他人的劳动成果,贴上参考的资料地址,本文仅作学习记录之用. https://www.codeproject.com/Articles/869059/Topological-sorti ...
- ElasticSearch(1)---Mysql同步数据到ElSearch
ElasticSearch同步Mysql 先讲项目需求:对于资讯模块添加搜索功能 这个搜索功能我就是采用ElasticSearch实现的,功能刚实现完,所以写这篇博客做个记录,让自己在记录下整个步骤和 ...
- 一步一步教你如何用Python做词云
前言 在大数据时代,你竟然会在网上看到的词云,例如这样的. 看到之后你是什么感觉?想不想自己做一个? 如果你的答案是正确的,那就不要拖延了,现在我们就开始,做一个词云分析图,Python是一个当下很流 ...
- Visual Studio 2017中使用Libman管理客户端库
什么是Libman 微软在Visual Studio 2017 15.8版本中内嵌了一个新的工具Library Manager. Library Manager(简称Libman)是一个客户端库管理工 ...