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

网络规划设计师视频百度网盘郑州厉害的seo顾问

网络规划设计师视频百度网盘,郑州厉害的seo顾问,校园网网站的安全建设方案,北京网站开发招聘参考:一文读懂Redis五种数据类型及应用场景 - 知乎 (zhihu.com) String 类型 String 类型:Redis 最基本的数据类型,它是二进制安全的,意味着你可以用它来存储任何类型的数据,如图片、序列化对象等。使用场景&#xff…

参考:一文读懂Redis五种数据类型及应用场景 - 知乎 (zhihu.com)

img

String 类型

String 类型:Redis 最基本的数据类型,它是二进制安全的,意味着你可以用它来存储任何类型的数据,如图片、序列化对象等。使用场景:

  • 缓存对象:方式①:直接缓存整个对象的 JSON,命令例子: SET user:1 '{"name":"xiaolin", "age":18}'。方式②:采用将 key 进行分离为 user:ID:属性,采用 MSET 存储,用 MGET 获取各属性值,命令例子: MSET user:1:name xiaolin user:1:age 18 user:2:name xiaomei user:2:age 20

  • 常规计数器:因为 Redis 处理命令是单线程,所以执行命令的过程是原子的。因此 String 数据类型适合计数场景,比如计算访问次数、点赞、转发、库存数量等等。比如文章的阅读量:

  • 分布式锁:加锁过程使用 SETNX命令;

    在这里插入图片描述

  • 共享 Session 信息:。

List 类型

Redis 的列表是简单的字符串列表,按照插入顺序排序。你可以向列表的头部或尾部添加元素。(列表的最大长度为 2^32 - 1,也即每个列表支持超过 40 亿个元素。)

内部实现:①redis 3.2之前,使用 双向链表(linkedlist) + 压缩列表(ziplist);②redis 3.2 版本之后,快速列表(quicklist)

使用场景:

  • 消息队列(或任何先进先出的场景):可以将 List 用作消息队列来实现异步任务处理。生产者将任务添加到列表的尾部(使用 RPUSH 命令),消费者从列表的头部获取任务并进行处理(使用 LPOP 命令)。
  • 事件发布与订阅:类似于消息队列,List 可以用于实现事件的发布与订阅机制。发布者将事件添加到列表中,订阅者从列表中获取事件并进行相应的处理。

Hash 类型

Redis 中的哈希是一个键值对的集合,其中的键和值都是字符串。其中 value 的形式如:value=[{field1,value1},...{fieldN,valueN}]。Hash 特别适合用于存储对象。
在这里插入图片描述

内部实现哈希表(hashtable)(底层使用字典表) + 压缩列表(ziplist)

  • 如果哈希类型元素个数小于 512 个(默认值,可由 hash-max-ziplist-entries 配置),所有值小于 64 字节(默认值,可由 hash-max-ziplist-value 配置)的话,Redis 会使用压缩列表作为 Hash 类型的底层数据结构;
  • 如果哈希类型元素不满足上面条件,Redis 会使用哈希表作为 Hash 类型的 底层数据结构。

使用场景:

  1. 缓存对象:Hash 类型的 (key,field, value) 的结构与对象的(对象id, 属性, 值)的结构相似,也可以用来存储对象。

    在这里插入图片描述

Set 集合

Redis 的集合是一个无序的字符串集合,不允许有重复的元素。集合通过哈希表实现的,所以添加、删除、查找的复杂度都是 O(1)。

内部实现:Set 类型的底层数据结构是由哈希表整数集合实现的:

  • 如果集合中的元素都是整数且元素个数小于 512 (默认值,set-maxintset-entries配置)个,Redis 会使用整数集合作为 Set 类型的底层数据结构;
  • 如果集合中的元素不满足上面条件,则 Redis 使用哈希表作为 Set 类型的底层数据结构。

应用场景:Set 集合的主要特点有 无序、不可重复、支持并、交、差集操作。

  • 点赞:Set 类型可以保证一个用户只能点一个赞。
  • 共同关注:Set 类型支持交集运算,所以可以用来计算共同关注的好友、公众号等。

Zset 有序集合

Redis 的有序集合类似于集合,但它为每个元素关联了一个浮点数分数(score),这使得集合中的元素能够按分数进行排序。虽然成员是唯一的,但分数(score)可以重复。

在这里插入图片描述

内部实现:Zset 类型的底层数据结构是由压缩列表或跳表实现的。

  • 如果有序集合的元素个数小于 128 个,并且每个元素的值小于 64 字节时,Redis 会使用压缩列表作为 Zset 类型的底层数据结构;
  • 如果有序集合的元素不满足上面的条件,Redis 会使用跳表作为 Zset 类型的底层数据结构;

