SDS

Serverless 的初心、现状和未来

拥有回忆 提交于 2020-08-11 07:42:05
作者 | 不瞋 阿里云高级技术专家 **导读:**Serverless 是如何产生的?当前有哪些落地场景?Serverless 的未来又将如何?本文分享了阿里云高级技术专家不瞋对于 Serverless 的看法,回顾其发展历程,并对 Serverless 的发展趋势做出预测。 源起 回望整个计算机技术发展史,我们会发现 “抽象、解耦、集成” 的主题贯穿其中。产业每一次的抽象、解耦、集成,都将创新推向新的高度,也催生出庞大的市场和新的商业模式。 大型机时代,硬件和软件都是定制化的,使用专有的硬件、操作系统和应用软件。 PC 时代,硬件被抽象解耦成 CPU、内存、硬盘、主板、USB 设备等标准化的部件,不同厂商生产的部件可以自由组合,组装成整机。软件被抽象解耦为操作系统、库等可复用组件。硬件和软件的抽象解耦,创造了新的商业模式,释放了生产力,造就了 PC 时代的繁荣。 云的时代,硬件软件化和软件服务化成为最显著的两个趋势。 硬件软件化的核心在于硬件功能中越来越多的部分由软件来呈现,从而在迭代效率、成本等方面获得显著优势。以软件定义存储(Software Defined Storage,SDS)为例,SDS 是位于物理存储和数据请求之间的一个软件层,允许用户操控数据的存储方式和存储位置。通过硬件与软件解耦,SDS 可运行于行业标准系统或者 X86 系统上

Redis中BitMap是如何储存的

为君一笑 提交于 2020-08-10 19:08:42
在Redis中 setbit , set , getbit , get 这些命令本身都是对字符串(SDS)的操作。 当我们执行 setbit key (0,2,5,9,12,16,21) 1 命令后,bitmap表示如下图: 执行 getbit 16 ,对应的byte为 floor(16 / 8) ,bit为 16%8 ,我们可以立刻得到对应的值为1,因为 getbit 为常数级计算,所以算法复杂度为 O(1) 参考来自 : https://segmentfault.com/a/1190000008205145 来源: oschina 链接: https://my.oschina.net/zjllovecode/blog/4298524

牛逼!Redis 的字符串是这样实现的…

若如初见. 提交于 2020-08-10 17:17:41
作者:小小木的博客 www.cnblogs.com/wyc1994666/p/10669212.html 之前本人在找工作面试时在Redis相关问题上可栽了跟头。 在面试前按常规套路准备了一下,比如 Redis 的常用5种数据结构,Redis持久化策略,Redis实现 分布式锁 ,简单 发布订阅 等等都准备了,当时不知天高地厚以为十拿九稳了,可是万万没想到我终究还是在Redis的被问的第一个问题上翻船了~~ 面试官 : 看你简历上写了熟悉常用数据结构,都有哪些说说 本人 : 常用有5种,string,list,set,zset,hash(内心很得意) 面试官 : 那你说说都用过哪些数据结构_ 本人 : 用的最多的是string,通常会把json字符串存进去_ 面试官 : 那你知道Redis内部是怎么实现它的string的么?_ 本人 : 呃~,我了解Redis是用C语言写的,至于具体实现就不清楚了~ 到此一面卒~~~ 有相同经历的朋友么? 回去后恶补了一下Redis有关原理性的知识点,恰好最近在最总结面试经历于是有了今天这篇文章。 本篇会讲以下内容: Redis字符串的实现 Redis字符串的性能优势 Redis字符串的实现 Redis虽然是用C语言写的,但却没有直接用C语言的字符串,而是自己实现了一套字符串。目的就是为了提升速度,提升性能,可以看出Redis为了高性能也是煞费苦心

云原生计算基金会宣布Harbor项目正式毕业

耗尽温柔 提交于 2020-08-09 12:52:55
专门为云原生软件构建可持续生态系统的云原生计算基金会(简称CNCF)于本月23日(当地时间)正式宣布,Harbor已经成为第11个正式毕业的项目。从孵化阶段、发展成熟一路走向正式毕业,Harbor项目不仅获得更高的采用率、更加开放的治理流程与成熟的功能,同时也在社区发展、可持续性及项目包容性方面做出坚定的承诺。 Harbor是一种开源代码注册表,可通过策略与基于角色的访问控制实现工件保护,扫描镜像内容使其免受漏洞侵害,最后对镜像进行可信签名。作为云原生计算基金会下辖的孵化项目,Harbor成为保障合规性、性能与互操作性的好帮手,可帮助用户跨Kubernetes与Docker等云原生计算平台,持续安全地管理各类工件。目前,Harbor已经被引入众多知名企业的生产体系当中,包括CaiCloud、中国移动、Hyland Software、京东、Mulesoft、三星SDS、Trend Micro以及VMware等等。 就在上个月,Harbor 2.0版本全面推出。此版本增加了对开放容器计划(OCI)工件的支持,允许用户在其中存储大量云原生工件,例如容器镜像、Helm图表、OPA以及Singularity等。开发人员可以使用OCI索引中的OCI工件或打包工件,轻松享受Harbor项目带来的策略选项、复制功能以及基于角色的访问控制等成果。 云原生计算基金会CTO

