免费注册


浪潮云说 | 云数据库Redis快之有道

2021-11-29 人浏览

伴随着互联网的发展,越来越多的用户把热点数据放到Redis中处理,但Redis是采用单线程模型,对单个数据处理效率会非常敏感,处理不当可能会引起应用响应缓慢,数据丢失等情况发生,本文将简单介绍Redis跟性能相关的三个特性以及与之相关的性能调优建议。
主从复制与集群分片
首先我们需要从应用软件的功能特性、数据访问量级、未来发展规划及成本等方面综合考虑选择合适的云数据库实例类型。


主从复制
Redis 支持一主一从的主从复制架构。一个Master实例负责处理所有的写请求,Master 将写操作同步至Slave。当Master Crash后,容灾系统能够自动将Slave晋升为Master且沿用IP,继续提供服务,从而实现高可用
集群分片
Redis做集群分片,主要原因有两方面:
  • 数据量大,一台主机的物理内存已无法容纳

  • 写请求并发量大,一个Redis实例已无法承载

常用的分片方案是Redis官方Redis Cluster分片方案:
  • 能够自动将数据分散在多个节点上

  • 当访问的Key不在当前分片上时,能够自动将请求转发至正确的分片

  • 当集群中部分节点失效时仍能提供服务,Redis Cluster的每个数据分片都采用了主从复制的架构

数据持久化
Redis相较于其他内存数据库,很大一个优势特点是可以做数据持久化。
1. RDB:类似于快照,在某个时间点,将Redis在内存中的数据库状态形成一个rdb文件保存到磁盘,并在启动时自动加载rdb文件,恢复之前保存的数据。
2. AOF:保存Redis实例所执行的所有写操作命令到一个日志文件,来记录数据库状态。重启时,通过重新执行这些命令来还原数据集。与RDB方式的区别,是将记录数据变为记录数据产生的过程。主要解决了数据持久化的实时性的问题。
3. 综合对比:


  • 如对业务数据非常敏感,不允许丢数据,选用AOF

  • 如能承受数分钟以内的数据丢失,且追求大数据集的恢复速度,选用RDB,灾难恢复建议选用RDB

缓存分析
云数据库 Redis提供缓存分析功能。可分析不同数据类型TOP,总数据大小以及不同类型的key占用空间大小,从而为优化操作提供数据支持。
总结及建议
尽管数据都是在内存中读取,理论上速度会比磁盘读取更快,但Redis所有的命令都是由一个线程串行执行,当某个命令执行耗时较长时,会影响其后所有命令的执行。
针对Redis的性能优化,可以从以下几个方面考虑:
  • 确保没有让Redis执行耗时长的命令

  • 可通过缓存分析功能,查看key分布占用情况,并针对性调整

  • 使用pipelining将连续执行的命令组合执行

  • 检查数据持久化策略

  • 考虑引入读写分离机制



上一篇: 浪潮云说丨票据跨链融合共享,浪潮云区块链IBAAS有话说
下一篇: 行业云说丨云端之上,见证玫瑰绽放

相关文章