如何用分布式缓存服务实现Redis内存优化

时间:2021-12-09 00:20:13

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. EF环境搭建碰到的问题

    研究EF Code Frist安装Entity Framework的时候,遇到了一些问题,下面就描述一下这些问题,顺便附上问题的解决办法. 1.Nuget安装EF的时候,一直报错,解决的办法是,卸载N ...

  2. appcan.windw.open appcan.frame.open appcan.window.openPopOver evaluateScript

    在模拟器上,几种发方式产生的窗口,其实都是iframe. 在根窗口(app打开的第一个)执行JS: try{ appcan.window.evaluateScript( { name: 'root', ...

  3. Android 如何动态改变Actionbar上的item图标

    1.Activity菜单机制 (与dialog类似) Activity有一套机制来实现对菜单的管理,方法如下: 1.public boolean onCreateOptionsMenu(Menu me ...

  4. 标量子查询优化(用group by 代替distinct)

    标量子查询优化 当使用另外一个SELECT 语句来产生结果中的一列的值的时候,这个查询必须只能返回一行一列的值.这种类型的子查询被称为标量子查询 在某些情况下可以进行优化以减少标量子查询的重复执行,但 ...

  5. 反序列化json的坑

    json格式没有错误,内容没有什么异常 反序列化一直显示第一行有异常符号, 在https://jsonlint.com/上面检测了一下,发现了这个 解决办法: UTF-8格式编码 改成 UTF-8无B ...

  6. python全栈开发day80--评论楼、评论树

    内容总结: 1. 内容回顾 1. 内容回顾 1.评论 1. 展示评论 1. 评论楼(Django模板语言渲染) 1. 从后端查询出所有的评论 2. 如果有父评论就展示父评论 2. 评论树 通过ajax ...

  7. vue中插入Echarts示例(菜鸟记录)

  8. vue中点击复制粘贴功能

    1.下载clipboard.js cnpm install clipboard --save 2.引入,可以在mian.js中全局引入也可以在单个vue中引入 import Clipboard fro ...

  9. P1412 经营与开发

    题目描述 4X概念体系,是指在PC战略游戏中一种相当普及和成熟的系统概念,得名自4个同样以“EX”为开头的英语单词. eXplore(探索) eXpand(拓张与发展) eXploit(经营与开发) ...

  10. cocos2d-x开发: 完善接口范例分离模块

    在上一篇文章中,我阐述了一下为什么要做分离这种工作,这篇文章没什么重点,只是将上一次没有完善的工作做完.原本我想做到像Lua-tests那样子,能够一次完全显示所有的tests,然后选择要执行的tes ...