深入理解Redis

说到缓存,不得不提到Memcached和Redis。首先对比下Memcached和Redis的不同。

Memcached场景与局限

        只能做cache,不能做storage

        没有数据结构支持

        数据局部踢出现象

        cache与存储资源访问能力落差

        不能枚举全数据

        访问性能仍有提升空间

 

Redis特点

        key - structure 类型存储

        支持数据可靠存储及落地

        支持复制(cluster版本在开发)

        单进程单线程高性能服务器

        crash safe & recovery slow     

        缺少内存管理算法,依赖第三方库

        单机qps可以达到 10W (cpu是瓶颈)

Redis(a disk backed in-memory database),说白了就是高性能网络接口 + 数据结构集合。

 

Redis 数据类型

    string

    hash

    list

    set

    sorted set

 

Redis 持久化机制

    1.snapshot

        save 参数

    2.aof

        appendfsync 参数

    3.vm

        vm is not the way to go for the future

    4.diskstore

        传统b-tree

 

Redis 复制

    实现机制      

        快照同步

    存在的问题    

        无增量复制     slave表重建

 

Redis缺陷与优化

    持久化IO机制

    复制机制

    内存管理

    线程模型

    故障恢复时间

 

持久化问题 – buffer io

    145009_QAIc_2358147.png

 

持久化问题 - fsync

    fsync非常耗时

    单进程阻塞操作

    快照与fsync同时进行

 

复制缺陷

    145115_RkBb_2358147.png

内存管理

    缺少高效内存管理

    额外内存占用过多

    针对特殊场景做优化

    开放地址Hash

 

Redis 使用场景

    需要key - structure复杂数据结构

    需要数据可靠存储

    需要极高的单机qps

    using RAM as the new disk

转载于:https://my.oschina.net/u/2358147/blog/686013

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值