SpringBoot 操作 Redis

导入对应版本的依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

修改配置文件中的信息

spring:redis:host: 127.0.0.1port: 8888

注意: 我这里 xshell 中将 redis 的端口映射到了本机的 8888 端口, 你们映射了啥, 这里的 port 就写啥
在这里插入图片描述


写代码

SpringBoot 是通过 redisTemplate 对象 对 Redis 进行操作
redisTemplate 对 Redis 中的每个类型进行了封装, 使用对应类型的对应方法要先选择操作类型
在这里插入图片描述


String 类型

@Autowired
privateStringRedisTemplate redisTemplate;@RequestMapping("/testString")
public void testString() {redisTemplate.opsForValue(). set("key1", "value1");redisTemplate.opsForValue(). set("key2", "value2");redisTemplate.opsForValue(). set("key3", "value3");System.out.println(redisTemplate.opsForValue().get("key1"));System.out.println(redisTemplate.opsForValue().get("key2"));System.out.println(redisTemplate.opsForValue().get("key3"));
}

List 类型

@Autowired
private StringRedisTemplate redisTemplate;@RequestMapping("/testList")
public void testList() {//删库操作redisTemplate.execute((RedisConnection connection) -> {// execute 要求我们的回调方法中, 必须返回一个内容// 该回调返回的对象, 就是 execute 返回的内容connection.flushAll();return null;});redisTemplate.opsForList().leftPush("key", "val");redisTemplate.opsForList().leftPush("key", "val2");redisTemplate.opsForList().leftPush("key", "val3");System.out.println(redisTemplate.opsForList().rightPop("key"));System.out.println(redisTemplate.opsForList().rightPop("key"));System.out.println(redisTemplate.opsForList().rightPop("key"));
}

Set 类型

@Autowired
private StringRedisTemplate redisTemplate;@RequestMapping("testSet")
public void testSet() {redisTemplate.execute((RedisConnection connection) -> {connection.flushAll();return null;});redisTemplate.opsForSet().add("key", "111", "222","333");System.out.println(redisTemplate.opsForSet().members("key"));System.out.println(redisTemplate.opsForSet().isMember("key", "111"));System.out.println(redisTemplate.opsForSet().isMember("key", "444"));System.out.println(redisTemplate.opsForSet().size("key"));redisTemplate.opsForSet().remove("key", "111","222");System.out.println(redisTemplate.opsForSet().members("key"));
}

Hash 类型

@Autowired
private StringRedisTemplate redisTemplate;@RequestMapping("/testHash")
public void testHash() {redisTemplate.execute((RedisConnection connection) -> {connection.flushAll();return null;});redisTemplate.opsForHash().put("key", "f1", "111");redisTemplate.opsForHash().put("key", "f2", "222");redisTemplate.opsForHash().put("key", "f3", "333");System.out.println((String) redisTemplate.opsForHash().get("key", "f1"));System.out.println((String) redisTemplate.opsForHash().get("key", "f2"));System.out.println((String) redisTemplate.opsForHash().get("key", "f3"));System.out.println(redisTemplate.opsForHash().hasKey("key", "f1"));redisTemplate.opsForHash().delete("key", "f1");redisTemplate.opsForHash().delete("key", "f2");System.out.println(redisTemplate.opsForHash().size("key"));
}

ZSet 类型

