Redis缓存提升使用率小Tip

缓存中可以缓存热点数据,提高缓存的使用率(特别是对于我们这种搭不起Redis集群的屌丝,毕竟内存很贵呀)。我们可以对要缓存的数据设置缓存的有效期expire。一般是一天的时间,可以根据实际情况调整。

思路:如果一条数据,在缓存有效时间内没有人访问,则从缓存中及时清除。如果该条数据在缓存有效时间内,多次被人访问,则重新设置缓存时间,即:重新倒计时。

比如电商项目中获取商品详情:

/*
	 * TB_ITEN:主键id:BASE 
	 * TB_ITEN:主键id:DESC
	 * 
	 * 如果要用Redis缓存一张二维表————表名:主键ID:字段
	 */
	@Override
	public TbItem getGoodDetailById(Long id) {
		// 从缓存中获取数据,如果有直接返回
		try {
			String json = jedisClient.get(ITEM_INFO_KEY + ":" + id + ":BASE");
			if (StringUtils.isNotBlank(json)) {
				// 重新设置商品的有效期
				jedisClient.expire(ITEM_INFO_KEY + ":" + id + ":BASE", ITEM_INFO_KEY_EXPIRE);
				return JsonUtils.jsonToPojo(json, TbItem.class);
			}
		} catch (Exception e1) {
			e1.printStackTrace();
		}
		TbItem tbItem = tbItemMapper.selectByPrimaryKey(id);
		try {
			// 添加缓存
			jedisClient.set(ITEM_INFO_KEY + ":" + id + ":BASE", JsonUtils.objectToJson(tbItem));
			// 设置缓存的有效期
			jedisClient.expire(ITEM_INFO_KEY + ":" + id + ":BASE", ITEM_INFO_KEY_EXPIRE);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return tbItem;
	}

缓存结果:

这里向小伙伴们推荐一个Redis可视化的工具:redis-desktop-manager

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值