1. 聚能聊>
  2. 话题详情

王者荣耀里拿个王者有啥了不起,有胆就来挑战一下ApsaraCache源码

Mouicon

王者荣耀大家估计都玩的很溜吧,撸完代码开一局,只要不遇到个猪队友,拿个鲁班后羿估计你们都能爆掉对手的塔吧。大神们打个排位赛拿个王者就和吃饭夹菜一样简单。。。

But。。。你们玩过Redis和Memcache吗?

  我当然知道你会说“会”,身为一个搞IT的,搞互联网的高端人士,在当今这种网站的数据呈爆炸式的增长、而且高性能读写的需求也越来越大、再加上半结构化的数据比重逐渐变大的年代,没听说过个NoSQL你好意思出来混么。。。

But。。。Redis内核源码你们玩过么?

  那种只会个set、get;lpush、lpop的伙计们你们先抱个瓜找个小板凳坐会哈,不是小编我嘚瑟,伦家作为一个硬件攻城狮(long long ago)都会建个集群搞个sentinel放个哨了,我们还是一起抱着看热闹不嫌事大的心态,看看大神们都怎么玩吧。
今天要出场的主角是6月10号上海云栖大会上刚刚亮相的明星。

So ,let`s very welcome ApsaraCache!!!

  ApsaraCache(飞天缓存),它是阿里云的云数据库Redis版所使用的Redis分支,它是由阿里云数据库团队的数名顶尖技术专家历经4年打磨,上万生产环境实例运行所沉淀的技术精华。ApsaraCache是在社区2.8版本基础上开始维护的分支,并backport了部分3.0分支的功能。

  来看看阿里云飞天缓存ApsaraCache对比社区版本有着哪些优势:
1. 兼容Memcached协议,提供持久化,双机热备能力,数据更稳定可靠;
2. 短连接场景下性能提升30%以上,对于PHP等短连接应用居多的用户效果提升更为明显;
3. 解决了原生内核在弱网条件下容易复制中断导致的全量同步问题;
4. 避免AOF Rewrite频繁造成的主机稳定性瓶颈,且能精确到秒级的按时间点恢复;
5. 增加了热升级的功能,能够在3ms内完成一个实例的热更新,解决了内核频繁升级对用户带来的影响;
6. 对实例的可用性进行检测,避免 Redis单线程阻塞,同时可对磁盘进行探测解决磁盘提前反馈切换。

  看了飞天缓存ApsaraCache的这些牛哄哄飞天的能力,9月份即将全面开源,大神们有没有一点小期待。

提前申请测试一下吧,毕竟毛主席曾经说过:不想当源码测试员的程序猿不是好的荣耀王者。

So ,it`s your show time!另外对于内存数据库这块,聊聊你的看法吧:

大家平时常用的内存数据库有哪些?有什么优点和痛点?

大家平时用Redis是自建的还是用云上的服务的,说说在使用过程中的感受吧。

Redis高可用怎么做?Redis备份怎么做?用的时候出过什么故障?

Redis如何做到时间点恢复?(这个有点难哦,高手表现的时候到了)

参与话题

奖品区域 活动规则 活动已结束,可继续参与讨论哦

  • 奖品一

    星座淘公仔 x 2

99个回答

2

jackyliu 已获得星座淘公仔

大家平时常用的内存数据库有哪些?有什么优点和痛点?
redis
好处:做排行榜、一段时间后过期的记录(比如签到、活动参加记录等),好爽好爽
痛点:没有mysql的binlog日志和command的审计功能啊~~~
mongo
好处:存储游戏玩家背包、任务进度这种数据结构好爽,不用建mysql表了,适合用唯一ID来增删查改一个玩家的数据
痛点:非常不适合做全表扫描的统计、group by等操作,谁搞过谁知道

大家平时用Redis是自建的还是用云上的服务的,说说在使用过程中的感受吧。
测试自建,生产环境用阿里云的,好用不贵,主要是多了高可用架构,多了历史监控统计

Redis高可用怎么做?Redis备份怎么做?用的时候出过什么故障?
高可用?看这里,拿走不谢~ https://redis.io/topics/sentinel
备份?嗯,redis毕竟是会数据落地的,所以我们没有做过备份,而且阿里云上有备份哈
故障?
1.本来应该写superBigSet.isMember(uid),小伙伴写成了superBigSet.members().contains(uid),你懂的,网络被打满了,redis连不上了~
2.磁盘慢了,redis无法写入

