redis 单线程(不能利用多核)IO多路复用
    redis6 多线程网络IO 实际处理还是单线程的

    event loop 队列

    持久化
    RDB(快照) 阻塞父进程
    bgsave->主进程->fork子进程->生成RDB文件(物理二进制,快)

    AOF(日志) 不会阻塞父进程
    bgrewriteaof->父进程->fork(aof_buf(旧文件))/aof_rewrite_buf(新文件 替换旧文件)
    生成命令(一直重写,文件会大,恢复慢)

    缓存过期策略
    1.定期策略(随即删除) 默认10s
    2.惰性删除 过期的key有请求,才删除
    3.定时删除 时间设置不合理,容易出问题

    缓存淘汰(内存到达触发)

    1. noeviction:内存超过配置,返回错误,不会删除
    2. volatile-ttl:从配置了过期时间的键中驱逐马上要过期的
    3. allkeys-lru:采用LRU算法,从所有键中驱逐最久未使用的
    4. volatie-lru:从设置了过期时间的键中驱逐最久未使用的
    5. allkeys-lfu:从所有键中驱逐使用频率最少的
    6. volatile-lfu:从所有配置了过期时间的键中驱逐使用最少的