redis基础
优点:存取速度快(内存存储)
缺点:主从、扩容
单线程处理I/O和读写 多路复用器处理并发请求 不能大于redis的最大连接数(config get maxclients)(一般用连接池解决)
常用命令
info Server Client Memory Persistence Stats Relication CPU Cluster KeySpace
1.redis数据结构
key为String
value有 String List set sortedSet Hash
scan渐进式获取大量key 相当于分页查询
2.redis存储
过时淘汰机制
实时淘汰 监控key,到期后立即删除 占用cpu
使用检查淘汰 有使用到key时,检查是否过期,过期再删除 内存中大量过期未删除key
定时批量淘汰 定时去检查一批key的过期时间,过期的批量删除
空间不足淘汰机制
最不常使用 LRU
最老淘汰 LFU
随机
在有过期时间的key中
2.1 redis持久化
rdb
每过一段时间将内存数据保存一个快照dump.rdb ,持久化到磁盘 优点:数据少、恢复快 缺点:持久化过程中宕机造成数据不一致
save 60 1000
bgsave cow写时复制 主线程fork子线程
aof
append-only file 将所有写操作写到一个文件里,数据从文件中恢复 优点:数据一致 缺点:文件大,恢复慢 默认持久化方式
appendonly yes
appendfsync always/everysec/no
auto-aof-rewrite-min-size 64M 文件超过64M重写
auto-aof-rewrite-percentage 100 文件超过100%重写
bgrewriteaof fork子线程重写
混合持久化
aof-use-rdb-preamble yes
3.redis事务
ACID 只能保证CI
命令错误,所有命令不执行;运行错