为redis缓存的key定义通用枚举类

一.

定义一个这样的枚举类,把要缓存的key的格式给定义下来,通过getCacheKey()方法来获取到缓存的key

这样的话,不管传参个数多少,都在统一一个枚举类给处理好了

@AllArgsConstructor
@Getter
public enum CacheKey {

    /**
     * 
    KEY_1("key1:","xx:%s:%s"),

    kEY_2("key2:", "xx:%s");

    String biz;

    String prefix;


    public static String getCacheKey(CacheKey cacheKey, Object... args) {
        return cacheKey.getBiz() + String.format(cacheKey.getPrefix(), args);
    }

    public  String getCacheKey(Object... args) {
        return this.getBiz() + String.format(this.getPrefix(), args);
    }

}

这样你就可以定义一个设置缓存的通用方法

value的来源可以定义一个无参获取对象的Supplier接口

再进一步的话,可以将此方法设置成接口里的抽象方法,让不同的实现类去实现该方法,以此来缓存不同的业务数据.

  void setCache(Supplier<List<xxDo>> supplier, CacheKey keyFormat, Object... args);

二.redisTemplate关于hash/set的几个方法

 @Override
    public Boolean hHasKey(String key, String hashKey) {
        return redisTemplate.opsForHash().hasKey(key, hashKey);
    }

    @Override
    public Long hIncr(String key, String hashKey, Long delta) {
        return redisTemplate.opsForHash().increment(key, hashKey, delta);
    }

    @Override
    public Long hDecr(String key, String hashKey, Long delta) {
        return redisTemplate.opsForHash().increment(key, hashKey, -delta);
    }

    @Override
    public Set<Object> sMembers(String key) {
        return redisTemplate.opsForSet().members(key);
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值