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查看。

如何用分布式缓存服务实现Redis内存优化的更多相关文章

  1. 第十二节:Asp.Net Core 之分布式缓存(SQLServer和Redis)

    一. 整体说明 1. 说明 分布式缓存通常是指在多个应用程序服务器的架构下,作为他们共享的外部服务共享缓存,常用的有SQLServer.Redis.NCache.     特别说明一下:这里的分布式是 ...

  2. 分布式缓存Memcache和Redis

    引言 针对于如今计算机的CPU和网络设施,相应用程序来说,运行效率的瓶颈.已经不是代码的长度(实现同一个功能)和带宽了,而是,代码訪问资源的过程.即:让我们的程序慢下来的罪魁祸首就是IO操作. 程序从 ...

  3. 华为云分布式缓存服务DCS与开源服务差异对比

    华为云分布式缓存DCS提供单机.主备.集群等丰富的实例类型,满足用户高读写性能及快速数据访问的业务诉求.支持丰富的实例管理操作,帮助用户省去运维烦恼.用户可以聚焦于业务逻辑本身,而无需过多考虑部署.监 ...

  4. fourinone分布式缓存研究和Redis分布式缓存研究

    最近在写一个天气数据推送的项目,准备用缓存来存储数据.下面分别介绍一下fourinone分布式缓存和Redis分布式缓存,然后对二者进行对比,以供大家参考. 1  fourinone分布式缓存特性 1 ...

  5. 组件-------(一)redis系列--安装部署redis+实现redis分布式缓存 java+Spring+redis

    目的:解决单机session不能共享问题,插入查询数据库时间效率问题,实现分布式缓存. 准备材料:Redis 下载链接 http://pan.baidu.com/s/1dEGTxvV 相关jar包如果 ...

  6. 【分布式缓存系列】Redis实现分布式锁的正确姿势

    一.前言 在我们日常工作中,除了Spring和Mybatis外,用到最多无外乎分布式缓存框架——Redis.但是很多工作很多年的朋友对Redis还处于一个最基础的使用和认识.所以我就像把自己对分布式缓 ...

  7. 使用微软分布式缓存服务Velocity(Windows Server AppFabric Caching Service)

    概述 Velocity是微软推出的分布式缓存解决方案,为开发可扩展性,可用的,高性能的应用程提供支持,可以缓存各种类型的数据,如CLR对象. XML.二进制数据等,并且支持集群模式的缓存服务器.Vel ...

  8. Redis内存优化memory-optimization

    https://redis.io/topics/memory-optimization  官方文档 一.特殊编码: 自从Redis 2.2之后,很多数据类型都可以通过特殊编码的方式来进行存储空间的优化 ...

  9. redis内存优化方法

    先来认识2个redis配置参数 hash-max-ziplist-entries : hash内部编码压缩列表的最大值,默认512 hash-max-zipmap-value : hash内部编码压缩 ...

随机推荐

  1. Linux 压力测试及内存检测

    常用的 Stress / Performance 工具 http://benjr.tw/532 Linux中的常用内存问题检测工具 https://blog.csdn.net/jinzhuojun/a ...

  2. Hive DDL&DML

    1.删除分区 ALTER TABLE table_name DROP IF EXISTS PARTITION(dt=') 如果是外部表,记得rm对应文件 2.添加分区 ALTER TABLE tabl ...

  3. Vue指令的概念

    指令(Directives) 是带有v- 前缀的特殊属性,指令属性是单一的js表达式. 指令的职责就是表达式的值发生变化时,在DOM中做出相应的回应. 如下例子: 实例 <div id=&quo ...

  4. ThinkPHP---thinkphp会话支持和文件载入

    [一]会话控制 会话支持一般指cookie和session,在ThinkPHP里为了方便开发,封装了cookie和session方法. (1)session方法 在函数库封装了session方法 se ...

  5. 字符串、散列--P1598 垂直柱状图

    题目描述 写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过100个字符),然后用柱状图输出每个字符在输入文件中出现的次数.严格地按照输出样例来安排你的输出格式. 输入输出格式 输入格 ...

  6. Luogu P2847 [USACO20DEC]Moocast(gold)奶牛广播-金

    解题思路 要保证图是强连通的,用因为给出的边全部都是双向边.考虑树形的结构,在一棵树上的$N$个节点一定是强连通的.他们都能够互相到达.又要保证树上的$n-1$条边中的最长的一条边最小.那就用Krus ...

  7. Linux 安装 Tomcat 详解

    说明:安装的 tomcat 为解压版(即免安装版):apache-tomcat-8.5.15.tar.gz (1)使用 root 用户登录虚拟机,在根目录下的 opt 文件夹新建一个 software ...

  8. db2 group by的疑惑。

    按借据号分组,显示每组的条数:

  9. Git学习总结(14)——Git使用前的注意事项

    连接方式https.ssh 在使用git的时候,不管你的服务器是开源平台github还是私服gitlab,你都需要clone仓库到本地,这个clone的时候就需要你选择连接方式.这个连接方式决定了你与 ...

  10. Java MyBatis 插入数据库返回主键--insertSelective这样就不用每次到数据库里面查询了

    insertSelective---Java MyBatis 插入数据库返回主键--insertSelective这样就不用每次到数据库里面查询了 https://www.cnblogs.com/xi ...