本文原载于SegmentFault专栏京东云技术新知
作者:京东云技术新知
整理编辑:SegmentFault
你的朋友圈被《复仇者联盟4-终局之战》刷屏了嘛?复联4今天凌晨首映了!
四月什么最难抢?!绝对是《复仇者联盟4》的首映票预售。飙到接近的票价也难以阻挡漫威粉们的狂热。
抢不到票?来京东云开发者社区围观“MaNongStudio”(程序员影业)出品的大片吧!
每一种数据库都有着自己的独特风格和个性,如果把数据库与比作漫威中的超级英雄,你觉得它们都会是谁呢?
奇异博士
人物特点:
奇异博士本是一名神经外科医生,在一次车祸中失去了双手的能力,最后在神秘的至尊魔法师的帮助下让他拥有了超凡魔力。在漫威故事中奇异博士可以控制时间,无视空间、物理、化学规律,具有“三境空间”的超强魔法,但他也有一个槽点就是“精力有限”,使过几个大招过后法术就用尽了。
匹配数据库—Redis
Redis全称为:RemoteDictionaryServer(远程数据服务),由意大利人SalvatoreSanfilippo(网名:antirez)开发,该软件使用C语言编写,Redis是一个key-value存储系统,它支持丰富的数据类型,如:string、list、set、zset(sortedset)、hash。
Redis是基于内存的数据缓存,同时也支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用;还可将命令保存在日志文件中。因此,Redis虽为数据库但现多用于数据缓存。这技能简直就是奇异博士中的“三镜空间”重现,进行任务进度存储、读取的同时,不会影响其他空间的正常工作,同时还能进行自身技能的加持。
不得不说!
除此之外,Redis还支持丰富的数据类型、支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。和奇异博士一样,Redis拥有着超强的读写能力(速度是次/s,写的速度是次/s),同时可在不同空间施展强大能力。
Redis的精力也是有限的,它使用了单线程,难于发挥多核CPU的能力,同时随着内存的增加,也会带来缓存雪崩、缓存击穿、缓存穿透等常见问题,我们应通过设置上限及过期时间、合理规划数据结构、及时清理数据、对数据压缩存储,并加强