从本地到云端:看看Redis如何降低成本提高效率

发布于:2024-10-24 编辑:匿名 来源:网络

封面前言假设没有数据库,数据存储在文本文件中。如果你想搜索“腾讯云开发者社区”,怎么搜索?在Linux中,有grep、awk等命令进行搜索;使用一些高级语言,例如Java和Python,还可以通过IO流读取文件。

到目前为止,有什么可以优化的地方吗?从外部存储、内存到计算机中的缓存,数据都存储在磁盘上。在Windows平台解压文件时,打开任务管理器就可以看到清晰的数据读写,通常是MB/s级别。

文件解压时产生的读写(固态)以及内存呢?切换到内存只能看到MT/s。转换后,内存和外存之间的带宽差异可达数百倍。

寻址能力相差数万倍。可见两者的区别。

DDR4:常见工作频率为MHz,单通道带宽可达25.6GB/s(MHz*64bit/8)。 MT/s /2 = MHz;回到开头的主题,提出第一个问题:如果文件足够大,硬盘(读写)首先成为瓶颈。

代码应该怎么解决呢?我们先来看看如何优化数据库。数据库中的存储优化 数据页现在有一个表,其中存储在物理磁盘中的多行数据。

数据库中使用了很多4k的小块。这里的4k正好匹配磁盘的对齐方式,一个I/O对应一个区域。

结合上图,可以想到数据库表创建中的索引,再加上数据库特有的B+树结构,减少了大量的磁盘寻址和IO流量。同时索引也是一个小页面。

索引就像查字典一样。无论多么复杂的单词,只需几个步骤就可以检索出来。

对齐验证:新建一个空白文档,输入一堆数字并保存,文件大小:1.14KB(小于4KB),占用空间:4KB。缓存 B+ 树和数据页是通用解决方案吗?并不真地。

假设有 10 个人,一一查字典。一本字典有点捉襟见肘。

其实很多人查的都是同一个单词,所以我们可以让来查字典的人先去问查过字典的人,这样就形成了缓存。缓存在一定程度上弥补了硬盘的缺点,但当然也带来了更多的管理问题。

就缓存数据库而言,Redis成为首选。我们先来看看Redis有多受欢迎! db-engine 在键值类型中排名第一,在数据库总量中排名第六。

原因:Redis与前端交互时,更常用JSON格式。那么尝试以这种方式与缓存交互吗?存储数字、字符串和列表很容易,但取出它们却很麻烦。

如果从一个大列表中只取出一条数据,I/O 很快就会成为瓶颈。那么这种类似JSON的文件传输就是Memcache。

返回全部数据的好处不太现实,所以我们尝试给“值”添加一个类型,然后提供一定的增删改查的方??法。这种将数据转移到计算的方法。

恭喜,您现在已经介绍了Redis存储方法。 Redis字符串先看一段代码 代码语言: shell copy set key1 9 # 保存一个key为key1,value为9的对象 对象编码 key1 # 检查类型,结果是 intappend key1 'a' # 在处追加字符串 ' end of key1 a', get key1 # 9aobject编码 key1 # raw 这是Redis的字符串,get和set是String类型的内置方法。

但它与传统类型不同。从第2行和第6行改变的编码方式可以看出,这是一种动态类型的字符串,Redis使用SDS来存储它。

SDS(??Simple Dynamic String)简单动态字符串。重写字符串有什么好处? ① 解决遗留问题。

获取字符串的长度是一个非常常见的操作。 C语言是通过遍历来实现的(Redis是用C开发的),Redis直接用一个长度来维护。

代码语言:c copy struct __attribute__ ((__packed__)) sdshdr8 { uint8_t len; /*used:长度已被使用*/ uint8_t alloc; /* 排除头部和空终止符:简单理解为总长度 */ unsigned char flags; /* 类型的3个lsb,5个未使用的位:SDS编码类型,当前类型为sdshdr8*/ char buf[]; /* 实际存储内容*/}; ② 优化内存 从上面的代码中,还可以看到 __attribute__ ((__packed__ )) 这一段实际上是告诉编译器不要使用字节对齐,而是使用紧凑分配内存。 ③二进制安全以IO方式读写文件,分为字符型和字节型两种。

字符类型代表是txt文本。有很多字节流,包括图片和Java编译的类文件。

字节流可以通过一定的编码格式变成字符,但反过来却很难操作。 Redis 使用字节流。

使用起来有哪些亮点呢?例如,存储一个汉字“中”,UTF-8编码会占用三个字节,GBK编码会占用两个字节。如果在链接时使用--raw,则 ASCII 编码被解锁,提取的值变成另一种格式。

