redis功能集

val自增

比如说想要实现点赞功能,用户点击一次,调用redisTemplate.opsForValue().increment(key, delta);方法即可

redis 主从哨兵

  • 从redis配置
1
2
3
4
5
6
7
port 6002
# 新版本/代替了slaveof
slaveof 127.0.0.1 6000
# 如果主redis配置了密码 这里也需要配置相同密码
masterauth 123456

requirepass 123456

redis容易出现的问题

  • 缓存穿透
    数据库和缓存中都没有该数据,有人恶意请求的话,所有的请求都会到达数据库导致数据库崩溃。

    • 布隆过滤器
    • 增加接口的安全性,比如添加校验
    • 当缓存取不到数据时,也将key写入缓存,val为null,有效期设置短些,比如30s
  • 缓存击穿
    数据库有数据缓存中没有该数据,因为缓存有过期时间,如果过期的一瞬间突然涌入大量的相同请求,那么这些请求因为从缓存中无法获取值而转向数据库,导致数据库并发量突然增大而奔溃

    • 比如一些热点的数据设置为不过期
    • 加上互斥锁,当缓存不存在时,加锁去从数据库中获取内容放到缓存中
  • 缓存雪崩
    数据库有数据缓存中没有该数据,缓存中大批量的数据到过期时间,那一瞬间查询量巨大的情况下,数据库可能会宕机
    • redis集群、哨兵
    • 过期时间随机设置
    • 热点数据永不过期
赏个🍗吧
0%