知名企业网站规划书无锡网站推广哪家公司好

web/2025/9/29 14:16:18/文章来源:
知名企业网站规划书,无锡网站推广哪家公司好,有哪些做买家秀的网站,网站建设窗口框架1、简介Redis的五大数据类型也称五大数据对象#xff1b;前面介绍过6大数据结构#xff0c;Redis并没有直接使用这些结构来实现键值对数据库#xff0c;而是使用这些结构构建了一个对象系统redisObject#xff1b;这个对象系统包含了五大数据对象#xff0c;字符串对象(st…1、简介Redis的五大数据类型也称五大数据对象前面介绍过6大数据结构Redis并没有直接使用这些结构来实现键值对数据库而是使用这些结构构建了一个对象系统redisObject这个对象系统包含了五大数据对象字符串对象(string)、列表对象(list)、哈希对象(hash)、集合(set)对象和有序集合对象(zset)而这五大对象的底层数据编码可以用命令OBJECT ENCODING来进行查看。redisObject结构1 typedef structredisObject {2 //类型3 unsigned type:4;4 //编码5 unsigned encoding:4;6 //指向底层实现数据结构的指针7 void *ptr;8 //...9 } robj;redis是以键值对存储数据的所以对象又分为键对象和值对象即存储一个key-value键值对会创建两个对象键对象和值对象。键对象总是一个字符串对象而值对象可以是五大对象中的任意一种。type属性存储的是对象的类型也就是我们说的 string、list、hash、set、zset中的一种可以使用命令 TYPE key 来查看。encoding属性记录了队形所使用的编码即这个对象底层使用哪种数据结构实现。表中列出了底层编码常量及对应的OBJECT ENCODING 命令的输出前三项都是字符串结构我们在存入key-value键值对时并不会指定对象的encoding而是Redis会根据不统的使用场景来为一个对象设置不同的编码可以达到节约内存、加快访问速度等目的。2、字符串对象(string)字符串对象底层数据结构实现为简单动态字符串(SDS)和直接存储但其编码方式可以是int、raw或者embstr区别在于内存结构的不同。(1)int编码字符串保存的是整数值并且这个正式可以用long类型来表示那么其就会直接保存在redisObject的ptr属性里并将编码设置为int如图(2)raw编码字符串保存的大于32字节的字符串值则使用简单动态字符串(SDS)结构并将编码设置为raw此时内存结构与SDS结构一致内存分配次数为两次创建redisObject对象和sdshdr结构如图(3)embstr编码字符串保存的小于等于32字节的字符串值使用的也是简单的动态字符串(SDS结构)但是内存结构做了优化用于保存顿消的字符串内存分配也只需要一次就可完成分配一块连续的空间即可如图字符串对象总结在Redis中存储long、double类型的浮点数是先转换为字符串再进行存储的。raw与embstr编码效果是相同的不同在于内存分配与释放raw两次embstr一次。embstr内存块连续能更好的利用缓存在来的优势int编码和embstr编码如果做追加字符串等操作满足条件下会被转换为raw编码embstr编码的对象是只读的一旦修改会先转码到raw。3、列表对象(list)列表对象的编码可以是ziplist和linkedlist之一。(1) ziplist编码ziplist编码的哈希随想底层实现是压缩列表每个压缩里列表节点保存了一个列表元素。(2)linkedlist编码linkedlist编码底层采用双端链表实现每个双端链表节点都保存了一个字符串对象在每个字符串对象内保存了一个列表元素。列表对象编码转换列表对象使用ziplist编码需要满足两个条件一是所有字符串长度都小于64字节二是元素数量小于512不满足任意一个都会使用linkedlist编码。两个条件的数字可以在Redis的配置文件中修改list-max-ziplist-value选项和list-max-ziplist-entries选项。图中StringObject就是上一节讲到的字符串对象字符串对象是唯一个在五大对象中作为嵌套对象使用的。4、哈希对象(hash)哈希对象的编码可以是ziplist和hashtable之一。(1)ziplist编码ziplist编码的哈希对象底层实现是压缩列表在ziplist编码的哈希对象中key-value键值对是以紧密相连的方式放入压缩链表的先把key放入表尾再放入value键值对总是向表尾添加。(2)hashtable编码hashtable编码的哈希对象底层实现是字典哈希对象中的每个key-value对都使用一个字典键值对来保存。字典键值对即是字典的键和值都是字符串对象字典的键保存key-value的key字典的值保存key-value的value。哈希对象编码转换哈希对象使用ziplist编码需要满足两个条件一是所有键值对的键和值的字符串长度都小于64字节二是键值对数量小于512个不满足任意一个都使用hashtable编码。以上两个条件可以在Reids配置文件中修改hash-max-ziplist-value选项和hash-max-ziplist-entries选项。5、集合对象(set)集合对象的编码可以是intset和hashtable之一。(1)intset编码intset编码的集合对象底层实现是整数集合所有元素都保存在整数集合中。(2)hashtable编码hashtable编码的集合对象底层实现是字典字典的每个键都是一个字符串对象保存一个集合元素不同的是字典的值都是NULL可以参考java中的hashset结构。集合对象编码转换集合对象使用intset编码需要满足两个条件一是所有元素都是整数值二是元素个数小于等于512个不满足任意一条都将使用hashtable编码。以上第二个条件可以在Redis配置文件中修改et-max-intset-entries选项。6、有序集合对象(zset)有序集合的编码可以是ziplist和skiplist之一。(1)ziplist编码ziplist编码的有序集合对象底层实现是压缩列表其结构与哈希对象类似不同的是两个紧密相连的压缩列表节点第一个保存元素的成员第二个保存元素的分值而且分值小的靠近表头大的靠近表尾。(2)skiplist编码skiplist编码的有序集合对象底层实现是跳跃表和字典两种每个跳跃表节点都保存一个集合元素并按分值从小到大排列节点的object属性保存了元素的成员score属性保存分值字典的每个键值对保存一个集合元素字典的键保存元素的成员字典的值保存分值。为何skiplist编码要同时使用跳跃表和字典实现跳跃表优点是有序但是查询分值复杂度为O(logn)字典查询分值复杂度为O(1) 但是无序所以结合连个结构的有点进行实现。虽然采用两个结构但是集合的元素成员和分值是共享的两种结构通过指针指向同一地址不会浪费内存。有序集合编码转换有序集合对象使用ziplist编码需要满足两个条件一是所有元素长度小于64字节二是元素个数小于128个不满足任意一条件将使用skiplist编码。以上两个条件可以在Redis配置文件中修改zset-max-ziplist-entries选项和zset-max-ziplist-value选项。7、总结在Redis的五大数据对象中string对象是唯一个可以被其他四种数据对象作为内嵌对象的列表(list)、哈希(hash)、集合(set)、有序集合(zset)底层实现都用到了压缩列表结构并且使用压缩列表结构的条件都是在元素个数比较少、字节长度较短的情况下四种数据对象使用压缩列表的优点(1)节约内存减少内存开销Redis是内存型数据库所以一定情况下减少内存开销是非常有必要的。(2)减少内存碎片压缩列表的内存块是连续的并分配内存的次数一次即可。(3)压缩列表的新增、删除、查找操作的平均时间复杂度是O(N)在N再一定的范围内这个时间几乎是可以忽略的并且N的上限值是可以配置的。(4)四种数据对象都有两种编码结构灵活性增加。参考《Redis设计与实现》黄健宏著网上对Redis的详解等此博客为笔者使用redis很久之后参考网络上各类文章总结性书写原创手打如有错误欢迎指正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