(转)Sungard:诱人的金融蛋糕与苦逼的乙方生意【线性资本】

穿精又带淫゛_ 提交于 2020-08-08 10:52:26
https://www.sohu.com/a/278534336_610473 底层之殇:诱人的金融蛋糕与苦逼的乙方生意 2018-11-29 12:00 提到金融业,很多人的第一反应是这是一门典型的强周期生意;而IT行业则是一门典型的乙方苦逼生意,看似八杆子打不着的行业却这么联合了起来,使得靠运气吃饭的金融行业可以顽强抵抗住周期性波动,这背后的奥秘究竟在哪里? Sungard所在的赛道,正是金融业和软件业的交叉点。 今天我们就通过Sungard这个案例,来研究一下金融IT行业的生存之道。 金融IT,指将IT技术应用到金融行业,包含了银行、证券、保险等各领域的IT应用。金融业由于本身交易密集和信息密集的特征,具有与信息技术高度融合的天然属性,尤其是现代金融业对IT系统的高度依赖已是发展的明显趋势,无论是业务开展、经营管理,还是金融创新、风险管控,都与IT服务技术紧密相关。 今天要说的Sungard,就是这样一家将软件服务应用于金融业的典型公司。 发展历程 Sungard成立于1983年,总部位于宾夕法尼亚州维恩,是世界领先的软件和IT服务企业,为教育、金融和公共事业提供软件和服务,曾在2010年被“财富美国500强”评为第480位。SunGard一名来源于Sun Guaranteed Access to Recovered Data 的缩写,寓意灾备能力

Redis详解(五)------ redis的五大数据类型实现原理

