【Redis】整体复盘总结

本文为Redis部分的复盘总结

  1. 知道redis所处地位:作为服务器的缓存(而不是直接访问mysql),redis读取更快所以作为存储热点信息(应用于抢购(很多人访问高并发),有较多改动不急于写回数据库(例如购物车,浏览量))。
  2. 知道常见的nosql数据库:redis,mongodb
  3. 知道redis的基本命令
  4. 知道redis数据库的五种基本数据类型:string(append,mset,incr,incrby,decr),hash(hset key field value,购物车),list(lpush,lindex),set,sorted_set(zadd score(key可重复) 94(socre) zhangsan(member).以及他们的应用场景和常见操作。
  5. 注意mset的执行时间如果过长,可能会导致阻塞。
  6. 注意key的命名规范
  7. 知道redis有分区
  8. 知道有jedis这么一个链接redis的工具类以及导入依赖的方法
  9. 知道redis有两种持久化策略:rdb(这个是快照机制),aof(保存操作的策略)
  10. 知道rdb与aof的区别 :由于rdb可以采用数据压缩所所以更加小,同时由于rdb保存的是现有数据所以恢复更加快速。aof 的优势体现在存储更快,更加及时(可以使用策略达到每秒)。
  11. 知道rdb有save与bgsave(不会阻塞客户端)
  12. aof的实现是保存操作到缓冲区然后刷新给.aof后缀的aof文件当中所以叫appendonlyfile
  13. aof更加实时所以是主流采用的策略,但是不会默认开启,需要配置文件里开启,一旦开启优先级高于rdb策略
  14. aof还提供了三种针对保存频率的策略:always,everysec,no
  15. 知道aof重写机制:将多个操作产生的结果用一个操作也能产生同样的结果的语句替代,这样多个语句操作就变成一个操作了
  16. 数据具有阶段性特点(很长时间不变)选择rdb,而对数据有实时性要求(很敏感)的选择aof。
  17. 知道什么是事务:就是一个命令队列,这个队列里有很多指令,执行的时候按顺序一次性执行完毕,是一个不可分割的整体,这就是一个事务。
  18. 与mysql不同,redis的事务开启与提交是通过如下指令完成的:multi,exec在这里插入图片描述
  19. 知道redis的两种锁:watch(监控锁,只能监控数值变不变,变了就终止事务),setnx(公共锁,这个有点类似与synchronized,主要是解决类似超卖的问题),对于公共锁,redis还设置了时间到时自动释放,防止长期客户端占用。
  20. 了解redis删除策略:定时(时间到立马删除),惰性(访问时删除,该数据若已经过期就删除),定期(是指redis定期去轮询几个分区里的数据是否过期,在分区里面抽查数据看过期没,如果过多删除还要再访问该分区并删除)。
  21. 要注意删除策略是针对有时效的数据(这是redis数据当中的大多数),而对于没有设置时效的数据(小部分)要用到逐出策略
  22. 逐出策略对于任何数据都有效:它是为了解决内存紧缺的问题。
  23. 对于不同区域的逐出策略是不同的:expires区域(有时效数据):lru(最近还要最少),lfu(最少的),tll(要过期了),random。全局数据:使用lru,lfu,random策略
  24. 知道redis的三个高级数据类型:bitmaps(位计数),hyperloglog,GEO
  25. 知道redis服务器集群的架构(读写分离):slave对外提供数据(读)这个数据是从master得到的,而master对外只让写入数据。这样还可以负载均衡。
  26. 知道主从复制机制的常见问题:1.全量复制;master重启导致id变化slave会认为是一个新的master就会发生全量复制(解决办法是持久化master的id)2.断网超时导致slave与master频繁断开,slave就会频繁全量复制(提高ping的频率)
  27. 一般是slave去链接master。
  28. 哨兵应当设置为单数防止平票。
  29. 知道哨兵的机制作用,哨兵互通消息,发送ping指令检查是否在线,故障转移等。
  30. 描述一下哨兵作用发生的过程,当检测到master下线,首先是主观下线然后客观下线,接着要选取执行哨兵,执行哨兵去选取下一任master,这个过程会产生很多ping命令。
  31. 知道集群的优势:负载均衡,存储可扩展性强,风险规避。
  32. 知道redis结构设计,将存储分为16384个分区,这个数量是不变的,通过与16384取余实现定位key,最多只会查询两次。
  33. 知道四种常见企业级解决方案:缓存预热:找点常用数据备在redis当中。缓存雪崩:较多的key失效。缓存击穿,较高的访问一条信息,而这条信息失效。缓存穿透:黑客攻击,访问不存在redis的数据直接大量攻击mysql
  34. 解决上述问题的上策是预防:设置二级缓存nginx防止失效带来的大量访问数据库,监控数据变化,手动维护数据的有效期。下策则是牺牲用户体验:限制访问url,对数据加锁不让太多人访问。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值