美文网首页软件测试
Redis个人学习总结

Redis个人学习总结

作者: Fox_Nick | 来源:发表于2020-04-01 15:05 被阅读0次

    Redis学习

       Redis(缓存、分布式锁、支持高并发、限流、过滤、集群)

    1.      redis是单线程结构、支持高并发;

    (1)      优点:基于内存操作,多路IO复用(IO:可高校处理多链接请求,支持高并发,减少网络IO的消耗时间)

    (2)     缺点:无法发挥多核CPU性能(解决:通过在单机开多个redis实例完善)

    2.      Redis五种数据结构;

    (1)      String

    (2)      List

    (3)      Hash

    (4)     Set(集合)

    (5)      Zset(有序集合)

    注释:字符串最大长度512MB,(list、hash、set、zset属于容器型数据结构),采用预分配冗余空间方式来减少内存频繁分配

    3.      布隆过滤器;

    (1)      高并发去重、节省空间

    (2)      注意:initial_size 设置过大,浪费空间。设置过小,影响准确率

    4.      持久化(主节点不进行持久化,从节点备份)

    (1)      快照(全量备份;通过开启子程序进行,遍历整个内存,大块写入磁盘,加重系统负载;缺点:耗资源)

    (2)      AOF日志(连续增量备份,只记录对内存进行修改的指令记录;fsync耗时的IO操作,降低redis性能,增加系统IO负担)

    (3)      混合持久化(4.0特性)

    5.      限流

    (1)      漏斗限流(Redis_Cell模块,漏斗算法

    6.      GeoHash(地理位置,附近)

    7.      内存回收机制(默认策略:noeviction策略;maxmemory-policy volatile-lru)

    (1)      volatile-lru -> 根据LRU算法删除设置了超时属性(expire)的键,直到腾出足够空间为止。如果没有可删除的键对象,回退到noeviction策略。

    (2)     allkeys-lru -> 根据LRU算法删除键,不管数据有没有设置超时属性,直到腾出足够空间为止。

    (3)      volatile-lfu -> 根据LFU算法删除设置了超时属性(expire)的键,直到腾出足够空间为止。如果没有可删除的键对象,回退到noeviction策略。

    (4)      allkeys-lfu -> 根据LFU算法删除键,不管数据有没有设置超时属性,直到腾出足够空间为止。

    (5)      volatile-random -> 随机删除过期键,直到腾出足够空间为止。

    (6)      allkeys-random -> 随机删除所有键,直到腾出足够空间为止。

    (7)      volatile-ttl -> 根据键值对象的ttl属性,删除最近将要过期数据。如果没有,回退到noeviction策略。

    (8)      noeviction -> 不会删除任何数据,拒绝所有写入操作并返回客户端错误信息,此时Redis只响应读操作。

    8.      集群

    (1)      主从机制(主从同步、从从同步)

    (2)      Sentinel哨兵模式(实现自动故障切换。提供稳定的服务)

    相关文章

      网友评论

        本文标题:Redis个人学习总结

        本文链接:https://www.haomeiwen.com/subject/ficauhtx.html