Redis如何做到时间点恢复?(这个有点难哦,高手表现的时候到了)
这个需求不多,aof文件里面,每个command有时间戳么?有的话,自己切割aof,重播一下好了,没有的话,左转阿里云。

另外你们开源个代码还要申请,这个真心好么,不怕被嘲讽?

不与 回复

没有表述清楚,这个是申请提前测试,我们正式开源要到9月份,抱歉给您造成困扰了,给你发个公仔表达下我的歉意哈。

评论
1

浮生递归 已获得星座淘公仔

在实际应用中内存数据库主要是配合oracle或mysql等大型关系数据库使用,关注性能。
作用类似于缓存,并不注重数据完整性和数据一致性。
基于键值型的内存数据库比关系型更加易于使用,性能和可扩展性更好,因此在应用上比关系型的内存数据库使用更多。
Memcached主要用做数据库的数据高速缓冲,并不能完全称为数据库。
redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。
Sentinel&Jedis看上去是个完美的解决方案,这句话只说对了一半,在无分片的情况是这样,但应用使用了数据分片-sharing,数据被平均分布到4个不同的实例上,每个实例以主从结构部署,Jedis没有提供基于Sentinel的ShardedJedisPool,也就是说在4个分片中,如果其中一个分片发生主从切换,应用所使用的ShardedJedisPool无法获得通知,所有对那个分片的操作将会失败。

0

风月无边

感觉很牛,但是不想第一个吃螃蟹。万一毒死了,谁负责。

不与 回复

申请测试而已,绝对不含任何化学元素和防腐剂。

白宸 回复

代码已经在生产环境历经测试验证,另外如果有问题我们也会积极配合查看

机房设备 回复

这游戏太

李俊领 回复

我就呵呵了~

评论
0

1944169325375125

这篇文章跟王者荣耀有半毛钱关系,不知道作者在想啥。

不与 回复

你是一个优秀的程序猿,我只是一个打杂的小编,所以你不需要知道我在想啥啊,哈哈

whosoft 回复

来啊,互相伤害吧!!!

bill_xiang 回复

农药应该有用到redis

评论
0

1840597260281222

没玩过,来个教程

不与 回复

留下邮箱,我发你

不与 回复

官网上也有,可以直接看哈,https://www.aliyun.com/product/kvstore

评论
0

1284973422184461

复杂没有头绪

不与 回复

哥,是文章逻辑看不懂,还是Redis本身这块你没有头绪啊

mj_stone 回复

文案问题,为什么和王者荣耀强行关联,并且将配图放在核心位置?再者王者也不时ali的啊

评论
2

浮夸点点

大家平时常用的内存数据库有哪些?有什么优点和痛点?

从memcached+magent => redis => codis => 上云。
1. memcached 本身既不具有持久化特性也不具有分布式负载特性,当我们需要得到这些特性就得依靠magent ,以前在我们使用的时候这个代理工具并不成熟,而且这个代理会成为你新的单点故障部分,所以我们决定更换为redi得到可持久化和多从节点负载,
2. 但是redis单机内存限制,之前redis Cluster并不成熟,当遇到大型业务只能业务拆分
3. Codis是基于redis开发的分布式缓存系统满足这些特性
4. 随着公司移动业务的发展,传统IDC公司内部采购加机器已经不能满足需求,我们把一些新的项目上到公有云,无论是上线和下线,还是拓容缩容都更灵活,为公司解决大量时间和资金。

大家平时用Redis是自建的还是用云上的服务的,说说在使用过程中的感受吧。

之前用过自建redis,刚开始使用华北2 A区,因为没有IO优化型的ECS,所以持久化是一个问题,拓容也不方便。后来用了KvStore,因为使用量不是很大,成本变化不大,扩容缩容方便了很多,维护方面节省了很多人力。

Redis高可用怎么做?Redis备份怎么做?用的时候出过什么故障?

高可用主要还是通过redis-slave和codis这两种方式,redis-slave在频繁读写的时候容易出现中断,codis则需要一些基础知识和分布式管理经验。 redis 在大内存管理和高写操作后会频繁的进行持久化快照,导致多次快照时间区间重叠,无限持久化数据快照失败,还有一些big key的问题,尽量把你的key/value大小控制在512K以下,因为redis本身是单进程,在处理大key的时候会耽误过多的时间,降低缓存效率。