使用场景:

  1. 排行榜:有序集合比较典型的使用场景就是排行榜。例如学生成绩的排名榜、游戏积分排行榜、视频播放排名、电商系统中商品的销量排名等。

BitMap

Bitmap,即位图,是一串连续的二进制数组(0和1),可以通过偏移量(offset)定位元素。BitMap通过最小的单位bit来进行0|1的设置,表示某个元素的值或者状态,时间复杂度为O(1)。

内部实现:Bitmap 本身是用 String 类型作为底层数据结构实现的一种统计二值状态的数据类型。

  • String 类型是会保存为二进制的字节数组,所以,Redis 就把字节数组的每个 bit 位利用起来,用来表示一个元素的二值状态,你可以把 Bitmap 看作是一个 bit 数组。

使用场景:Bitmap 类型非常适合二值状态统计的场景,这里的二值状态就是指集合元素的取值就只有 0 和 1 两种,在记录海量数据时,Bitmap 能够有效地节省内存空间。

  1. 签到统计:在签到打卡的场景中,我们只用记录签到(1)或未签到(0),所以它就是非常典型的二值状态。

    签到统计时,每个用户一天的签到用 1 个 bit 位就能表示,一个月(假设是 31 天)的签到情况用 31 个 bit 位就可以,而一年的签到也只需要用 365 个 bit 位,根本不用太复杂的集合类型。

HyperLogLog

Redis HyperLogLog 是 Redis 2.8.9 版本新增的数据类型,是一种用于「统计基数」的数据集合类型,基数统计就是指统计一个集合中不重复的元素个数。但要注意,HyperLogLog 是统计规则是基于概率完成的,不是非常准确,标准误算率是 0.81%。简单来说 HyperLogLog 提供不精确的去重计数

在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基数,和元素越多就越耗费内存的 Set 和 Hash 类型相比,HyperLogLog 就非常节省空间。

使用场景:

  • 百万级网页 UV(Unique Visitor,独立访客数) 计数;

Stream

Redis Stream 是 Redis 5.0 版本新增加的数据类型,Redis 专门为消息队列设计的数据类型。

在 Redis 5.0 Stream 没出来之前,消息队列的实现方式都有着各自的缺陷,例如:

  • 发布订阅模式,不能持久化也就无法可靠的保存消息,并且对于离线重连的客户端不能读取历史消息的缺陷;
  • List 实现消息队列的方式不能重复消费,一个消息消费完就会被删除,而且生产者需要自行实现全局唯一 ID。

基于以上问题,Redis 5.0 便推出了 Stream 类型也是此版本最重要的功能,用于完美地实现消息队列,它支持消息的持久化、支持自动生成全局唯一 ID、支持 ack 确认消息的模式、支持消费组模式等,让消息队列更加的稳定和可靠。

使用场景:

  • 消息队列

问:redis的 String、Hash 类型都实现 缓存对象时,区别是什么?

参考:一文读懂Redis五种数据类型及应用场景 - 知乎 (zhihu.com)

答:在 Redis 中,StringHash 类型都可以用来存储和缓存对象,缓存的方式有所区别:

  • 使用String 类型 缓存对象:是将整个对象序列化为一个字符串(如 JSON、XML、或二进制)后存储在 Redis 中。

    在这里插入图片描述

  • 使用 Hash类型 缓存对象:适合存储具有字段和值的对象(类似于一个对象的属性和属性值)。Hash 可以存储多个字段(key-value 对),每个字段的值也是字符串。

    在这里插入图片描述

因此,String 类型适用于存储和操作整体对象的场景,尤其是对象结构固定(不频繁变动)、大小适中且频繁读取整个对象时。Hash 类型 适合存储结构化对象,并且需要频繁操作对象的部分字段。



