redis学习

redis缓存使用过程中的问题

  1. 问题一:
    1. 情景:文件生成及下载时,为了防止相同文件重复生成,占用系统内存,可以将文件的唯一标识+路径保存在redis内,这样在下载具有相同唯一标识的文件时,只需要拿到文件路径,就能直接下载了。
    2. 问题:如果服务器重启,或者重新部署,导致文件不存在,而redis缓存仍然存在。那么文件下载就会一直报错。
    3. 解决:下载时不仅要判断缓存是否有效,还要判断文件是否存在,如果不存在,就要重新生成。

redis做分布式事务需要考虑的点:

  1. 锁。
  2. 锁过期时间。
  3. 锁过期时间的延续。
  4. 跨线程释放锁问题。

redis缓存击穿,缓存穿透,缓存雪崩

redis的bloom过滤器:

定义:

一个初始值为零的bit数组和多个哈希函数构成,用来快速判断集合中是否存在某个元素。不一定100%准确:

  1. 可能存在集合中。
  2. 一定不存在集合中。

代码:

/**
 * 使用Redisson生成布隆过滤器
 */

 //过滤器名称
String filterName = "myBloomFilter";
RBloomFilter<Long> bloomFilter = redissonClient.getBloomFilter(filterName);
//设置容量,误判率
bloomFilter.tryInit(1000, 0.01);
//bloom存入数据
bloomFilter.add("orderID");
//判断是否存在:
if(bloomFilter.contains("orderID")){
    System.out.print("orderID存在于布隆过滤器中");
}else{
    System.out.println("orderID不存在于布隆过滤器中")
}

使用:

使用bool过滤器判断数据是否为空,如果为空,则直接取缓存拿,如果不为空,则判定为无效请求。用以解决缓存穿透、用户黑名单等问题。短时间内同一请求达到某个值时,存入bool过滤器

数据类型:

bitMap。

redis.setbit("","")1:存在,0:不存在。

比较(布谷鸟)

  1. 查询性能相对弱。
  2. 空间利用率相对低。
  3. 不支持反向操作。
  4. 不支持计数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值