上海做原创网站怎么写微信小程序

*本文转载自公众号“Unity官方平台”。本文由视觉效果艺术家Evgeny Starostin分享如何使用Unity制作魔法火焰效果的过程,让我们一起学习和制作魔法火焰吧。下面是魔法火焰效果图。项目下载本文提供项目工程及着色器下载。本文为转载文章,请关注公众号“U…

网站建设的例子品牌网站建设只詢大蝌蚪

TQ210——S5PV210启动过程 1、S5PV210内存地址映射 S5PV210 含有一个大小为64KB的IROM,起始地址为0xD0000000,结束地址为0xD000FFFF;含有一个大小为96KB的 IRAM,起始地址为0xD0020000,结束地址为0xD0037FFF;内存起始地…

宝安中心站是几号线织梦图片网站源码

自定义函数 C语言提供了大量的库函数(右侧资料下载中有),比如stdio.h提供输出函数,但是还是满足不了我们开发中的一些逻辑,所以这个时候需要自己定义函数,自定义函数的一般形式: 注意&#xff1…

什么叫子网站10大免费软件下载

1.数据库的相关介绍 关系型数据库管理系统:(英文简称:RDBMS) 为我们提供了一种存储数据的特定格式,所谓的数据格式就是表, 在数据库中一张表就称为是一种关系. 在关系型数据库中表由两部分组成&#xf…

在线购物商城网站芜湖有没有网站建设公司吗

众所周知,在平台上网约车的时候,要是超出一定时间放鸽子,通常都是要扣除乘客部分钱,反之是司机取消了订单,平台同样会给司机处罚,在路程近的单子上,有些司机是接了后就不想跑,但是也…

网站开发多用什么语言可以免费做网站