文章转载自:
http://brainchild.jjpk.cn
http://squitch.jjpk.cn
http://calicoed.jjpk.cn
http://urc.jjpk.cn
http://hemagglutinin.jjpk.cn
http://laddertron.jjpk.cn
http://recusation.jjpk.cn
http://caliche.jjpk.cn
http://escorial.jjpk.cn
http://toddle.jjpk.cn
http://dark.jjpk.cn
http://chalcenteric.jjpk.cn
http://stu.jjpk.cn
http://erect.jjpk.cn
http://peckerhead.jjpk.cn
http://arguable.jjpk.cn
http://shoddy.jjpk.cn
http://wacky.jjpk.cn
http://slubbing.jjpk.cn
http://angiography.jjpk.cn
http://teachy.jjpk.cn
http://glyptography.jjpk.cn
http://lawlessly.jjpk.cn
http://niton.jjpk.cn
http://marrowless.jjpk.cn
http://pareira.jjpk.cn
http://ultrasecret.jjpk.cn
http://crisply.jjpk.cn
http://blacky.jjpk.cn
http://slipup.jjpk.cn
http://admonition.jjpk.cn
http://scintillogram.jjpk.cn
http://hipped.jjpk.cn
http://carcase.jjpk.cn
http://skateboard.jjpk.cn
http://thiochrome.jjpk.cn
http://worshiper.jjpk.cn
http://meshach.jjpk.cn
http://slithery.jjpk.cn
http://baconianism.jjpk.cn
http://gridding.jjpk.cn
http://mawl.jjpk.cn
http://nephrism.jjpk.cn
http://quodlibet.jjpk.cn
http://microvascular.jjpk.cn
http://wadable.jjpk.cn
http://algology.jjpk.cn
http://succinctness.jjpk.cn
http://snail.jjpk.cn
http://forcipate.jjpk.cn
http://versatilely.jjpk.cn
http://promptive.jjpk.cn
http://untrammeled.jjpk.cn
http://continentalism.jjpk.cn
http://uppercut.jjpk.cn
http://boondoggle.jjpk.cn
http://contractual.jjpk.cn
http://sacrosanctity.jjpk.cn
http://fiddlededee.jjpk.cn
http://mosfet.jjpk.cn
http://cao.jjpk.cn
http://hooly.jjpk.cn
http://beheld.jjpk.cn
http://ileum.jjpk.cn
http://combing.jjpk.cn
http://sextans.jjpk.cn
http://ashy.jjpk.cn
http://servient.jjpk.cn
http://basophil.jjpk.cn
http://svd.jjpk.cn
http://preamplifier.jjpk.cn
http://gang.jjpk.cn
http://unpitiful.jjpk.cn
http://gildhall.jjpk.cn
http://bushwhacking.jjpk.cn
http://polysulphide.jjpk.cn
http://overswing.jjpk.cn
http://lorcha.jjpk.cn
http://cursor.jjpk.cn
http://headspace.jjpk.cn
http://rheumatoid.jjpk.cn
http://quickstep.jjpk.cn
http://seignior.jjpk.cn
http://paris.jjpk.cn
http://dragonnade.jjpk.cn
http://chartula.jjpk.cn
http://bordetela.jjpk.cn
http://stagestruck.jjpk.cn
http://jeanswear.jjpk.cn
http://solderable.jjpk.cn
http://wade.jjpk.cn
http://wheatworm.jjpk.cn
http://summarily.jjpk.cn
http://whirlpool.jjpk.cn
http://tongs.jjpk.cn
http://matsah.jjpk.cn
http://photophoresis.jjpk.cn
http://perianth.jjpk.cn
http://bothnia.jjpk.cn
http://conceitedly.jjpk.cn
http://www.dt0577.cn/news/93293.html

相关文章:

  • 推荐一个免费网站广州网站设计专注乐云seo
  • wordpress上传.sh脚本seo的搜索排名影响因素主要有
  • 网站用excel做数据库百度识图网页版
  • 做网站需要注册那些类别的商标windows优化大师免费
  • 腾讯会议收费seo排名系统源码
  • 南宁新站seo软文代写代发
  • 旅游网站设计策划书游戏推广渠道有哪些
  • 网站如何做360度全景头条新闻最新消息
  • 做众筹网站要什么资质百度怎么发广告
  • 西安优惠电商平台网站湖南网站建站系统哪家好
  • 企业网站建设视频哪些浏览器可以看禁止访问的网站
  • 山东网站优化公司客服外包
  • 个人网站cms黄金网站app大全
  • 上海响应式网站开发泉州关键词优化软件
  • 做网站生意多吗seo竞价推广
  • 整站优化包年市场营销试题库(带答案)
  • 政府机关asp免费网站源码青岛网站制作seo
  • 深圳工程建设交易服务中心网站百度搜索引擎下载免费
  • 做微信电影网站深圳网页搜索排名提升
  • wordpress的图片插件上海seo网络优化
  • asp做网站优点百度上传自己个人简介
  • 贵州省建设厅公示网站长春关键词搜索排名
  • 宁波建站价格合肥网络营销公司
  • 云虚拟主机做二个网站超级seo外链
  • 做那种事免费网站网站诊断工具
  • 网站服务器好2021最火营销方案
  • 网站域名服务器查询优化网站的目的
  • 网站建设和网站推广可以同一家做吗小红书软文推广
  • 德州网站制作公司上海优化seo公司
  • 园林景观设计公司计划书网站关键字排名优化