Redis如何做到时间点恢复?(这个有点难哦,高手表现的时候到了)

我们之前主要使用两种方式:redis数据快照dump.rdb文件和AOF日志,我们主要通过AOF增量备份实现按精确时间点恢复。

0

秦小道

辛辛苦苦敲了一遍。。。发现没法出去😭

Redis 数据备份与恢复
数据备份

语法

redis Save 命令基本语法如下:

redis 127.0.0.1:6379> SAVE
实例

redis 127.0.0.1:6379> SAVE
OK
该命令将在 redis 备份目录中创建dump.rdb文件。

恢复数据
1、获取备份目录

redis 127.0.0.1:6379> CONFIG GET dir
1) "dir"
2) "/usr/local/redis/bin"
以上命令 CONFIG GET dir 输出的 redis 备份目录为 /usr/local/redis/bin。

2、停止redis服务

$ src/redis-cli -p 6379 shutdown
3、拷贝备份文件到 /usr/local/redis/bin目录下

4、重新启动redis服务

src/redis-server redis.conf
5、已经全部搞定了,下面查看一下数据是否恢复了吧

$ src/redis-cli -p 6379
127.0.0.1:6379> dbsize
(integer) 12
127.0.0.1:6379> keys *
1) "name"
2) "set-key"
3) "item"
4) "test-key3"
5) "test-key2"
6) "hash-key"
7) "test-key1"
8) "key3"
9) "list-key"
10) "key4"
11) "key1"
12) "list-key2"

不与 回复

这些我都会,哈哈,敢不敢来点高端的

评论
0

1053997339181063

貌似好叼 我正学数据库 我就问下跟王者荣耀有关系吗?

不与 回复

事物是普遍联系的,原谅我的zhuangbility

评论
0

美食秀

真能瞎扯

不与 回复

欢迎您提出宝贵意见,有问题的我们改进

评论
0

1954996265651113

这个广告做的好,我成功的被吸引了进来,给你点赞!

不与 回复

兄弟真是个明事理的人啊,给你也点赞!

评论
0

1342897161809923

哪里可以看到源码

不与 回复

文章有“提前申请测试”,点击就能跳转到申请页面,或者您可以直接打开这个链接:https://promotion.aliyun.com/ntms/act/apsaracache.html

评论
0

1284018612742317

浪费太多时间学nosql,直到第一次奔溃

不与 回复

总会苦尽甘来的,加油

评论
0

1494491979859847

怎么入门

0

somh

源代码?

不与 回复

是的,9月份即将开源,现在是提前申请测试,有兴趣可以申请下哈。https://promotion.aliyun.com/ntms/act/apsaracache.html

评论
0

1112597048170286

至在外面做市场的人,那怕你不需要他(她)的产品,请给予一个微笑!!!

不与 回复

太有爱了

评论
0

1064796416426864

没有玩过,在哪里找

不与 回复

文章里有个“申请测试”的链接,或者你打开这个页面申请一下吧.
https://promotion.aliyun.com/ntms/act/apsaracache.html

评论
0

1455397228261515

没接触源代码二十年了哈哈

不与 回复

我没接触源代码快30年了,哈哈

评论
0

chuba

好想深入了解技术细节

不与 回复

来来来,欢迎来骚扰

评论
0

1914097231089220

可惜了,听不懂,哈哈

不与 回复

哈哈,吃瓜围观

评论
5
13169
浏览
0
收藏
邀请他人互动
关注
2
粉丝
14
话题
3

简介:

阿里云云数据库NoSQL资深产品运营,负责Redis、Memcache、MongoDB、HBase产品运营
移动测试(Mobile Testing)是为广大企业客户和移动开发者提供真机测试服务的云平台,拥有大量热门机型,...

一种稳定可靠、性能卓越、可弹性伸缩的数据库服务。基于飞天分布式系统和全SSD盘高性能存储,支持主备版和集群版两套...

业内领先的面向企业的一站式研发提效平台,通过项目流程管理和专项自动化提效工具,能够很好地支持互联网敏捷项目的快速...

为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本...