@Autowired
private StringRedisTemplate redisTemplate;@RequestMapping("/testZSet")
public void testZSet() {redisTemplate.execute((RedisConnection connection) -> {connection.flushAll();return null;});redisTemplate.opsForZSet().add("key", "zhangsan", 10);redisTemplate.opsForZSet().add("key", "lisi", 20);redisTemplate.opsForZSet().add("key", "wangwu", 30);Set<String> members = redisTemplate.opsForZSet().range("key", 0, -1);System.out.println(members);Set<ZSetOperations.TypedTuple<String>> membersWithScore =redisTemplate.opsForZSet().rangeWithScores("key", 0, -1);System.out.println(membersWithScore);System.out.println(redisTemplate.opsForZSet().score("key", "zhangsan"));redisTemplate.opsForZSet().remove("key", "zhangsan");System.out.println(redisTemplate.opsForZSet().size("key"));System.out.println(redisTemplate.opsForZSet().rank("key", "lisi"));
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/637885.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringAOP从入门到源码分析大全(三)ProxyFactory源码分析

文章目录 系列文档索引五、ProxyFactory源码分析1、案例2、认识TargetSource&#xff08;1&#xff09;何时用到TargetSource&#xff08;2&#xff09;Lazy的原理&#xff08;3&#xff09;应用TargetSource 3、ProxyFactory选择cglib或jdk动态代理原理4、jdk代理获取代理方法…

数码摄影色彩构成,数码相机色彩管理

一、资料描述 本套摄影色彩资料&#xff0c;大小58.54M&#xff0c;共有6个文件。 二、资料目录 《抽象彩色摄影集》.阿瑟.pdf 《色彩构成》.pdf 《色彩学》.星云.扫描版.pdf 《摄影色彩构成》.pdf 《数码相机色彩管理》.pdf 数码摄影进阶之4《色彩篇》.pdf 三、资料下…

随心玩玩(十五)LLM 浅玩一下RWKV模型

写在前面&#xff1a;无聊又来玩玩LLM了&#xff0c;这次玩玩RWKV&#xff0c;因为我看到hugging face上有个roleplay的模型&#xff0c;遂心动。 【烧显存注意&#xff01;】需要16G显存的样子 介绍 &#xff08;随便cv的&#xff0c;见谅&#xff0c;有空单独写一篇博客看看…

Matlab新手快速上手2(粒子群算法)

本文根据一个较为简单的粒子群算法框架详细分析粒子群算法的实现过程&#xff0c;对matlab新手友好&#xff0c;源码在文末给出。 粒子群算法简介 粒子群算法&#xff08;Particle Swarm Optimization&#xff0c;PSO&#xff09;是一种群体智能优化算法&#xff0c;灵感来源于…

websocket 请求头报错 Provisional headers are shown 的解决方法

今日简单总结 websocket 使用过程中遇到的问题&#xff0c;主要从以下三个方面来分享&#xff1a; 1、前端部分 websocket 代码 2、使用 koa.js 实现后端 websocket 服务搭建 3、和后端 java Netty 库对接时遇到连接失败问题 一、前端部分 websocket 代码 <template>…

社会工程渗透测试教程(四)

原文&#xff1a;annas-archive.org/md5/db987a87e1478b8a8617c263c631b477 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第十三章&#xff1a;撰写报告 安德鲁梅森&#xff0c;技术总监&#xff0c;RandomStorm 有限公司 本章将介绍向客户提供的主要成果&#xf…

嵌入式物联网实战开发笔记-乐鑫ESP32开发环境ESP-IDF搭建【doc.yotill.com】

乐鑫ESP32入门到精通项目开发参考百例下载&#xff1a; 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;4e33 3.1 ESP-IDF 简介 ESP-IDF&#xff08;Espressif IoT Development Framework&#xff09;是乐鑫&#xff08;Espressif Systems&#xff09;为 ESP 系列…

FineBi中创建自定义的图表

FineBi中增加自己的自定义图表组件,比如: 的相关笔记: 1 获取有哪些BI自定义图表组件:http://localhost:8080/webroot/decision/v5/plugin/custom/component/list?_=1713667435473[{"name": "图表DEMO_EK","chartType": "amap_demo&q…

LinkedList和链表

1.ArrayList的缺陷 ArraryList由于底层是一段连续的空间&#xff0c;所以在ArrayList任意位置插入或者删除元素时&#xff0c;就 需要将后续元素往前或者往后搬移&#xff0c;时间复杂度为O(n)&#xff0c;效率比较低&#xff0c;因此ArrayList不适合做任意位置插入和删除比较…

rmallox勒索病毒威胁网络安全:如何避免数据被锁定

尊敬的读者&#xff1a; 随着信息技术的飞速发展&#xff0c;网络空间的安全问题日益凸显。近年来&#xff0c;一种名为.rmallox的勒索病毒频繁出没&#xff0c;给广大计算机用户带来了严重的困扰。本文将对该病毒进行深入剖析&#xff0c;并探讨相应的应对策略。在面对被勒索…

十大排序算法详解-上篇:比较排序算法【python 动态图解】

作者介绍&#xff1a;10年大厂数据\经营分析经验&#xff0c;现任大厂数据部门负责人。 会一些的技术&#xff1a;数据分析、算法、SQL、大数据相关、python 欢迎加入社区&#xff1a;码上找工作 作者专栏每日更新&#xff1a; LeetCode解锁1000题: 打怪升级之旅 python数据分析…

11.接口自动化学习-Yaml学习

1.配置文件作用 配置文件项目角度&#xff1a; &#xff08;1&#xff09;现成的应用–第三方组件 mysql–数据库–my.conf tomcat–web服务器–server.xml 修改&#xff1a;连接数/端口 redis–缓存服务器–redis.conf 修改配置 jemeter–压测工具–jemeter.properties–修改…