spring boot 结合Redis 实现工具类

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 自己整理了 spring boot 结合 Redis 的工具类引入依赖    org.springframework.boot    spring-boot-starter-data-redis加入配置# Redis数据库索引(默认为0)spring.

自己整理了 spring boot 结合 Redis 的工具类

引入依赖

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-data-redis</artifactId>

</dependency>

加入配置

# Redis数据库索引(默认为0)

spring.redis.database=0

# Redis服务器地址

spring.redis.host=localhost

# Redis服务器连接端口

spring.redis.port=6379

 推荐一个交流学习群:614478470 里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

点击:加入

实现代码

这里用到了 静态类工具类中 如何使用 @Autowired

package com.lmxdawn.api.common.utils;

import java.util.Collection;

import java.util.Set;

import java.util.concurrent.TimeUnit;

import javax.annotation.PostConstruct;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.redis.core.RedisTemplate;

import org.springframework.stereotype.Component;

/**

* 缓存操作类

*/

@Component

public class CacheUtils {

    @Autowired

    private RedisTemplate<String, String> redisTemplate;

    // 维护一个本类的静态变量

    private static CacheUtils cacheUtils;

    @PostConstruct

    public void init() {

        cacheUtils = this;

        cacheUtils.redisTemplate = this.redisTemplate;

    }

    /**

    * 将参数中的字符串值设置为键的值,不设置过期时间

    * @param key

    * @param value 必须要实现 Serializable 接口

    */

    public static void set(String key, String value) {

        cacheUtils.redisTemplate.opsForValue().set(key, value);

    }

    /**

    * 将参数中的字符串值设置为键的值,设置过期时间

    * @param key

    * @param value 必须要实现 Serializable 接口

    * @param timeout

    */

    public static void set(String key, String value, Long timeout) {

        cacheUtils.redisTemplate.opsForValue().set(key, value, timeout, TimeUnit.SECONDS);

    }

    /**

    * 获取与指定键相关的值

    * @param key

    * @return

    */

    public static Object get(String key) {

        return cacheUtils.redisTemplate.opsForValue().get(key);

    }

    /**

    * 设置某个键的过期时间

    * @param key 键值

    * @param ttl 过期秒数

    */

    public static boolean expire(String key, Long ttl) {

        return cacheUtils.redisTemplate.expire(key, ttl, TimeUnit.SECONDS);

    }

    /**

    * 判断某个键是否存在

    * @param key 键值

    */

    public static boolean hasKey(String key) {

        return cacheUtils.redisTemplate.hasKey(key);

    }

    /**

    * 向集合添加元素

    * @param key

    * @param value

    * @return 返回值为设置成功的value数

    */

    public static Long sAdd(String key, String... value) {

        return cacheUtils.redisTemplate.opsForSet().add(key, value);

    }

    /**

    * 获取集合中的某个元素

    * @param key

    * @return 返回值为redis中键值为key的value的Set集合

    */

    public static Set<String> sGetMembers(String key) {

        return cacheUtils.redisTemplate.opsForSet().members(key);

    }

    /**

    * 将给定分数的指定成员添加到键中存储的排序集合中

    * @param key

    * @param value

    * @param score

    * @return

    */

    public static Boolean zAdd(String key, String value, double score) {

        return cacheUtils.redisTemplate.opsForZSet().add(key, value, score);

    }

    /**

    * 返回指定排序集中给定成员的分数

    * @param key

    * @param value

    * @return

    */

    public static Double zScore(String key, String value) {

        return cacheUtils.redisTemplate.opsForZSet().score(key, value);

    }

    /**

    * 删除指定的键

    * @param key

    * @return

    */

    public static Boolean delete(String key) {

        return cacheUtils.redisTemplate.delete(key);

    }

    /**

    * 删除多个键

    * @param keys

    * @return

    */

    public static Long delete(Collection<String> keys) {

        return cacheUtils.redisTemplate.delete(keys);

    }

}

推荐一个交流学习群,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

点击:加入

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
18天前
|
存储 NoSQL Java
使用lock4j-redis-template-spring-boot-starter实现redis分布式锁
通过使用 `lock4j-redis-template-spring-boot-starter`,我们可以轻松实现 Redis 分布式锁,从而解决分布式系统中多个实例并发访问共享资源的问题。合理配置和使用分布式锁,可以有效提高系统的稳定性和数据的一致性。希望本文对你在实际项目中使用 Redis 分布式锁有所帮助。
50 5
|
1月前
|
NoSQL Java API
springboot项目Redis统计在线用户
通过本文的介绍,您可以在Spring Boot项目中使用Redis实现在线用户统计。通过合理配置Redis和实现用户登录、注销及统计逻辑,您可以高效地管理在线用户。希望本文的详细解释和代码示例能帮助您在实际项目中成功应用这一技术。
38 4
|
1月前
|
消息中间件 NoSQL Java
Spring Boot整合Redis
通过Spring Boot整合Redis,可以显著提升应用的性能和响应速度。在本文中,我们详细介绍了如何配置和使用Redis,包括基本的CRUD操作和具有过期时间的值设置方法。希望本文能帮助你在实际项目中高效地整合和使用Redis。
57 2
|
2月前
|
缓存 NoSQL Java
Spring Boot与Redis:整合与实战
【10月更文挑战第15天】本文介绍了如何在Spring Boot项目中整合Redis,通过一个电商商品推荐系统的案例,详细展示了从添加依赖、配置连接信息到创建配置类的具体步骤。实战部分演示了如何利用Redis缓存提高系统响应速度,减少数据库访问压力,从而提升用户体验。
126 2
|
1月前
|
JavaScript NoSQL Java
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
46 0
|
Java Spring 容器
Spring常用工具类
Spring框架下自带了丰富的工具类,在我们开发时可以简化很多工作: 1.Resource访问文件资源: 具体有: ResourceUtils.getFile(url); FileSystemResource(); ClassPathResource(); ServletContextResource(application,url); 2.
1218 0
|
2月前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
228 2
|
5天前
|
NoSQL Java Redis
Spring Boot 自动配置机制:从原理到自定义
Spring Boot 的自动配置机制通过 `spring.factories` 文件和 `@EnableAutoConfiguration` 注解,根据类路径中的依赖和条件注解自动配置所需的 Bean,大大简化了开发过程。本文深入探讨了自动配置的原理、条件化配置、自定义自动配置以及实际应用案例,帮助开发者更好地理解和利用这一强大特性。
44 14
|
27天前
|
缓存 IDE Java
SpringBoot入门(7)- 配置热部署devtools工具
SpringBoot入门(7)- 配置热部署devtools工具
43 1
SpringBoot入门(7)- 配置热部署devtools工具
|
1月前
|
缓存 IDE Java
SpringBoot入门(7)- 配置热部署devtools工具
SpringBoot入门(7)- 配置热部署devtools工具
43 2
 SpringBoot入门(7)- 配置热部署devtools工具
下一篇
DataWorks