来源:新浪科技摘要:虽然目前而言无线电天线仍然是太空通信的支柱,但目前未来发展方向是激光通讯系统。在太空中,没有人会听到你的尖叫——因为声音不会在真空中传播,而且你需要某种类型的无线电波中继携载这些信息&…

网站建设项目申请书简单的公司简介

1、API (1)基于linux做应用开发,其实就是通过调用linux系统提供的API来实现。 (2)API 是一些由linux系统提供的函数,给应用层使用,以完成一定的功能。 (3)常用的文件IO的…

jsp网站部署怎么做地方门户网站建设多少钱

2020年简单的早安共勉句子短信汇编58条爱情,就像两个人在拉猴皮筋,疼的永远是后撒手的那个。早安!以下是小编为大家推荐的早安共勉句子58条,欢迎大家借鉴与参考,希望对大家有所帮助。1、这地球少了谁都照样转,就是少了…

广安公司网站建设重庆建设教育协会网站首页

这一节我们将了解Android OpenMax框架,该框架了解完成之后,我们会再回过头去了解 ACodec,将 MediaCodec - ACodec - OpenMax 连接起来,了解组件的创建控制以及 buffer 的流转。 本篇属于个人学习笔记,如有错误欢迎指出…

上传视频网站开发企业网站管理系统用哪个好

背景:近年来,随着自动化技术的不断进步,Modbus与Profinet之间的转换成为了许多工厂和企业普遍关注的问题。 Modbus转Profinet网关作为两个不同协议设备连接的桥梁,安华变频器作为一种电气设备,能够改变电源的频率和电…

深圳商城手机网站建设wordpress for sae 插件

本篇讲的内容主要是基于Spring v2.5的注解来完成bean的定义 之前都是使用纯配置的方式来定义的bean 文章目录 前言1. Spring v2.5 注解开发定义bean第一步:在需要定义的类上写上注解Component第二步:在Spring Config中定义扫描包第三步:主方法…

交互效果很好的网站目前推广软件

Python PEP 8 代码风格指南 0. 引言1. 空白字符2. 命名3. 表达式和语句4. 导入5. Pylint工具6. 要点总结 0. 引言 Python增强提案#8,也称作 PEP 8,是关于如何格式化Python代码的风格指南。 你可以按自己的方式编写Python代码,只要符合有效的语法规则。 然而,使用一致的风格可…

wordpress网站添加备案号微商店铺怎么开通

几个主流的数据库有: 1. MySQL:MySQL是一种关系型数据库管理系统,常用于Web应用程序开发和数据存储。 2. Oracle:Oracle是一种关系型数据库管理系统,由Oracle Corporation开发和销售。它广泛用于企业级应用程序中。 …

如何给网站添加cnzz站长统计功能代码的常用办法长沙做网站企业

开源软件技术社区是一个由开发者、贡献者、用户和维护者组成的共享平台,主要目的是打造技术、软件产品良性互动、开源技术安全可控的软件生态环境,实现可复用应用或服务的快速部署与使用、完成资源与能力的高度共享、促进社区成员的共建共赢,…

策划案网站构成怎么写广州市官网网站建设公司

1、问题 //如果参数字符串是个回文,函数就返回真,否则返回假。回文就是指一个字符串从左向右和从右向左读是一样的。函数应该忽略所有的非字母字符,而且在进行字符比较时不用区分大小写。 2、代码实现 #include <stdio.h> #include <ctype.h>//如果参数字符串是…

湖南网站建设 地址磐石网络哈尔滨网站设计公司哪家更好

【本节目标】 树概念及结构。二叉树概念及结构。二叉树常见OJ题练习。 1、树概念及结构 1.1、树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一颗倒挂的树&#xf…

西安模板网站服务商更换模板对网站seo的影响

先说一下自己的情况&#xff0c;本科生&#xff0c;22年通过校招进入南京某软件公司&#xff0c;干了接近2年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试&…

建立网站需要备案吗上海网站建设公司招聘

背景 分析Fabric网络的启动日志可以帮我们理解搭建区块链网络的过程。本文对输出日志进行详细的分析。 启动网络与创建通道 # verbose 可以输出更详细的日志。 ./network.sh up createChannel -verbose# 使用本机安装的docker and docker-compose Using docker and docker-c…

asp连接数据库做登录网站完整下载免费发布信息的网站平台

在使用Linq的时候经常出现在了这样的一个错误 Row not found or changed. 找不到行或行已更改 解决方案。 首要的解决方案是&#xff0c;检查数据库字段定义&#xff0c;是否有不一致的地方&#xff0c;尤其是 该字段是否可空 Nullable 第一个简单的方案就是 打开dbml (linq)文…