zoukankan      html  css  js  c++  java
  • 如何用分布式缓存服务实现Redis内存优化

    Redis是一种支持Key-Value等多种数据结构的存储系统,其数据特性是“ALL IN MEMORY”,因此优化内存十分重要。在对Redis进行内存优化时,先要掌握Redis内存存储的特性比如字符串,压缩编码,整数集合等,再根据数据规模和所用命令需求去调整,从而达到空间和效率的最佳平衡。

    但随着数据大幅增长,开发人员需要面对重新优化内存所带来开发和数据迁移的双重成本也越来越高。Redis所有的数据都在内存中,那么,我们是否可以通过简便高效的方式去实现Redis内存优化呢?

    答案当然是可以的。分布式缓存服务DCS是兼容Redis的内存数据库服务,基于双机热备的高可用架构,提供单机、主从、集群等丰富类型的缓存类型,满足用户高读写性能及快速数据访问的业务诉求。如何使用分布式缓存服务DCS实现Redis的内存优化呢?让我们一起来看看。


    操作步骤:

    1、登录管理控制台。在管理控制台左上角单击图标,选择区域和项目。

    2、单击页面上方的“服务列表”,选择“数据库 > 分布式缓存服务”,进入分布式缓服务信息页面。

    3、单击左侧菜单栏的“缓存管理”。

    4、在“缓存管理”页面,单击缓存实例的名称。

    5、单击“配置参数”页签进入配置界面。

    6、单击“修改”。

    7、根据需要修改相关参数。

    各参数的详细介绍见表1,一般情况下,按照系统默认值设置参数即可。

    为了确保分布式缓存服务DCS发挥出最优性能,用户可以根据自己的业务情况对Redis实例的运行参数进行调整。以下为Redis实例配置参数说明:

    参数名

    参数解

    取值范

    默认

    timeout

    客户端与服务端连接空闲超时断开时间,参数设为0表示连接永不断开。

    0~7200,单位:秒。

    0

    maxmemory-policy

    内存使用达到上限时对缓存数据管理策略。

    参数说明请参考https://redis.io/topics/lru-cache

    volatile-lru

    allkeys-lru

    volatile-random

    allkeys-random

    volatile-ttl

    noeviction

    noeviction

    hash-max-ziplist-entries

    当hash表中记录数少于参数值,使用ziplist编码格式,节约内存。

    1~10000

    512

    hash-max-ziplist-value

    当hash表中各字段长度的最大值小于参数值时,使用ziplist编码格式,节约内存。

    1~10000

    64

    list-max-ziplist-entries

    当列表中记录数少于参数值,使用ziplist编码格式,节约内存。

    1~10000

    512

    list-max-ziplist-value

    当列表中各字段长度的最大值小于参数值时,使用ziplist编码格式,节约内存。

    1~10000

    64

    set-max-intset-entries

    当一个集合仅包含字符串且整形元素数量少于参数值时,使用intset编码格式,节约内存。

    1~10000

    512

    zset-max-ziplist-entries

    当有序集合中记录数少于参数值,使用ziplist编码格式,节约内存。

    1~10000

    128

    zset-max-ziplist-value

    当有序集合中各字段长度的最大值小于参数值时,使用ziplist编码格式,节约内存。

    1~10000

    64

    latency-monitor-threshold

    延时监控的采样时间阈值(最小值)。

    当阈值设置为0时,不做监控,也不采样;当阈值设置为大于0时,将监控并记录执行耗时大于阈值的操作。

    用户可以通过LATENCY等命令获取统计数据和配置、执行采样监控。详情参考Redis官网说明:https://redis.io/topics/latency-monitor

    0~86400000,单位:毫秒。

    0

    reserved-memory

    预留内存,主备实例才有此配置。

    预留内存将被分配给实例所在虚拟机,保证DCS实例后台进程在做持久化和主从同步等任务时拥有足够的内存。

    预留内存大小可以调高或者调低,但不能超过实例当前剩余的可用内存,以及最大可用内存的50%。其中实例最大可用内存可参考《分布式缓存服务产品介绍》。

    实例最大可用内存数的0-50%,同时不能超过实例当前剩余的可用内存,具体以界面提示为准,单位:MB。

    0

    notify-keyspace-events

    键空间通知,配置该参数后客户端可以通过Redis的订阅与发布功能,来接收那些以某种方式改动了Redis数据集的事件。

    配置为空字符串""时,不支持该功能。

    可配置为以下字符的任意组合,指定了服务器该发送哪些类型的通知:

    K:键空间通知,所有通知以__keyspace@__为前缀。

    E:键事件通知,所有通知以__keyevent@__为前缀。

    g:DEL、EXPIRE、RENAME等类型无关的通用命令的通知。

    $:字符串命令的通知。

    l:列表命令的通知。

    s:集合命令的通知。

    h:哈希命令的通知。

    z:有序集合命令的通知。

    x:过期事件:每当有过期键被删除时发送。

    e:驱逐(evict)事件:每当有键因为maxmemory政策而被删除时发送。

    ""

    以上就是如何用分布式缓存服务实现Redis内存优化的大致介绍,想要了解更多,欢迎点开分布式缓存服务DCS查看。

  • 相关阅读:
    贴一段微博上的小知识
    关于编译Qt以及驱动的一点总结吧
    一些服务器客户端的c例子
    android中DatePicker和TimePicker的使用
    Python标准库string模块《未完待续》
    Qt: SQL Programming
    和一个坑爹的项目组的经历
    linux一些杂项整理
    Qt中的QTableWidget
    Linux c学习进程基础学习
  • 原文地址:https://www.cnblogs.com/middleware/p/9305440.html
Copyright © 2011-2022 走看看