Redis 学习总结

Redis

简介

Redis全名是Remote Dictionary Server,使用ANSI C语言编写,属于NoSQL数据库。Redis可用作分布式缓存、分布式锁。Redis是内存数据库,也可以持久化。

数据类型

数据模型是key-value,key只能是String,value支持多种类型:String、List、Set、Sort Set、Hash、Bitmap、HyperLogLog。

特点

  • Redis支持数据的持久化,重启的时候可以再次加载进行使用;
  • Redis的value支持多种类型,适用于更广泛的应用场景;
  • Redis支持数据的备份,即Master-Slave模式;
  • Redis主进程是单线程工作,所有操作是原子性的,多个操作支持事务;
  • Redis的性能优越,读速度达到110000次/s,写速度达到81000次/s,key和value的大小限制均为512M;
  • 还支持Publish/Subcribe、通知、key老化逐出等特性。

持久化机制

有两种方式,在redis.conf中配置

  • RDB快照,默认方式。

    save 300 10:在300秒之后,如果至少有10个key发生变化,就触发BGSAVE命令创建快照
    
  • AOF(Append-Only File),实时性更好。

    appendonly yes:开启
    
    三种AOF持久化方式:
    
    appendfsync always:每次数据修改都写
    
    appdenfsync everysec:每秒写一次(推荐)
    
    appendfsync no:让操作系统决定何时写
    

老化机制

Redis支持设置key的过期时间,对过期的key删除方式:

  • 定期删除,周期100ms,随机抽取设置过期时间的key
  • 惰性删除,查询key时删除

如果定期删除漏掉了很多过期key,也没查询这些key,就不会删除。Redis支持配置最大内存,当内存不够用时,通过数据淘汰策略删除,支持以下6种淘汰策略:

  • volatile-lru
  • volatile-ttl
  • volatile-random
  • allkeys-lru
  • allkeys-random
  • no-enviction 默认

使用缓存常见的问题

  • 缓存被穿透

    解决方法:

    1. 缓存空值,设置过期时间不超过5分钟
    2. 布隆过滤器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值