我是靠谱客的博主 霸气金鱼,最近开发中收集的这篇文章主要介绍redis 学习笔记,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  • redis消息订阅(聊天窗的历史数据怎么实现(消息订阅+sortedset))
  • redis中的管道(RTT (Round Trip Time - 往返时间)。注意一次发送命令的数量)
  • 事务(过一遍事务的提交流程)
  • 为什么redis不支持回滚
  • modules
  • 布隆过滤器
  • 布谷鸟过滤器
  • redis作为数据库/缓存的区别?
  • 缓存的特点(不是全量数据,数据不重要,缓存应该随着访问变化热数据,多数是为了解决读请求)
  • 内存大小的设置(不要太大,影响rdb时间,一般4g几秒钟)
  • 内存达到最大值以后的策略(默认禁止,报错;LRU;LFU;random;ttl。一般选择allkeys-lru或者volatile-lru,注意这两者的使用场景,前者是在所有键中寻找最少使用的,后者是在过期集合的键中选择最少使用的)
  • 对有过期时间的key重新set后,会变为永久有效。
  • 倒计时/定时
  • 过期判定原理

持久化(RDB/AOF)

  • 管道的特性(衔接,创建子进程)
  • RDB--linux中父子进程之间的数据隔离,父进程可以通过export让子进程看到数据,子进程修改数据不会影响父进程,父进程修改数据也不会影响子进程
  • RDB--创建子进程的速度应该是什么程度,内存够不够。
  • RDB--redis RDB持久化采用的是fork进程,linux下fork采用的是写时复制(copy on write),fork会copy一份指针到子进程,主进程写时会把指针指向新的地址,子进程不变。(速度快,空间小,时点正确)
  • RDB--(时点性,save(关机维护),bgsave,配置文件bgsave),注意save和bgsave的区别,前者会阻塞服务,后者不会。
  • RDB--弊端(不支持拉链,只有一个dump.rdb;不具备实时性);优点(类似java中的序列化,恢复的速度快)
  • AOF--写操作记录在文件中,丢失数据少,RDB和AOF可以同时开启,如果开启了AOF只会用AOF恢复。4.0以后AOF包含RDB全量,增加记录新的写操作。(aof很大恢复的时候会不会溢出,恢复要多多久)
  • AOF--弊端(体量大,恢复慢,设计一个方案让日志、AOF足够小;redis是内存数据库,写操作会触发io(no(pagecache满了以后自动flush),aways,1s(丢失一个buffer)))
  • 几个容易忘的配置(logfile,aof-use-rdb-preamble,daemonize,appendonly)
  • 记录一下默认配置的几个目录(rdb-/var/lib/redis/$port;conf-/etc/redis/;)
  • AOF-指令协议(*取几个字符,$一个字符多长),aof重写指令(BGREWRITEAOF),注意4.0以后打开aof-use-rdb-preamble,aof的前部分会用rdb代替,以redis开头。

集群

单机单实例的问题

  • 单机故障,容量有限,压力
  • AKF原则(x:全量镜像(主从);y:业务功能;z:优先级,逻辑再拆分)
  • 主从,主备的区别
  • 哨兵--CAP原则(CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。)
  • REPLICAOF IP PORT
  • REPLICAOF NO ONE
  • 哨兵会自动修改配置文件(哨兵之间通过发布订阅通信)
  • Y轴拆分(逻辑:业务拆分;算法:hash+取模(影响分布式下的扩展性);random(消息队列);一致性哈希环,没有取模(作为缓存来用。优点:增加节点不会造成全局洗牌;缺点:新增节点会造成一小部分数据无法命中,造成缓存击穿,方案:每次取最近的两个节点))
  • predixy,twempoxy,redis-cluster区别
  • redis-cluster用法,优点

面视

  • 缓存常见问题(击穿,穿透,雪崩,一致性(双写))
  • 击穿:解决方案--1.null 2.setnx 3.访问db(死锁?锁超时?多线程(一个取数据,一个更新锁时间))
  • 穿透(数据库根本不存在的数据)解决方案--布隆过滤器(不能删除?布谷鸟过滤器);空key
  • 雪崩(时点性无关随即过期时间;零点强依赖击穿方案/业务加判断零点延时)
  • 分布式锁(1.setnx,2过期时间,3多线程(守护线程)延长过期)
  • 数据回收策略

最后

以上就是霸气金鱼为你收集整理的redis 学习笔记的全部内容,希望文章能够帮你解决redis 学习笔记所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部