热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

springboot中封装的redistemplate模板操作redis常用命令

看到很多帖子都是介绍redis客户端操作redis的命令,没有相关的spring

看到很多帖子都是介绍redis客户端操作redis的命令,没有相关的springboot中redistemplate模板操作redis的命令,所以记录了一下redistemplate模板操作redis的常用命令,在springboot 提供了两种 方法操作 RedisTemplate 和StringRedisTemplate 两种方法的区别在于序列化方式不同,当然也可以自己定义序列化方式 redistemplate底层还是使用的jedis或者Lettuce两个客户端,https://blog.csdn.net/yifanSJ/article/details/79513179 ,本次记录的是 如何使用RedisTemplate 操作reids的5种基本数据类型

操作 String类型的数据:
1,将String类型存入到Redis当中:

/**
* redisTemplate操作普通字符串(存值)
*/

public void redisSetString(String key, String value) {
redisTemplate.opsForValue().set(key, value);
}

2,从redis当中取出String类型的数据:

/**
* redisTemplate操作普通字符串 (取值)
*/

public Object redisGetString(String key) {
return redisTemplate.opsForValue().get(key);
}

3.设置reids key的过期时间(原来出现过设置过期时间不起作用,是因为先设置了过期时间 在去存入值到redis ):

/**
* 指定缓存失效时间
*
* @param key
* 键
*
* @param time
* 时间(秒)
*
* @return
*
*/

public boolean expire(String key, long time) {
try {
if (time > 0) {
redisTemplate.expire(key, time, TimeUnit.SECONDS);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}

使用RedisTemplate 操作List类型的数据:
1,将list类型存入到Redis当中:

/**
* 将一个list集合存放到redis当中
*
* @param key
*/

public void redisSetList(String key) {
List<Integer> list = Arrays.asList(6,9,8,3);
for (Integer integer : list) {
// 从当前的数据 向右添加
// redisTemplate.opsForList().rightPush(key, integer);
// 从当前的数据 向左添加
redisTemplate.opsForList().leftPush(key, integer);
}
}

2,从redis中取出list数据:

/**
* 获取list(获取0 -10 索引的数据)

*/

public Object getList(String key) {
return redisTemplate.opsForList().range(key, 0, 10);
}

3.获取redis中list的长度:

/**
* 获取list指定key的长度
*/

public Long getListSize(String key) {
return redisTemplate.opsForList().size(key);
}

使用RedisTemplate 操作hash类型的数据:
1.将hash存放到redis当中:

/**
* 将map存放到reids
*/

public void setHash(String key) {
Map<String, String> hashMap = new HashMap<>();
//
hashMap.put("redis", "redis");
hashMap.put("mysql", "mysql");
for (Entry<String, String> keyValue : hashMap.entrySet()) {
redisTemplate.opsForHash().put(key, keyValue.getKey(), keyValue.getValue());
}
}

2.将hash从redis当中取出来 根据具体的key取出具体的值:

/**
* 获取指定key1的值
*/

public Object getHash(String key, String key1) {
// 检测 是否 存在该键
boolean isKey = redisTemplate.opsForHash().hasKey(key, key1);
return redisTemplate.opsForHash().get(key, key1);
}

3.将key中所有的值都取出来:

/**
* 获取指定key的所有值

*/

public Object getHash(String key) {
return redisTemplate.opsForHash().entries(key);
}

4.根据具体的key移除具体的值:

/**
* 根据具体key移除具体的值
*/

public void removeKey(String key, String key1) {
redisTemplate.opsForHash().delete(key, key1);
}

5.移除key值 则key里面的所有值都被移除:

public void removeStringKey(String key) {
redisTemplate.delete(key);
}

使用RedisTemplate 操作set类型的数据:
1.set数据存入redis中

public void setSet(String key) {
Set<Object> set = new HashSet<>();
set.add("setKey");
set.add("tesetKey");
for (Object object : set) {
redisTemplate.opsForSet().add(key, object);
}
}

2.从redis当中将set数据取出来:

public Object getSet(String key) {
return redisTemplate.opsForSet().members(key);
}

使用RedisTemplate 操作sortset类型的数据:
1.将sortSet存放到redis当中:

/**
* sortset存入redis中
*
* @param key
*/

public void setZSet(String key) {
Set<Object> set = new HashSet<>();
set.add("setKey");
set.add("tesetKey");
int i = 0;
for (Object object : set) {
i++;
redisTemplate.opsForZSet().add(key, object, i);
}
}

2.将sortset从redis当中取出来的API有很多:

public Object getZSet(String key) {
Long size = redisTemplate.opsForZSet().size(key);
return redisTemplate.opsForZSet().rangeByScore(key, 0, size);
}

RedisTemplate操作5种基本类型数据,有一些共同的API 比如设置过期时间,和移除key的值,判断key是否存在
1设置过期时间

/**
*
* 指定缓存失效时间
*
* @param key
* 键
*
* @param time
* 时间(秒)
*
* @return
*
*/

public boolean expire(String key, long time) {
try {
if (time > 0) {
redisTemplate.expire(key, time, TimeUnit.SECONDS);
}
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}

2.检测是否存在key:

/**
*
* 判断key是否存在
*
* @param key
* 键
*
* @return true 存在 false不存在
*
*/

public boolean checkKey(String key) {
try {
return redisTemplate.hasKey(key);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}

3:移除缓存 /**

* 移除key
* @param key
*/
public void removeKey(String key) {
redisTemplate.delete(key);
}

**总结:**以上就是常见的spring-boot-starter-data-redis中整合redis客户端后的redistemplate模板操作redis的命令

推荐阅读
  • 本文详细介绍了Java反射机制的基本概念、获取Class对象的方法、反射的主要功能及其在实际开发中的应用。通过具体示例,帮助读者更好地理解和使用Java反射。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 帝国CMS中的信息归档功能详解及其重要性
    本文详细解析了帝国CMS中的信息归档功能,并探讨了其在内容管理中的重要性。通过归档功能,用户可以有效地管理和组织大量内容,提高网站的运行效率和用户体验。此外,文章还介绍了如何利用该功能进行数据备份和恢复,确保网站数据的安全性和完整性。 ... [详细]
  • JUC(三):深入解析AQS
    本文详细介绍了Java并发工具包中的核心类AQS(AbstractQueuedSynchronizer),包括其基本概念、数据结构、源码分析及核心方法的实现。 ... [详细]
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 探讨Redis的最佳应用场景
    本文将深入探讨Redis在不同场景下的最佳应用,包括其优势和适用范围。 ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本文详细介绍了如何在 Django 项目中使用 Admin 管理后台,包括创建超级用户、启动项目、管理数据模型和修改用户密码等步骤。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 本文详细介绍了如何在Unity中实现一个简单的广告牌着色器,帮助开发者更好地理解和应用这一技术。 ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
author-avatar
long--Journey
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有