团队在使用时应统一编码格式。优化点较多,篇幅有限,先略过。

笔者作为云上Redis的开发者,只熟悉一些简单的部署命令,往往需要面板来操作。另外,Redis是内存数据库,添加到后台服务机会极大影响性能,所以购买云上的Redis是有必要的。

内网低延迟 无论是数据库还是其他服务,通过外部网络连接时,网络速度都会成为性能瓶颈。云厂商已经想到了这一点,所以检查时要注意服务器省份、城市、分区。

购买调整参数时,请注意更改配置将重置分区和其他选项。全面的控制面板自动备份、主备更换、一件式导入配置等独特功能满足基本需求。

数据仪表板让您只需查看图表即可轻松控制一切。腾讯云数据库Redis功能概述案例:热门排行榜 做几个热门话题的排行榜需要准备什么? IORedis 中正好有这样一种数据类型,它对某个主题的独特流行度值进行高频实时排名,与之完美契合,那就是 Sorted Set。

数据结构 大多数语言都有集合结构,它是不重复元素的集合,而Redis的Sorted Set在唯一性的基础上增加了有序性。底层结构listpack(7.0版本之前的ziplist)skiplist + dict的顺序也意味着前者适用于较小范围的场景。

代码语言:c copy/* ZSETs 使用专门版本的 Skiplists: zsets 使用专门版本的 Skiplists */typedef struct zskiplistNode { sds ele;双倍分数; struct zskiplistNode *向后;结构 zskiplistLevel { 结构 zskiplistNode *forward;无符号长跨度; } level[];} zskiplistNode;ele真实数据,可用于存储主题得分、流行度值或加权计算值。具体操作:连接RedisJedisLettuceRedissonSpring Data Redis有3种方式(基于Jedis) 由于API不同,下面主要介绍具体的Redis命令。

将话题和评分添加到“热搜”列表 代码语言:shell copy ZADD ‘热搜’ 1 《黑神话:悟空》 ZADD ‘热搜’ 2 “腾讯云” ZADD ‘热搜’ 3 《云游戏》上热搜索列表代码语言:shell 复制 ZREVRANGE '热搜' 0 9 WITHSCORES 返回结果代码语言:txt 复制 1) “云游戏” 2) “3” 3) “腾讯云” 4) “2” 5) “黑神话”: 《悟空》6)《1》更新热搜榜代码语言:shell复制ZINCRBY‘热搜’《黑神话:悟空》然后得到排行榜,就变成了代码语言:txt复制1)《黑神话:悟空》2)《》3)《云游戏》4)《3》5)《腾讯云》6)《2》 至此,就获得了一个简单的热搜榜。

