资讯专栏INFORMATION COLUMN

spring boot 结合Redis 实现工具类

ralap / 3014人阅读

摘要:自己整理了结合的工具类引入依赖加入配置数据库索引默认为服务器地址服务器连接端口实现代码这里用到了静态类工具类中如何使用缓存操作类维护一个本类的静态变量将参数中的字符串值设置为键的值,不设置过期时间必须要实现接口将参数中的字符串值设置

自己整理了 spring boot 结合 Redis 的工具类
引入依赖

    org.springframework.boot
    spring-boot-starter-data-redis
加入配置
# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=localhost
# Redis服务器连接端口
spring.redis.port=6379
实现代码
这里用到了 静态类工具类中 如何使用 @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 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 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 keys) {
        return cacheUtils.redisTemplate.delete(keys);
    }
}
相关地址

GitHub 地址: https://github.com/lmxdawn/vu...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/62041.html

相关文章

  • spring boot 结合Redis 实现工具

    摘要:自己整理了结合的工具类引入依赖加入配置数据库索引默认为服务器地址服务器连接端口实现代码这里用到了静态类工具类中如何使用缓存操作类维护一个本类的静态变量将参数中的字符串值设置为键的值,不设置过期时间必须要实现接口将参数中的字符串值设置 自己整理了 spring boot 结合 Redis 的工具类 引入依赖 org.springframework.boot spring...

    Nekron 评论0 收藏0
  • Spring-Data-Redis 解析

    摘要:概述是大家庭中的一员,和生态结合的很好,它提供了低级别和高级别的抽象,使我们很方便的就可以和交互后的版本需要支持同时支持和这个没怎么用过以后默认实现是使用的话需要手动改下引入的包使用引入包配置文件数据库索引默认为服务器地 概述 Spring Data Redis 是 Spring Data大家庭中的一员,和Spring 生态结合的很好,它提供了低级别(RedisTemplate .....

    princekin 评论0 收藏0
  • 全栈开发——动手打造属于自己的直播间(Vue+SpringBoot+Nginx)

    摘要:经过琢磨,其实是要考虑安全性的。具体在以下几个方面跨域连接协议升级前握手拦截器消息信道拦截器对于跨域问题,我们可以通过方法来设置可连接的域名,防止跨站连接。 前言 大学的学习时光临近尾声,感叹时光匆匆,三年一晃而过。同学们都忙着找工作,我也在这里抛一份简历吧,欢迎各位老板和猎手诚邀。我们进入正题。直播行业是当前火热的行业,谁都想从中分得一杯羹,直播养活了一大批人,一个平台主播粗略估计就...

    e10101 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<