当前位置: 首页 > news >正文

Redis使用RedisTemplate模板类的常用操作


一、前言



Redis是一个NoSQL(非关系型数据库)数据库之一,key-value存储系统或者说是一个缓存键值对数据库,具有如下特性:

- 基于内存运行,性能高效
- 支持分布式,理论上可以无限扩展
- key-value存储系统
- 开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API

主要应用场景包括:缓存系统、计数器、消息队列系统、排行榜、社交网络和实时系统、分布式锁和发布/订阅消息等。而在程序中,对Redis的常用操作有一个专门用于操作Redis的模板类(或API),它就是RedisTemplate。


二、Redis 数据结构简介



Redis可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)。


下面来对这5种数据结构类型作简单的介绍:


结构类型结构存储的值结构的读写能力String字符串、整数或者浮点数对整个字符串或者字符串的其中一部分执行操作;对象和浮点数执行自增(increment)或者自减(decrement)List数组链表,链表上的每个节点都包含了一个元素从链表的两端推入或者弹出元素;根据偏移量对链表进行修剪(trim);读取单个或者多个元素;根据值来查找或者移除元素Set包含元素的无序收集器(unorderedcollection),并且被包含的每个元素都是独一无二的、各不相同添加、获取、移除单个元素;检查一个元素是否存在于某个集合中;计算交集、并集、差集;从集合里卖弄随机获取元素Hash包含键值对的无序散列表添加、获取、移除单个键值对;获取所有键值对Zset字符串成员(member)与浮点数分值(score)之间的有序映射,元素的排列顺序由分值的大小决定添加、获取、删除单个元素;根据分值范围(range)或者成员来获取元素
RedisTemplate位于spring-data-redis包下:


`package org.springframework.data.redis.core;

public class RedisTemplate
extends org.springframework.data.redis.core.RedisAccessor
implements org.springframework.data.redis.core.RedisOperations `
继承了RedisAccessor类,实现了RedisOperations泛型键值对接口。


使用注解即可引用RedisTemplate:


`@Autowired
private RedisTemplate redisTemplate;
`
#### 三、RedisTemplate对5种数据结构的操作

redisTemplate使用如下几种方法分别针对5种数据结构进行操作:


`redisTemplate.opsForValue();//操作字符串

redisTemplate.opsForHash();//操作hash

redisTemplate.opsForList();//操作list

redisTemplate.opsForSet();//操作set

redisTemplate.opsForZSet();//操作有序set`
3.1 String字符串操作


`//设置key和value值
redisTemplate.opsForValue().set("key","value");
//通过key获取value值
String result = redisTemplate.opsForValue().get("key").toString();`
3.2 list数组操作


`//list数组对象和添加数组值
List list = new ArrayList();
list.add("a1");
list.add("a2");
list.add("a3");

//用redisTemplate模板类把list数组集合添加进Redis
redisTemplate.opsForList().leftPush("listkey",list);

//用redisTemplate模板类从Redis中根据key获取list集合
List resultList = (List)redisTemplate.opsForList().leftPop("listkey");
`
3.3 Hash结构,map操作


`//定义Map集合和类型
Map map = new HashMap();
map.put("key1","value1");
map.put("key2","value2");
map.put("key3","value3");

//用redis模板类把map设置到redis中
redisTemplate.opsForHash().putAll("map",map);
Map resultMap = redisTemplate.opsForHash().entries("map");
List reslutMapList = redisTemplate.opsForHash().values("map");
Set resultMapSet = redisTemplate.opsForHash().keys("map");
String value = (String)redisTemplate.opsForHash().get("map","key1");
`
3.4 Set集合操作


`//定义一个set集合并设置集合值
SetOperations set = redisTemplate.opsForSet();
set.add("set1","22");
set.add("set1","33");
set.add("set1","44");
//通过key获取set集合中的对象值
Set resultSet = redisTemplate.opsForSet().members("set1");

`
#### 四、总结

以上就是Redis的几种常用数据结构和操作。很多互联网大厂都有用Redis在各种业务场景进行使用,如今分布式流行的趋势,Redis更是举足轻重不可不掌握的一个技术;除了Redis,还有MemCache、Cassadra和Mongo等NoSQL。


推荐阅读更多的Redis文章:Redis快速入门    Redis的三种模式:主从、哨兵、集群

既然都看完了整篇文章,相信对你一定有所帮助。原创不易,远离伸手党。


点击下方【打赏】小编,或者关注公众号给予支持,你们的每一份鼓励都将是小编伟大的动力。



![](https://i-blog.csdnimg.cn/blog_migrate/e101c329192fc0f12296de7209af895e.jpeg)

同名原创公众号:   
程序大视界

http://www.jsqmd.com/news/772321/

相关文章:

  • 使用Taotoken后API调用延迟与稳定性有了明显改善
  • Go语言本地AI推理:基于llama.cpp的无CGo绑定实践指南
  • 20253407 2025-2026-2 《Python程序设计》实验三报告
  • AISMM不是新概念,而是新分水岭:2026奇点大会揭示的8类企业定位失效预警信号
  • SITS2026圆桌核心结论首发:3类组织正在因AISMM“伪合规”被监管否决——你中招了吗?
  • Coral社区管理:构建健康讨论环境的黄金法则
  • 虚拟Klipper打印机:Docker容器化部署与API测试指南
  • 洛谷bfs P1030
  • R语言数据表格美化技巧
  • 如何在CI/CD中集成Flow:提升JavaScript代码质量的完整指南
  • 150道Java面试基础题(含答案)
  • 为AI工具协议MCP构建零信任安全代理:从OAuth到RBAC的实战指南
  • 回顾一下,这个国庆假期你都干了些啥?
  • 2026奇点大会未公开议程泄露:AISMM学术验证协议V2.3将强制嵌入国家基金评审流程(附内测申请通道)
  • 【AISMM模型评估可视化实战指南】:20年专家亲授5大避坑法则与3步速成法
  • 《城市轨道交通站台屏蔽门系统》(GB/T 46749-2025)正式实施,深圳市汇业达通讯技术有限公司成为少数参与该核心国标的民营企业 - GrowthUME
  • 从无名到有名,老子一句话照见 SAP BTP 开发的架构次第
  • 深度学习环境搭建终极指南:fast.ai课程云端GPU配置完整教程
  • 这4个微服务网关你了解吗?
  • ComfyUI-OpenClaw:为AI工作流注入安全灵魂的自动化控制层
  • 使用OpenClaw配置Taotoken作为其Agent工作流的模型供应商
  • Spring、SpringMVC和SpringBoot的关系,看这一篇就够了
  • Spicetify配置管理终极指南:3步打造个性化Spotify体验
  • 大学生HTML期末大作业——HTML+CSS+JavaScript音乐网站(RAZA)
  • 终极移动端设计调试指南:VisBug如何在不同设备尺寸下完美适配
  • Locale Remulator:彻底解决多语言软件乱码问题的3步终极方案
  • 3分钟学会B站视频转文字,你的学习效率提升5倍秘诀
  • SpringCloud与Dubbo的比较
  • 2026年木把手工厂直通热线:匠心工艺,品质保证 - GrowthUME
  • 自律的程序员生活是什么样的?