1.基础:默认16个数据库,协议RESP
1)Redis数据结构类型(5)、每种类型内部编码、命令(Object encoding)
String:内部编码(int8、embStr39字节、raw),最大512M、中文3个字节、命令(set ex|px nx|xx、get、del、exists、mget、mset、incr、incrby、decr)
Hash:内部编码(ziplist(512个,64字节)、hashtable)、命令(hget、hset、hdel、hmget、hmset、hexist、hkeys、hgetall、hincrby)
List:内部编码(ziplist(512,64)、linkedlist、quicklist)、最多2-32-1、命令(rpush、lpush、linsert、lrange、lindex、llen、lpop、rpop、lrem、ltrim、lset、blpop、brpop)
Set:内部编码(intset512、hashtable)、最多2-32-1、命令(sadd、srem、scard、sismember、smembers、并集差集)
Zset:内部编码(ziplist(128,64)、skiplist)、命令(zadd、zscore、zrank、zrem、zincrby、zrange、并集差集)
备注:<type>-max-ziplist-entries、<type>-max-ziplist-value
通用命令:type、del、object、exists、expire、rename
键过期:expire、expireat、pexpire、pexpireat、ttl、pttl、persist
迁移:move、dump+restore、migrate
遍历:keys阻塞、scan
2)为什么快:单线程,纯内存,IO多路复用
2.其他:
1)慢查询:参数slowlog-log-slower-than=10ms、slowlog-max-len=128
2)事务:multi、exec、discard、watch,命令语法错误,运行时错误
3.持久化:
1)类型:RDB和AOF
RDB:
a)RDB:概述、触发机制、自动触发方式(4)、优缺点(2+2)
b)bgsave:运作流程
AOF:
a)概述、如何开启、工作流程(大头文件同步、aof重写)
b)AOF缓冲区同步文件策略(3)
c)AOF中重写机制:重写工作流程、变小(3)、自动触发条件(auto-aof-rewrite-min-size=64M、auto-aof-rewrite-percentage)、重启加载
d)AOF刷盘策略everysec流程
4.复制:
1)建立复制、断开复制、配置从节点只读方式、传输问题(延迟参数repl-disable-tcp-nodelay)、拓扑
2)复制原理:流程图(6)
a)ping操作、失败情况
b)同步数据集:全量复制(命令、流程、失败情况、Ping repl-timeout=60s、客户端缓冲区client-output-buffer-limit slave 256MB64MB60、发生情况)、部分复制(原因、流程、repl-backlog-size=1M)、其他概念(复制偏移量、复制积压缓冲区)、
3)心跳(2种)、判定下线参数repl-timeout=60s
5.阻塞:
1)内因:不合理API或数据结构(慢查询、大对象)、CPU饱和、持久化阻塞(3种)
2)外因:CPU竞争、内存交换、网络阻塞(最大连接数、最大打开文件数、backlog)
6.内存:
1)内存消耗:统计参数、内存消耗划分(4种、缓存内存(3、2个参数))
2)内存管理:最大内存设置、内存回收策略(过期键(2)、内存溢出控制策略(6))
3)内存优化:缩减键值大小、共享内存池、字符串优化(结构、特点、预分配机制)
7.哨兵 Redis Sentinel:
1)拓扑结构、部署配置核心点、启动方式
2)实现原理:三个定时任务(10,2,1)、主客观下线、领导选举(Raft算法)、故障转移(选取主节点方法(4))
8.集群:Redis Cluster
1)基础理论:虚拟槽分区(0-16383)、分区计算公式slot=CRC16(key)&16383、缺陷(5)
2)节点握手(P2P的Gossip协议)、命令(cluster meet、ping、pong、fail、addslots、replicate)
3)官方工具:redis-trib.rb、命令(create、add-node、forget)
4)通信发送节点选择:每秒10次间隔1秒
9.缓存设计:
1)缓存穿透(现象、应对方式)、无底洞、缓存雪崩(高可用、降级)