jd-hotkey将对象进行缓存

 jd-hotkey的部署参考另一篇博文:jd-hotkey探测热点key-优快云博客

jd-hotkey中主要有如下4个方法可供使用:

1.boolean isHotKey(String key) ,该方法会返回该key是否是热key,如果是返回true,如果不是返回false,并且会将key上报到探测集群进行数量计算。该方法通常用于判断只需要判断key是否热、不需要缓存value的场景,如刷子用户、接口访问频率等。

2.Object get(String key),该方法返回该key本地缓存的value值,可用于判断是热key后,再去获取本地缓存的value值,通常用于redis热key缓存

3.void smartSet(String key, Object value),方法给热key赋值value,如果是热key,该方法才会赋值,非热key,什么也不做

4.Object getValue(String key),该方法是一个整合方法,相当于isHotKey和get两个方法的整合,该方法直接返回本地缓存的value。 如果是热key,则存在两种情况,1是返回value,2是返回null。返回null是因为尚未给它set真正的value,返回非null说明已经调用过set方法了,本地缓存value有值了。 如果不是热key,则返回null,并且将key上报到探测集群进行数量探测。jd-hotkey

修改规则

测试代码

    @GetMapping("/goods/info")
    public Goods goodsInfo(Integer goodsId) {
        String key = "goods_" + goodsId;
        Goods goods = (Goods) JdHotKeyStore.getValue(key);
        //如果已经缓存过了
        if (goods != null) {
            System.out.println("is hot key");
        } else {
            System.out.println("is not hot key");
            // 从数据库或者redis中,查询指定id的商品信息
            // 本例给出模拟数据
            goods = new Goods();
            goods.setId(goodsId);
            goods.setName("手机");
            goods.setPrice(new BigDecimal("100"));
            JdHotKeyStore.smartSet(key, goods);
        }
        return goods;
    }

测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值