当前位置: 首页 > news >正文

做公司网站客户群体怎么找搭建网站多少钱

做公司网站客户群体怎么找,搭建网站多少钱,网站必须做可信认证,山西网站制作公司Redis系列之底层数据结构整数集IntSet 什么是IntSet IntSet,整数集合,是Redis集合类型的一种底层数据结构,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,redis就会选用intset作为底层实现。 IntSet的数…

Redis系列之底层数据结构整数集IntSet

什么是IntSet

IntSet,整数集合,是Redis集合类型的一种底层数据结构,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,redis就会选用intset作为底层实现。

IntSet的数据结构

查看redis6.0源码,https://github.com/redis/redis/blob/6.0/src/intset.h,inset的数据结构如图:

typedef struct intset {uint32_t encoding;uint32_t length;int8_t contents[];
} intset;
  • encoding:表示编码方式,取值有:INTSET_ENC_INT16,INTSET_ENC_INT32,INTSET_ENC_INT64
  • length:代表存储的整数的个数
  • contents:实际存储数值的连续内存区域,本质是一个数组。各个项在数组中按值的大小从小到大有序排序,且数值中不包含重复项。总而言之,就是一个有序不重复的数组。

intset数据结构图:
在这里插入图片描述

set集合什么时候使用inset存储?

Redis中使用intset或者hashtable存储set。什么情况使用intset存储?

当集合对象可以同时满足以下两个条件时,使用intset:

  1. 集合对象保存的所有元素都是整数值,如果不是整数值使用dictht hash表(数组+链表)
  2. 集合对象保存的元素数量不超过512个,如果超过512个元素,使用hashtable

跟一个Redis配置有关系:

 set-max-intset-entries 512

intset数据结构和dictht hash对比,这个dictht hash就是Redis中另外一种重要的数据结构dict
在这里插入图片描述

拓展知识点

整数集合的升级过程
例如在一个int16类型的整数集合中插入一个int32类型的值,整个集合的所有元素都会转换成32类型。整个过程有3步:

  • 根据新元素的类型,扩展整数集合底层数组的空间大小,并为新元素的分配空间。
  • 将底层数组现有的所有元素都转换成与新元素相同的类型,并将类型转换后的元素放置到正确的位上,放置过程需要维持有序性。
  • 最后改变encoding的值,length+1。
    ps:那么如果删除刚加入的int32类型时,会不会做一个降级操作呢?不会。主要还是减少开销的权衡。
http://www.hkea.cn/news/925112/

相关文章:

  • 商城网站建设报价方案免费建网站软件下载
  • 中国做美国酒店的网站好竞价托管收费标准
  • 网站开发与设计静态网页源代码站长之家app下载
  • 松原做网站app运营推广是干什么
  • 做简单的网站链接2024新闻热点摘抄
  • 百度网站站长环球网疫情最新
  • 颍上做网站西安seo网站关键词优化
  • 有没有兼职做设计的网站吗知名网络软文推广平台
  • 数据百度做网站好用吗米拓建站
  • 网站维护运营怎么做搜索引擎优化通常要注意的问题有
  • 圆梦科技专业网站建设恶意点击软件有哪些
  • 如何做vip电影解析网站竞价恶意点击器
  • 开发简单小程序公司深圳网站优化哪家好
  • 网站开发劣势搜索引擎排名优化
  • 桂林网站优化公司企业网络营销顾问
  • 上海外贸出口代理公司排名搜索引擎优化的主要工作有
  • 一般做企业网站需要什么资料广告咨询
  • 广州网站建设兼职网站为什么要做seo
  • 中企动力官网 网站怎么在平台上做推广
  • 教育培训网站建设方案广告宣传费用一般多少
  • 计算机网站设计论文营销排名seo
  • 源码资源国内专业seo公司
  • 丽水微信网站建设报价免费精准客源
  • 广东建设工程中标公示网站google搜索引擎优化
  • 南宁老牌网站建设公司正版google下载
  • 网站做信用认证有必要吗微信朋友圈推广平台
  • 电子政务网站建设要求百度关键词规划师
  • 博客网站开发毕设免费大数据分析网站
  • 深圳教育平台网站建设好消息疫情要结束了
  • 国外设计文章的网站淘宝代运营靠谱吗