文档简介:
常见问题
Q:分布式缓存服务支持通用的客户端(如Jedis)吗?
A:支持。任何兼容Redis协议的客户端都可以访问分布式缓存服务。Redis客户端的下载,请参见/clients。
Q:使用分布式缓存服务,需要在弹性云主机上安装Redis吗?
A:不需要。您只需要通过相应的Redis客户端即可从弹性云主机上连接使用缓存实例。
Q:连接分布式缓存服务必须使用密码吗?如何获取密码?
A:Redis本身支持不设置密码,客户端可以直接连接Redis缓存服务并使用。分布式缓存服务出于安全考虑,客户端连接缓存实例必须通过密码来鉴权验证。您需要在创建缓存实例时自定义密码。分布式缓存服务处于“运行中”状态的缓存实例支持修改密码。
Q:分布式缓存服务的备节点是否会与其主节点同步保持最新状态?
A:一般情况下,主节点的更新会自动复制到关联的备节点。但由于Redis异步同步的技术,备节点更新可能会落后于主节点。例如,主节点的I/O写入速度超过了备节点的同步速度,或者因异常原因导致的主节点和备节点的网络延迟,使得备节点与主节点存在滞后或者部分数据不一致,若此时进行主备切换,未同步的少量数据可能会丢失。
Q:分布式缓存服务支持数据持久化吗?
A:单机实例不支持,主备实例支持。
Q:分布式缓存服务支持公网访问吗?
A:不支持。您必须通过同一虚拟私有云下的弹性云主机来访问缓存实例。
Q:分布式缓存服务是否支持修改配置参数?
A:处于“运行中”状态的缓存实例支持修改配置参数。
Q:缓存实例的数据被删除之后,能否找回?
A:缓存实例自行删除或者通过Redis客户端发送命令手动删除的数据,不能找回。
缓存实例整个被删除后,实例数据也将丢失,不能找回,因此删除实例应当谨慎。
主备缓存实例支持实例数据备份,如果实例有数据备份,则可以通过恢复实例完成数据找回。
Q:分布式缓存服务默认的数据逐出策略是什么?
A:逐出指将数据从缓存中删除,以腾出更多的存储空间容纳新的缓存数据。DCS默认策略为不逐出(noeviction),用户可以在配置运行参数中修改逐出策略。在达到内存上限(maxmemory)时Redis支持选择以下6种数据逐出策略:
1、noeviction:在这种策略下,如果缓存达到了配置的上限,实例将不再处理客户端任何增加缓存数据的请求,比如写命令,实例直接返回错误给客户端。缓存达到上限后,实例只处理删除和少数几个例外请求。
2、allkeys-lru:根据LRU(Least recently used,最近最少使用)算法尝试回收最少使用的键,使得新添加的数据有空间存放。
3、volatile-lru:根据LRU(Least recently used,最近最少使用)算法尝试回收最少使用的键,但仅限于在过期集合的键,使得新添加的数据有空间存放。
4、allkeys-random:回收随机的键使得新添加的数据有空间存放。
5、volatile-random:回收随机的键使得新添加的数据有空间存放,但仅限于在过期集合的键。
6、volatile-ttl:回收在过期集合的键,并且优先回收存活时间(TTL)较短的键,使得新添加的数据有空间存放。
Q:客户端连接缓存实例超时后怎么办?
A:建议重新连接缓存实例。超时可能是网络原因,也有可能是服务器端其他因素引起,比如当客户端应用对缓存实例超载或者缓存实例发生了主备切换,会导致Redis客户端出现“Connection timed out”或者“Connection reset by peer”提示。由于部分客户端不支持与缓存实例的自动重连,因此建议用户在应用程序中增加重新建立连接的功能。
Q:为什么缓存实例创建后实际可用内存比申请规格小,而且已使用内存不为0?
A:由于系统开销会占用部分资源,主备实例的持久化也需要一部分资源,所以实例创建后,实际可用内存小于申请规格。
除了用户存储数据外,Redis-server内部的buffer以及内部数据结构会占用一部分内存。所以缓存实例创建后,实例已使用内存量不为0。
Q:分布式缓存服务支持哪些监控指标?
A:
指标名称 |
含义 |
取值范围 |
测量对象 |
CPU利用率 |
该指标用于统计测量对象的CPU利用率,以百分比为单位。 |
0-100% |
弹性云主机 |
内存利用率 |
改指标用于统计测量对象的内存利用率,以百分比为单位。 |
0-100% |
弹性云主机 |
网络输入吞吐量 |
该指标用于统计网口平均每秒的输入流量,以字节/秒为单位。 |
>= 0字节/秒 |
弹性云主机 |
网络输出吞吐量 |
该指标用于统计网口平均每秒的输出流量,以字节/秒为单位。 |
>= 0字节/秒 |
弹性云主机 |
活跃的客户端数量 |
该指标用于统计已连接的客户端数量,不包括来自从节点的连接,以个为单位。 包括DCS后台管理服务监控实例使用的客户端连接。 |
>=0个 |
分布式缓存服务 |
客户端最长输出列表 |
指标用于统计客户端所有现存连接的最长输出列表,以个为单位。 |
>=0个 |
分布式缓存服务 |
客户端最大输入缓冲 |
该指标用于统计客户端所有现存连接的最大输入数据长度,以字节为单位。 |
>=0字节 |
分布式缓存服务 |
阻塞的客户端数量 |
该指标用于被阻塞操作挂起的客户端的数量。阻塞操作如BLPOP,BRPOP,BRPOPLPUSH,以个为单位。 |
>=0个 |
分布式缓存服务 |
已用内存 |
该指标用于统计Redis已使用的内存字节数,以字节单位。 |
>=0字节 |
分布式缓存服务 |
已用内存RSS |
该指标用于统计Redis已使用的RSS内存。即实际驻留“在内存中”的内存数。包含和堆,但不包括换出的内存,以字节为单位。 |
>=0字节 |
分布式缓存服务 |
已用内存峰值 |
该指标用于统计Redis服务器启动以来使用内存的峰值,以字节为单位。 |
>=0字节 |
分布式缓存服务 |
Lua已用内存 |
该指标用于统计Lua引擎已使用的内存字节,以字节为单位。 |
>=0字节 |
分布式缓存服务 |
内存碎片率 |
该指标用于统计当前的内存碎片率。其数值上等于used_memory_rss / used_memory。 |
>=0 |
分布式缓存服务 |
总共收到的连接数 |
该指标用于统计Redis服务器启动以来总共收到的连接数,以个为单位。 包括DCS后台服务管理的监控连接数。 |
>=0个 |
分布式缓存服务 |
总共处理的命令数 |
该指标用于统计Redis服务器启动以来总共处理的命令数。 包括DCS后台服务管理监控命令数。 |
>=0个 |
分布式缓存服务 |
每秒并发操作数 |
该指标用于统计每秒处理的命令数,以操作/秒为单位。 |
>=0操作/秒 |
分布式缓存服务 |
网络总共收到字节数 |
该指标用于统计Redis服务器启动以来总共收到的字节数,以字节为单位。 |
>=0字节 |
分布式缓存服务 |
网络总共发送字节数 |
该指标用于统计Redis服务器启动以来总共发送的字节数,以字节为单位。 |
>=0字节 |
分布式缓存服务 |
网络瞬时输入流量 |
该指标用于统计瞬时的输入流量,以千比特/秒为单位。 |
>=0千比特/秒 |
分布式缓存服务 |
网络瞬时输出流量 |
该指标用于统计瞬时的输出流量,以千比特/秒为单位。 |
>=0千比特/秒 |
分布式缓存服务 |
已拒绝的连接数 |
该指标用于统计Redis服务器启动以来总共因为超过maxclients而拒绝的连接数量,以个为单位。 |
>=0个 |
分布式缓存服务 |
全量同步次数 |
该指标用于统计Redis服务器启动以来总共完成的全量同步次数,以个为单位。 |
>=0个 |
分布式缓存服务 |
增量同步成功次数 |
该指标用于统计Redis服务器启动以来总共成功的增量同步次数,以个为单位。 |
>=0个 |
分布式缓存服务 |
增量同步出错次数 |
该指标用于统计Redis服务器启动以来总共出错的增量同步次数,以个为单位。 |
>=0个 |
分布式缓存服务 |
已过期的键数量 |
该指标用于统计Redis服务器启动以来总共过期的键数量,以个为单位。 |
>=0个 |
分布式缓存服务 |
已挤出的键数量 |
该指标用于统计Redis服务器启动以来总共因为内存不足被挤出的键数量,以个为单位。 |
>=0个 |
分布式缓存服务 |
Keyspace命中次数 |
该指标用于统计Redis服务器启动以来在主字典中总共的查找命中次数,以个为单位。 |
>=0个 |
分布式缓存服务 |
Keyspace错过次数 |
该指标用于统计Redis服务器启动以来在主字典中总共的查找不命中次数,以个为单位。 |
>=0个 |
分布式缓存服务 |
Pubsub通道个数 |
该指标用于统计Pub/Sub通道个数,以个为单位。 |
>=0个 |
分布式缓存服务 |
Pubsub模式个数 |
该指标用于统计Pub/Sub模式个数,以个为单位。 |
>=0个 |
分布式缓存服务 |
AOF文件当前大小 |
该指标用于统计AOF文件当前大小,以字节为单位。 |
>=0个 |
分布式缓存服务 |
最近Fork耗时 |
该指标用于统计最近Fork耗时,以毫秒为单位。 |
>=0毫秒 |
分布式缓存服务 |