您现在的位置是:首页 > 文章详情

spring boot 结合Redis 实现工具类

日期:2018-11-25点击:547

自己整理了 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性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

点击:加入

原文链接:https://yq.aliyun.com/articles/676254
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章