redis 两种持久化的对比

redis 两种固化方式
    Redis DataBase(简称RDB)   间隔时间和变更次数决定
    优点:单独子进程来持续优化,主进程不会有任何IO,不影响redis的高可用性
    缺点:间隔一段时间进行持久化,如故障会发生数据丢失




    Append-only file (简称AOF)
    优点:保持更高的数据完整性
    缺点:AOF文件比RDB文件大,且恢复速度慢 较大的IO开支




    策略: master AOF 确保完整性 
          slave rdb




    redis 查找key 的办法
    keys 如果比较多会阻塞
    scan 无阻塞的取出指定模式的key列表

HGETALL key

起始版本:2.0.0

时间复杂度:O(N) where N is the size of the hash.

返回 key 指定的哈希集中所有的字段和值。返回值中,每个字段名的下一个是它的值,所以返回值的长度是哈希集大小的两倍

可以了解到命令HgetAll的时间复杂度为O(n)。这意味着Hash的field越多,当使用HgetAll获取全量数

据时,性能越差,该命令的性能与field字段的数量成正比。

遇到问题后,上网查询资料,解决方案大致两种:

1) 借助MemCached

2) 新增一个field字段,将原Redis key对应的所有数据信息全部存储在该filed中,然后使用Hmget命令代替HgetAll

但是以上两种方案,均存在各种弊端,并没有从根本上解决问题。找公司其他部门技术大拿交流,最终讨论出以下方案解决问题:

通过使用Redis dump命令获取到Redis序列化后的值,获取到的是字节数组。在应用中将该字节数组按照Redis协议自行解析成需要的HashMap数据。

方案优点:

1)  dump命令的时间复杂度为O(1),性能优于HgetAll

2)  将字节数组的解析由Redis服务器转移到了应用服务器,减轻了Redis 服务器CPU的运算压力

3)  充分利用了应用服务器的CPU,并且应用服务器方便扩容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fish_study_csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值