感情迁移 提交于 2020-08-07 14:00:27
  前面两篇博客,第一篇介绍了 五大数据类型的基本用法 ,第二篇介绍了 Redis底层的六种数据结构 。在Redis中,并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这些对象系统也就是前面说的五大数据类型,每一种数据类型都至少用到了一种数据结构。通过这五种不同类型的对象,Redis可以在执行命令之前,根据对象的类型判断一个对象是否可以执行给定的命令,而且可以针对不同的场景,为对象设置多种不同的数据结构,从而优化对象在不同场景下的使用效率。 1、对象的类型与编码   Redis使用前面说的五大数据类型来表示键和值,每次在Redis数据库中创建一个键值对时,至少会创建两个对象,一个是键对象,一个是值对象,而Redis中的每个对象都是由 redisObject 结构来表示: typedef struct redisObject{ //类型 unsigned type:4; //编码 unsigned encoding:4; //指向底层数据结构的指针 void *ptr; //引用计数 int refcount; //记录最后一次被程序访问的时间 unsigned lru:22; }robj ①、type属性   对象的type属性记录了对象的类型,这个类型就是前面讲的五大数据类型:      可以通过如下命令来判断对象类型: type key  

Redis的字符串底层是啥?为了速度和安全做了啥?

巧了我就是萌 提交于 2020-08-06 15:23:46
面试场景 面试官:Redis有哪些数据类型? 我:String,List,set,zset,hash 面试官:没了? 我:哦哦哦,还有HyperLogLog,bitMap,GeoHash,BloomFilter 面试官:就这?回家等通知吧。 前言 我敢肯定,第一个回答,100%的人都能说上来,但是第二个回答能回答上来的人可能就不多了,但是这也不是我今天探讨的话题。 我就从我自己的去面试的回答思路,以及作为一个面试官他想听到的标准答案来给大家出一期,Redis基础类型的文章(系列文章),写这个的时候我还是很有心得的,不知道大家有多少人跟我最开始一样,面试官问有哪些类型,就回答出那五种就结束了,如果你是这样的可以在评论区留言,让我看看有多少人是这样的。 但是,一场面试少说都是半小时起步上不封顶,你这样一句话就回答了这么重要的五个知识点,这个结果是你想要的么?是面试官想要的么? 我再问你一个问题,你可能就懵逼了:String在Redis底层是怎么存储的?这些数据类型在Redis中是怎么存放的?Redis快的原因就只有单线程和基于内存么? 宝贝,触及知识盲区没?不慌,我以前也是这样的,我以为我背出那五种就完事了,结果被面试官安排了一波,后面我苦心修炼,总算是好了一点,现在对缓存也是非常熟悉了,你不会没事,有我嘛,乖。 正文 Redis是C语言开发的,C语言自己就有字符类型

Redis 数据结构 之 SDS

天大地大妈咪最大 提交于 2020-08-06 09:57:09
SDS(simple dynamic string) ,简单动态字符串。s同时它被称为 Hacking String。hack 的地方就在 sds 保存了字符串的长度以及剩余空间。sds 的实现在 sds.c 中。 C语言字符串使用长度为n+1的字符数组来表示长度为n的字符串,并且字符数组的最后一个元素总是空字符'\0',这样的方式存储,时存在安全隐患的,并且它不能满足效率方面的需求。 因此Redis没有使用C原生的 string 而是自己构建了 SDS 。在Redis里,C语言字符串只用于一些无须对字符串值进行修改的地方,比如:日志。 在Redis中,包含字符串值的键值对都是使用SDS实现的,除此之外,SDS还被用于AOF缓冲区、客户端状态的输入缓冲区。 SDS定义 struct sdshdr{ //字节数组 char buf[]; //buf数组中已使用字节数量 int len; //buf数组中未使用字节数量 int free; } 如上图所示,len表示该SDS保存了一个6字节长度(不包含结束符)的字符串,free表示该SDS还有6个字节的未使用空间,buf是一个char类型的 数组 ,保存了该SDS所存储的字符串值。 高效 相比C语言字符串,使获取字符串长度时间复杂度降为 O(1) 而C原生的获取长度为 O(N) 遍历整个数组。 安全 同时 SDS 杜绝缓冲区溢出

关于redis,你需要了解的几点!

﹥>﹥吖頭↗ 提交于 2020-08-06 08:04:33
一、关于 redis key: 1、是二进制安全的,也就是说,你可以使用任何形式的二进制序列来作为key,比如一个string,或者一个jpg图片的数据,需要说明的是,空字符串也是一个有效的key。 2、不建议使用过长的key,影响内存占用及数据查性能,对于过长的key,可以通过hash(例如SHA1)处理转换。 3、建议使用有意义及统一格式的key。 4、最大允许key大小为512M。 二、String 类型应用: 1、作为原子计数器:incr、decr、incrby 2、结合append命令,作为基于时间的增量序列。 3、随机访问及获取值区域,getrange、setrange。 附:需要注意的是append及range操作容易引起内存浪费和碎片化问题。 三、hash 类型:ziplist or hashtable 1、单个hash最多支持2 32 - 1个键值对。 2、关于hash类型的内部编码: ziplist(压缩列表) & hashtable(哈希表) 配置:hash-max-ziplist-entries(hash类型最大kv数据,默认512)、hash-max-ziplist-value(单个v值最大值, 默认64) redis 采用何种结构取决于hash中元素数及元素值得大小,当同时满足小于配置时,redis使用ziplist编码存储

深入学习Redis(1):Redis内存模型

血红的双手。 提交于 2020-08-05 05:27:02
前言 Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说Redis是实现网站高并发不可或缺的一部分。 我们使用Redis时,会接触Redis的5种对象类型(字符串、哈希、列表、集合、有序集合),丰富的类型是Redis相对于Memcached等的一大优势。在了解Redis的5种对象类型的用法和特点的基础上,进一步了解Redis的内存模型,对Redis的使用有很大帮助,例如: 1、估算Redis内存使用量。目前为止,内存的使用成本仍然相对较高,使用内存不能无所顾忌;根据需求合理的评估Redis的内存使用量,选择合适的机器配置,可以在满足需求的情况下节约成本。 2、优化内存占用。了解Redis内存模型可以选择更合适的数据类型和编码,更好的利用Redis内存。 3、分析解决问题。当Redis出现阻塞、内存占用等问题时,尽快发现导致问题的原因,便于分析解决问题。 这篇文章主要介绍Redis的内存模型(以3.0为例),包括Redis占用内存的情况及如何查询、不同的对象类型在内存中的编码方式、内存分配器(jemalloc)、简单动态字符串(SDS)、RedisObject等;然后在此基础上介绍几个Redis内存模型的应用。 在后面的文章中,会陆续介绍关于Redis高可用的内容,包括主从复制、哨兵、集群等等,欢迎关注。 系列文章 深入学习Redis(1)