从本地到云端:看看Redis如何降低成本提高效率

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • 镁伽科技黄瑜清:智能自动化给生命科学带来巨大变革

    镁伽科技黄瑜清:智能自动化给生命科学带来巨大变革

    近日,戈壁创投年度投资峰会在线上举行。 戈壁创投邀请LP及被投企业经理参加会议,分享收获,共同努力。 探索趋势,见证未来。 2019年,国际环境复杂严峻,资本市场波动剧烈,加上疫情影响,股权投资面临前所未有的考验。 在“危机”与“机遇”交叉的环境下,戈壁创投继续保持

    06-18

  • 超星星完成数亿元C轮融资,加速释放优质碳化硅衬底产能

    超星星完成数亿元C轮融资,加速释放优质碳化硅衬底产能

    据投资界(ID:pedaily)12月14日消息,江苏超星星半导体股份有限公司超星行(以下简称“超星行”)近日完成数亿元C轮融资。 本轮融资由国际知名投资机构领投,商洛电子、老股东策资本跟投。 云秀资本担任本轮融资独家财务顾问。 超星星成立于今年4月,总部位于江苏南京。 致

    06-18

  • 以36.5亿元卖掉公司后,他流落街头说:我再也不会创业了,我要投资!

    以36.5亿元卖掉公司后,他流落街头说:我再也不会创业了,我要投资!

    沉寂了五个多月后,橙晶创始人乌海因为一篇文章再次回到公众视野。   2天前,吴海参加了摩根士丹利举办的一场“庆祝交易成功”的聚会(橙晶酒店“卖身”给华住酒店)。 “为了庆祝我的公司出售,我的心情可能不太好。 我不知道为什么。 醉了。 ”在《卖了酒店,昨晚,我喝醉

    06-18

  • 13小时破1207亿!砍单的背后是单打的狂欢,潮流已至

    13小时破1207亿!砍单的背后是单打的狂欢,潮流已至

    13:09:49,天猫双11全球狂欢成交额破亿元!地球已经无法阻挡国人“恐怖”的购买力了!虽然本次双11小败家的最终战斗力尚未揭晓,但与去年的亿元数据相比,已经提前了10小时50分11秒。 在同时喊出“痛”和“爽”的同时,国人到底能以怎样的数字打破世人的想象,还有待观察。 很

    06-17

  • 首次发布 - Gluetacs Therapeutics完成A轮融资,加速蛋白降解药物临床转化

    首次发布 - Gluetacs Therapeutics完成A轮融资,加速蛋白降解药物临床转化

    投资界(ID:pedaily)5月31日消息,Gluetacs Therapeutics宣布获得A轮融资,由黄埔生物医药基金领投,其次是广东造币投资、南湾百奥、思南元科。 本轮融资将重点关注博信生物的产品管线GT、GT的临床一期推进及临床前项目开发。 标新生物是上海科技大学免疫化学研究所孵化的一

    06-17

  • 机构也“疯狂”!北京交易所成立以来,累计开展调查762次,谁是“机构调查之王”?

    机构也“疯狂”!北京交易所成立以来,累计开展调查762次,谁是“机构调查之王”?

    作者|徐明辉编辑|六耳源|直达北京交流 年已结束。 回顾今年的经济发展,北京证券交易所是中国资本市场绕不开的话题。 北京交易所作为服务创新型中小企业的主阵地,将成就一批中小企业。 一些企业从被忽视,到如今已颇具规模,如今正站在聚光灯下,接受机构的深入研究。 据

    06-18

  • 菜鸟驿站进军数字化社区生活,正式推出团购、洗衣、回收服务

    菜鸟驿站进军数字化社区生活,正式推出团购、洗衣、回收服务

    进军团购、洗衣、回收……菜鸟驿站刚刚宣布,将从快递服务全面升级为数字化社区生活服务。 据投资界(微信ID:pedaily)消息,今日(6月23日)全球智慧物流峰会上,菜鸟小站宣布升级为数字社区生活小站:通过团购将值得信赖的产品送到你家门口、洗衣、回收等便捷服务。 这意味

    06-17

  • 投资界独家-传闻宝宝树引入互联网巨头加持,估值约150亿元

    投资界独家-传闻宝宝树引入互联网巨头加持,估值约150亿元

    据投资界5月28日消息,有消息称,国内母婴龙头企业宝宝树将引入互联网+来自巨头互联网的新一轮战略投资,最新估值约为1亿元人民币。   援引该消息,人士表示,投资合作计划将于近期公布。 除了战略资本合作、进一步优化股东结构布局外,这个互联网平台也将极大赋能宝宝树在

    06-17

  • iQOO Z3图赏:售价2000元以下的“能手卡”

    iQOO Z3图赏:售价2000元以下的“能手卡”

    不到一个月的时间,iQOO就接连发布了两款新机,有点让人应接不暇。 iQOO Neo 5和iQOO Z3都打“性价比”牌,都有一定的特色,是iQOO品牌主打销量的两条产品线。 ▲新发布的iQOO Z3。 我们在体验iQOO 7时,曾说它是“三双”高手。 它的存在就是带领整个队伍的进攻去攻占城市和领

    06-21

  • 普通人对亚运会的热情尽在快手

    普通人对亚运会的热情尽在快手

    这个中秋国庆假期,没有什么话题能比杭州亚运会更火爆了。 自上月14日亚运会门票开售以来,不少赛事门票都被观众抢购一空。 除了观看赛事本身,看明星在亚运会上讨论比赛、为中国队加油、分享自己的观赛感受也成为一种热潮。 随着29日比赛男子50米蛙泳决赛覃海洋率先冲线,中

    06-18

  • 上海港汽车出口同比增长超过50%

    上海港汽车出口同比增长超过50%

    上海港汽车出口开门红。 海通码头1月份出口各类车辆超过2万辆,同比增长超过50%。 上海作为全国最大的汽车进出口口岸,正在改变过去“出口产品低端、出口市场低端”的局面。 过去60%以上出口到拉美、非洲、中东等地区,到现在欧洲、美国、新西兰、澳大利亚等发达国家占比接近

    06-18

  • 硅谷精英所信奉的“AI宗教”到底是做什么的?

    硅谷精英所信奉的“AI宗教”到底是做什么的?

    作者 |高念编辑|靖宇 滑雪的终点是骨科,科学的终点是……神学? 2019年是当之无愧的“AI+大模型”年。 以ChatGPT为代表的生成式AI的快速进步,甚至让人们认为大型语言模型有资格被称为“世界模型”——人工智能从未像今天这样。 如此接近“神性”。 更难以想象的是,八年前,

    06-17