StringRedisTemplate常用操作及RedisUtils工具类

27 篇文章 2 订阅
stringRedisTemplate的一些常用操作: 
stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS);//向redis里存入数据和设置缓存时间

stringRedisTemplate.boundValueOps("test").increment(-1);//val做-1操作

stringRedisTemplate.opsForValue().get("test")//根据key获取缓存中的val

stringRedisTemplate.boundValueOps("test").increment(1);//val +1

stringRedisTemplate.getExpire("test")//根据key获取过期时间

stringRedisTemplate.getExpire("test",TimeUnit.SECONDS)//根据key获取过期时间并换算成指定单位

stringRedisTemplate.delete("test");//根据key删除缓存

stringRedisTemplate.hasKey("546545");//检查key是否存在,返回boolean值

stringRedisTemplate.opsForSet().add("red_123", "1","2","3");//向指定key中存放set集合

stringRedisTemplate.expire("red_123",1000 , TimeUnit.MILLISECONDS);//设置过期时间

stringRedisTemplate.opsForSet().isMember("red_123", "1")//根据key查看集合中是否存在指定数据

stringRedisTemplate.opsForSet().members("red_123");//根据key获取set集合

RedisHelper工具类:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;

/**
 * @Description: redis工具类
 * @ClassName: RedisHelper
 * @Author: liangbl
 * @Date: 2019/12/3 16:43
 */
@Component
public class RedisUtils {
    @Autowired
    public StringRedisTemplate stringRedisTemplate1;

    private static StringRedisTemplate stringRedisTemplate;

    @PostConstruct
    public void init() {
        stringRedisTemplate = stringRedisTemplate1;
    }

    public static String get(String key) {
        return stringRedisTemplate.opsForValue().get(key);
    }

    /**
     * 存入Hash类型
     */
    public static void putHash(Object h, Object hk, Object hv) {
        stringRedisTemplate.opsForHash().put(h.toString(), hk.toString(), hv.toString());
    }

    public static void setHashTime(Object key, long timeout, TimeUnit unit) {
        stringRedisTemplate.expire(key.toString(), timeout, unit);
    }

    /**
     * 获得hash类型的value值
     */
    public static Object getHash(Object h, Object hk) {
        return stringRedisTemplate.opsForHash().get(h.toString(), hk);
    }

    /**
     * 获得所有value值
     */
    public static List getHashValues(Object h) {
        return stringRedisTemplate.opsForHash().values(h.toString());
    }

    /**
     * 获得hash类型的所有key值
     */
    public static Set<Object> getHashKeys(Object h) {
        return stringRedisTemplate.opsForHash().keys(h.toString());
    }

    /**
     * 设置有效时间
     */
    public static void setTime(String key, long timeout, TimeUnit unit) {
        stringRedisTemplate.expire(key, timeout, unit);
    }

    /**
     * 默认时间一天
     *
     * @param key
     * @param data
     */
    public static void set(String key, String data) {
        stringRedisTemplate.opsForValue().set(key, data, 60 * 60 * 24, TimeUnit.SECONDS);
    }

    /**
     * 自定义时间
     *
     * @param key
     * @param data
     */
    public static void set(String key, String data, long timeout, TimeUnit unit) {
        stringRedisTemplate.opsForValue().set(key, data, timeout, unit);
    }

    public static Boolean setNx(String key, String data) {
        return stringRedisTemplate.opsForValue().setIfAbsent(key, data);
    }

    /**
     * 根据Key删除缓存
     *
     * @param key
     */
    public static void delete(String key) {
        stringRedisTemplate.delete(key);
    }

    /**
     * 根据key删除hash的值
     *
     * @param key
     * @param sn
     */
    public static void deleteHash(String key, String sn) {
        stringRedisTemplate.opsForHash().delete(key, sn);
    }

    /**
     * 获取
     *
     * @param prefix uc-
     * @param id     222
     * @param key    feafds
     * @return
     */
    public static String getMatch(String prefix, Long id, String key) {
        String matchkey = "[prefix:" + prefix + id + "]" + key;
        return stringRedisTemplate.opsForValue().get(matchkey);
    }

    /**
     * 存储REDIS队列 顺序存储
     *
     * @param key  reids键名
     * @param data 数据
     */
    public static void rpush(String key, String data) {
        stringRedisTemplate.opsForList().rightPush(key, data);
    }

    /**
     * 获取队列数据
     *
     * @param key reids键名
     */
    public static String lpop(String key) {
        return stringRedisTemplate.opsForList().leftPop(key);
    }

    /**
     * @Description: 添加set集合
     * @Param: [key, data]
     * @Author: liangbl
     * @Date: 2018/10/22
     */
    public static void setAdd(String key, String data) {
        stringRedisTemplate.opsForSet().add(key, data);
    }

    /**
     * @Description: 移除set集合中一个或多个成员
     * @Param: [key, values]
     * @Author: liangbl
     * @Date: 2018/10/22
     */
    public static void setRemove(String key, Object... values) {
        stringRedisTemplate.opsForSet().remove(key, values);
    }

    /**
     * @Description: 返回set集合中的所有成员
     * @Param: [key]
     * @Author: liangbl
     * @Date: 2018/10/22
     */
    public static Set<String> setMembers(String key) {
        return stringRedisTemplate.opsForSet().members(key);
    }

    /**
     * 计数器 val自增自减
     *
     * @param key
     * @param val eg:1加   -1减
     */
    public static void incre(String key, long val) {
        stringRedisTemplate.boundValueOps(key).increment(val);
    }

    /**
     * hash计数器 val自增自减
     *
     * @param key
     * @param hk
     * @param val eg:1加   -1减
     */
    public static void hashIncre(String key, String hk, long val) {
        stringRedisTemplate.opsForHash().increment(key, hk, val);
    }

    public static void pushMsg(String key, String msg) {
        stringRedisTemplate.convertAndSend(key, msg);
    }
}

 

 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值