客服一:
客服二:
客服三:

缓存服务

采用无中心节点的集群架构。客户端可使数据自动路由到所负责节点、实现了多个节点间的数据共享、支持动态调整数据分布,从而实现负载匀衡、支持人工动态调整主从关系、可保证某些节点无法提供服务时不影响整个集群的操作。

产品概述
产品优势

SendOneWay。

提供JAVA SDK。

多套业务环境共用缓存集群。

提供只读,可读可写,持久化三种不同接入方式。

发布订阅提供String、Hash散列表、List列表、Set集合4中数据类型的操作。

集群采用一主一备,六个节点的部署方式。

为保定缓存服务的稳定性,选用AOF与RDB双模式的持久化策略。

新增集成Spring和非Spring使用Java sdk功能。便于在各种场景的轻松接入。

为保证Cache集群正常运行新增认证授权功能,防止恶意对接线上Cache集群,恶意操作压垮Cache服务。

实现数据隔离,在不同业务场景,使用相同key时,互不影响。

为节约资源,对于不同业务,实现可读,读写,持久化三种方式的对接方式。

新增可视化统计功能,能看到每个namespace每分钟,每小时,每天的调用量。

新增智能限流功能,防止恶意占用Cache集群的流量,影响其他业务的使用。

应用场景
电商平台 视频直播 游戏行业 互联网应用

电商行业中,对大型促销秒杀、商品库存的实时更新、带有计数的应用、商品库存量、商品的实时推荐等,系统整体的访问压力巨大,

使用缓存redis能够轻松承载巨大的瞬时读写压力并进行数据持久化;

通过缓存服务提供的强大性能支持,可提供高达100W+的QPS来轻松应对高并发访问。

视频直播行业中,爆发式的用户数据、互动数据、物品道具数据等出现的流量突发场景,缓存百万级的QPS可以满足低时延、高并发的业务需求

在游戏行业中,为了快速抢占市场,加上本身对性能、交互的高要求,使用缓存服务可以减少开发的复杂度并极大的提升性能,当业务持续增长的 时候,可以平滑的进行扩容,满足各个阶段业务的需求;基于缓存Redis自身特点,比如每日任务、成就、各种积分排名、功能活动、玩家交际属 性等策划案的实现,缓存服务都有非常明显的优势

网站、APP等对读写压力要求较高的应用,缓存服务提供高QPS、构建队列系统、数据缓存、精准设定过期时间、数据持久化到RDS的应用等

常见问题
关于namespace与authKey

namespace与authKey是接入分布式缓存系统的凭证,每个namespace会对于多个authKey。为了确保每组只能有权限操作本组数据,又可以共享本组数据,所以在申请时namespace根据业务场景的不同,authKey分为只读、可读可写,持久化三种权限。

[1]authKey表示CloudCache授权码,第一个字母含0:只读,1:可读可写,2:可持久化。
[2]使用接入分布式缓存集群时,namespace与authKey为必须配置项,否者不允许接入。
[1]如果申请namespace是持久化类型,没有设置persisten=true,则视为作普通缓存。
关于缓存集群

分布式缓存的集群采用一主一备,六个节点的部署方式。当主节点crash或者内存溢出时,从节点会自动提升为主节点。

在主从节点切换时会有延迟阶段,延迟阶段的数据无法写入,此种场景下客户端应用程序需进行读写操作可能会报错,因此应用程序需要做好异常处理,并做重试处理。
Cache线程池

Cache线程池默认最大连接数为当前系统的CPU核数。线程池的最大连接数可以设置,当线程池的最大连接数是操作系统CPU核数的三倍左右时,集群缓存数据的TPS达到最高,但此种场景下消耗应用程序所在服务器的绝大部分内存和CPU资源,所以请根据你的业务需要来调整线程池的最大连接数。

内存算法策略

虽然Cache支持六种内存策略,考虑业务团队需要在集群中持久化缓存数据,我们选用默认noeviction策略,它是指当集群运行内存达到阈值的时候,所有需要申请内存或导致更多内存占用的命令会报错,此类命令包括大多数写命令(除了DEL命令和部分命令例外)。此种场景下集群核心缓存服务进程不会挂死,集群支持读数据,但不能写数据。集群已写入内存的普通数据将会按照缓存到期时间被淘汰,而已写入内存持久化数据不会被淘汰。

基于此内存策略我们建议:尽可能少的缓存持久化数据,以降低内存资源耗尽的可能。
数据持久化策略

根据业务团队的需求场景,并考虑到分布式缓存服务的稳定性,我们选用AOF与RDB双模式的持久化策略,而对于AOF文件的三种同步策略中,我们选用了everysec策略, 它每秒同步一次数据,兼顾缓存数据的一致性和可靠性,同时数据同步的效率也较高。