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

# Redis 入门到精通(一)数据类型(4)

Redis 入门到精通(一)数据类型(4)

一、redis 数据类型–sorted_set实现时效性任务管理

1、sorted_set 类型数据操作的注意事项

  • score 保存的数据存储空间是64位,如果是整数范围是-9007199254740992~9007199254740992。

  • score 保存的数据也可以是一个双精度的 double 值,基于双精度浮点数的特征,可能会丢失精度,使用时候要慎重。

  • sorted_set 底层存储还是基于 set 结构的,因此数据不能重复,如果重复添加相同的数据,score 值将被反复覆盖,保留最后一次修改的结果。

127.0.0.1:6379> zadd test1 11 aa
(integer) 1
127.0.0.1:6379> zrange test1 0 -1 withscores
1) "aa"
2) "11"
127.0.0.1:6379> zadd test1 22 aa
(integer) 0
127.0.0.1:6379> zrange test1 0 -1 withscores
1) "aa"
2) "22"
127.0.0.1:6379> zadd test1 33 aa
(integer) 0# 虽然返回失败,但是修改成功,保底最后一次的修改结果。
127.0.0.1:6379> zrange test1 0 -1 withscores
1) "aa"
2) "33"
127.0.0.1:6379>

2、sorted_set 类型应用场景–业务场景

基础服务+增值服务类网站会设定各位会员的试用,让用户充分体验会员优势。例如观影试用VIP、游戏VIP体验、云盘下载体验VIP、数据查看体验VIP。当VIP体验到期后,如果有效管理此类信息。即便对于正式VIP用户也存在对应的管理方式。

网站会定期开启投票、讨论,限时进行,逾期作废。如何有效管理此类过期信息。

3、sorted_set 类型应用场景–解决方案

  • 对于基于时间线限定的任务处理,将处理时间记录为 score 值,利用排序功能区分处理的先后顺序。

  • 记录下一个要处理的时间,当到期后处理对应任务,移除redis中的记录,并记录下一个要处理的时间

  • 当新任务加入时,判定并更新当前下一个要处理的任务时间。

  • 为提升 sorted set 的性能,通常将任务根据特征存储成若干个 sorted set。例如1小时内,1天内,周内月内,季内,年度等,操作时逐级提升,将即将操作的若干个任务纳入到1小时内处理的队列中。

  • 获取当前系统时间: time

4、redis 实际模拟操作–sorted_set 实现时效性任务管理

# 添加数据 
127.0.0.1:6379> zadd ts 1509802345 uid:001
(integer) 1
127.0.0.1:6379> zadd ts 1509802390 uid:007
(integer) 1
127.0.0.1:6379> zadd ts 1510384284 uid:888
(integer) 1# 有序排列
127.0.0.1:6379> zrange ts 0 -1 withscores
1) "uid:001"
2) "1509802345"
3) "uid:007"
4) "1509802390"
5) "uid:888"
6) "1510384284"# 获取当前时间
127.0.0.1:6379> time
1) "1720706679"
2) "248469"
127.0.0.1:6379> time
1) "1720706681"
2) "558810"
127.0.0.1:6379>

5、redis 应用场景:

1)redis 用于控制数据库表主键 id,为数据库表主键提供生成策略,保障数据库表的主键唯一性此方案适用于所有数据库,且支持数据库集群。

2)redis 控制数据的生命周期,通过数据是否失效控制业务行为,适用于所有具有时效性限定控制的操作。

3)redis 可应用于各种结构型和非结构型高热度数据访问加速。

4)redis 应用于购物车数据存储设计。

5)redis 应用于抢购,限购类、限量发放优惠卷、激活码等业务的数据存储设计。

6)redis 应用于具有操作先后顺序的数据控制。

7)redis 应用于最新消息展示。

8)redis 应用于随机推荐类信息检索,例如热点歌单推荐,热点新闻推荐,热卖旅游线路,应用APP推荐大V推荐等。

9)set 类型数据的扩展操作:

  • redis 应用于同类信息的关联搜索,二度关联搜索,深度关联搜索。
  • 显示共同关注(一度)。
  • 显示共同好友(一度)。
  • 由用户A出发,获取到好友用户B的好友信息列表(一度)。
  • 由用户A出发,获取到好友用户B的购物清单列表(二度)。
  • 由用户A出发,获取到好友用户B的游戏充值列表(二度)。

10)redis 应用于同类型不重复数据的合并操作。

11)redis 应用于同类型数据的快速去重。

12)redis 应用于基于黑名单与白名单设定的服务控制。

13)redis 应用于计数器组合排序功能对应的排名

14)redis 应用于定时任务执行顺序管理或任务过期管理

二、redis 数据类型-- sorted_set 带有权重的任务管理

1、sorted_set 类型应用场景–业务场景

任务/消息权重设定应用

当任务或者消息待处理,形成了任务队列或消息队列时,对于高优先级的任务要保障对其优先处理,如何实现任务权重管理。

2、sorted_set 类型应用场景–解决方案

  • 对于带有权重的任务,优先处理权重高的任务,采用 score 记录权重即可。
    多条件任务权重设定:
    如果权重条件过多时,需要对排序 score 值进行处理,保障 score 值能够兼容2条件或者多条件,例如外贸订单优先于国内订单,总裁订单优先于员工订单,经理订单优先于员工订单。

  • 因 score 长度受限,需要对数据进行截断处理,尤其是时间设置为小时或分钟级即可(折算后)。

  • 先设定订单类别,后设定订单发起角色类别,整体 score 长度必须是统一的,不足位补0。第一排序规则首位不得是0。

    • 例如外贸101,国内102,经理004,员工008
    • 员工下的外贸单score值为101008(优先)
    • 经理下的国内单score值为102004

3、redis 实际模拟操作–sorted_set 带有权重的任务管理

# 添加数据(任务按权重排序)
127.0.0.1:6379> zadd tasks 1 order:id:425
(integer) 1
127.0.0.1:6379> zadd tasks 9 order:id:345
(integer) 1
127.0.0.1:6379> zadd tasks 4 order:id:005
(integer) 1# 任务按权重排序显示
127.0.0.1:6379> zrevrange tasks 0 -1 withscores
1) "order:id:345"
2) "9"
3) "order:id:005"
4) "4"
5) "order:id:425"
6) "1"# 获取权重最高的任务
127.0.0.1:6379> zrevrange tasks 0 0
1) "order:id:345"# 移除权重最高的任务
127.0.0.1:6379> zrem tasks order:id:345
(integer) 1
127.0.0.1:6379> zrevrange tasks 0 -1 withscores
1) "order:id:005"
2) "4"
3) "order:id:425"
4) "1"
127.0.0.1:6379># 添加数据 
127.0.0.1:6379> zadd tt 102004 order:id:1
(integer) 1
127.0.0.1:6379> zadd tt 101008 order:id:2
(integer) 1# 反向排序
127.0.0.1:6379> zrevrange tt 0 -1 withscores
1) "order:id:1"
2) "102004"
3) "order:id:2"
4) "101008"# 正向排序
127.0.0.1:6379> zrange tt 0 -1
1) "order:id:2"
2) "order:id:1"
127.0.0.1:6379>

4、redis 应用场景:

1)redis 用于控制数据库表主键 id,为数据库表主键提供生成策略,保障数据库表的主键唯一性此方案适用于所有数据库,且支持数据库集群。

2)redis 控制数据的生命周期,通过数据是否失效控制业务行为,适用于所有具有时效性限定控制的操作。

3)redis 可应用于各种结构型和非结构型高热度数据访问加速。

4)redis 应用于购物车数据存储设计。

5)redis 应用于抢购,限购类、限量发放优惠卷、激活码等业务的数据存储设计。

6)redis 应用于具有操作先后顺序的数据控制。

7)redis 应用于最新消息展示。

8)redis 应用于随机推荐类信息检索,例如热点歌单推荐,热点新闻推荐,热卖旅游线路,应用APP推荐大V推荐等。

9)set 类型数据的扩展操作:

  • redis 应用于同类信息的关联搜索,二度关联搜索,深度关联搜索。
  • 显示共同关注(一度)。
  • 显示共同好友(一度)。
  • 由用户A出发,获取到好友用户B的好友信息列表(一度)。
  • 由用户A出发,获取到好友用户B的购物清单列表(二度)。
  • 由用户A出发,获取到好友用户B的游戏充值列表(二度)。

10)redis 应用于同类型不重复数据的合并操作。

11)redis 应用于同类型数据的快速去重。

12)redis 应用于基于黑名单与白名单设定的服务控制。

13)redis 应用于计数器组合排序功能对应的排名

14)redis 应用于定时任务执行顺序管理或任务过期管理

15)redis 应用于即时任务/消息队列执行管理

三、redis 数据类型-- 案例:按次结算的服务控制

1、数据类型实践案例–业务场景

人工智能领域的语义识别与自动对话将是未来服务业机器人应答呼叫体系中的重要技术,百度自研用户评价语义识别服务,免费开放给企业试用,同时训练百度自己的模型。现对试用用户的使用行为进行限速,限制每个用户每分钟最多发起10次调用

18-按次结算的服务控制-1.png

2、数据类型实践案例–解决方案

  • 设计计数器,记录调用次数,用于控制业务执行次数。以用户id作为 key,使用次数作为 value。
  • 在调用前获取次数,判断是否超过限定次数
    不超过次数的情况下,每次调用计数+1
    业务调用失败,计数-1
  • 为计数器设置生命周期为指定周期,例如1秒/分钟,自动清空周期内使用次数。

18-按次结算的服务控制-2.png

3、redis 实际模拟操作–案例:按次结算的服务控制

# 先获取值,看是否存在,不存在,设定为初始1
127.0.0.1:6379> get 415
(nil)# 设置 60秒内计数器开始计数(10次以内,超过10次,重新计数)
127.0.0.1:6379> setex 415 60 1
OK
127.0.0.1:6379> get 415
"1"
127.0.0.1:6379> incr 415
(integer) 2
127.0.0.1:6379> incr 415
(integer) 2# 超过60秒,清空重新开始
127.0.0.1:6379> get 415
(nil)
127.0.0.1:6379>

4、数据类型实践案例–解决方案改良

不要让每次都判断上限 10 次到了没有,让程序最后一次性判断到10次了没。

18-按次结算的服务控制-3.png

5、数据类型实践案例–解决方案改良

  • 取消最大值的判定,利用 incr 操作超过最大值抛出异常的形式替代每次判断是否大于最大值。
  • 判断是否为 nil
    如果是,设置为 Max-次数
    如果不是,计数+1
    业务调用失败,计数-1
  • 遇到异常即+操作超过上限,视为使用达到上限。

18-按次结算的服务控制-4.png

6、redis 实际模拟操作–案例:按次结算的服务控制改良

# 先获取值,看是否存在,不存在,设定为初始1
127.0.0.1:6379> get 415
(nil)# 设置 60秒内计数器开始计数(利用 incr 操作超过最大值)
127.0.0.1:6379> setex 415 60 9223372036854775797
OK
127.0.0.1:6379> get 415
"9223372036854775797"
127.0.0.1:6379> incr 415
(integer) 9223372036854775798
127.0.0.1:6379> incr 415
(integer) 9223372036854775799
127.0.0.1:6379> incr 415
(integer) 9223372036854775800
127.0.0.1:6379> incr 415
(integer) 9223372036854775801
127.0.0.1:6379> incr 415
(integer) 9223372036854775802
127.0.0.1:6379> incr 415
(integer) 9223372036854775803
127.0.0.1:6379> incr 415
(integer) 9223372036854775804
127.0.0.1:6379> incr 415
(integer) 9223372036854775805
127.0.0.1:6379> incr 415
(integer) 9223372036854775806
127.0.0.1:6379> incr 415
(integer) 9223372036854775807# 到达10次,抛出异常
127.0.0.1:6379> incr 415
(error) ERR increment or decrement would overflow
127.0.0.1:6379> incr 415
(error) ERR increment or decrement would overflow
127.0.0.1:6379>

7、redis 应用场景:

1)redis 用于控制数据库表主键 id,为数据库表主键提供生成策略,保障数据库表的主键唯一性此方案适用于所有数据库,且支持数据库集群。

2)redis 控制数据的生命周期,通过数据是否失效控制业务行为,适用于所有具有时效性限定控制的操作。

3)redis 可应用于各种结构型和非结构型高热度数据访问加速。

4)redis 应用于购物车数据存储设计。

5)redis 应用于抢购,限购类、限量发放优惠卷、激活码等业务的数据存储设计。

6)redis 应用于具有操作先后顺序的数据控制。

7)redis 应用于最新消息展示。

8)redis 应用于随机推荐类信息检索,例如热点歌单推荐,热点新闻推荐,热卖旅游线路,应用APP推荐大V推荐等。

9)set 类型数据的扩展操作:

  • redis 应用于同类信息的关联搜索,二度关联搜索,深度关联搜索。
  • 显示共同关注(一度)。
  • 显示共同好友(一度)。
  • 由用户A出发,获取到好友用户B的好友信息列表(一度)。
  • 由用户A出发,获取到好友用户B的购物清单列表(二度)。
  • 由用户A出发,获取到好友用户B的游戏充值列表(二度)。

10)redis 应用于同类型不重复数据的合并操作。

11)redis 应用于同类型数据的快速去重。

12)redis 应用于基于黑名单与白名单设定的服务控制。

13)redis 应用于计数器组合排序功能对应的排名。in

14)redis 应用于定时任务执行顺序管理或任务过期管理。

15)redis 应用于即时任务/消息队列执行管理。

16)redis 应用于限时按次结算的服务控制。

四、redis 数据类型-- 案例:微信接收消息顺序控制

1、数据类型实践案例–业务场景

使用微信的过程中,当微信接收消息后,会默认将最近接收的消息置顶,当多个好友及关注的订阅号同时发送消息时,该排序会不停的进行交替。同时还可以将重要的会话设置为置顶。一旦用户离线后,再次打开微信时,消息该按照什么样的顺序显示?

2、数据类型实践案例–业务分析:

19-微信接收消息顺序控制.png

3、数据类型实践案例–解决方案

  • 依赖 list 的数据具有顺序的特征对消息进行管理,将 list 结构作为栈使用。
  • 对置顶与普通会话分别创建独立的 list 分别管理。
  • 当某个 list 中接收到用户消息后,将消息发送方的 id 从 list 的一侧加入 list(此处设定左侧)。
  • 多个相同 id 发出的消息反复入栈会出现问题,在入栈之前无论是否具有当前 id 对应的消息,先删除对应 id 。
  • 推送消息时先推送置顶会话 list,再推送普通会话 list,推送完成的 list 清除所有数据。
  • 消息的数量,也就是微信用户对话数量采用计数器的思想另行记录,伴随 list 操作同步更新。

4、redis 实际模拟操作–案例:微信接收消息顺序控制

# 在接收方 100 对象中,先删除一次200,由于第一次没有200,删除肯定是失败的
127.0.0.1:6379> lrem 100 1 200
(integer) 0# 在接收方 100 对象中,放入消息200
127.0.0.1:6379> lpush 100 200
(integer) 1# 在接收方 100 对象中,先删除一次300,由于第一次没有300,删除肯定是失败的
127.0.0.1:6379> lrem 100 1 300
(integer) 0# 在接收方 100 对象中,放入消息300
127.0.0.1:6379> lpush 100 300
(integer) 2# 在接收方 100 对象中,先删除一次400,由于第一次没有400,删除肯定是失败的
127.0.0.1:6379> lrem 100 1 400
(integer) 0# 在接收方 100 对象中,放入消息400
127.0.0.1:6379> lpush 100 400
(integer) 3# 在接收方 100 对象中,先删除一次200,由于是第二次接收消息200,删除成功
127.0.0.1:6379> lrem 100 1 200
(integer) 1# 在接收方 100 对象中,放入消息200
127.0.0.1:6379> lpush 100 200
(integer) 3# 在接收方 100 对象中,先删除一次300,由于是第二次接收消息300,删除成功
127.0.0.1:6379> lrem 100 1 300
(integer) 1# 在接收方 100 对象中,放入消息300
127.0.0.1:6379> lpush 100 300
(integer) 3# 此时查询接收方100内的消息队列为:
127.0.0.1:6379> lrange 100 0 -1
1) "300"
2) "200"
3) "400"
127.0.0.1:6379>

5、redis 应用场景:

1)redis 用于控制数据库表主键 id,为数据库表主键提供生成策略,保障数据库表的主键唯一性此方案适用于所有数据库,且支持数据库集群。

2)redis 控制数据的生命周期,通过数据是否失效控制业务行为,适用于所有具有时效性限定控制的操作。

3)redis 可应用于各种结构型和非结构型高热度数据访问加速。

4)redis 应用于购物车数据存储设计。

5)redis 应用于抢购,限购类、限量发放优惠卷、激活码等业务的数据存储设计。

6)redis 应用于具有操作先后顺序的数据控制。

7)redis 应用于最新消息展示。

8)redis 应用于随机推荐类信息检索,例如热点歌单推荐,热点新闻推荐,热卖旅游线路,应用APP推荐大V推荐等。

9)set 类型数据的扩展操作:

  • redis 应用于同类信息的关联搜索,二度关联搜索,深度关联搜索。
  • 显示共同关注(一度)。
  • 显示共同好友(一度)。
  • 由用户A出发,获取到好友用户B的好友信息列表(一度)。
  • 由用户A出发,获取到好友用户B的购物清单列表(二度)。
  • 由用户A出发,获取到好友用户B的游戏充值列表(二度)。

10)redis 应用于同类型不重复数据的合并操作。

11)redis 应用于同类型数据的快速去重。

12)redis 应用于基于黑名单与白名单设定的服务控制。

13)redis 应用于计数器组合排序功能对应的排名。in

14)redis 应用于定时任务执行顺序管理或任务过期管理。

15)redis 应用于即时任务/消息队列执行管理。

16)redis 应用于限时按次结算的服务控制。

17)redis 应用于基于时间顺序的数据操作,而不关注具体时间。

上一节关联链接请点击:
# Redis 入门到精通(一)数据类型(3)

相关文章:

# Redis 入门到精通(一)数据类型(4)

Redis 入门到精通(一)数据类型(4) 一、redis 数据类型–sorted_set实现时效性任务管理 1、sorted_set 类型数据操作的注意事项 score 保存的数据存储空间是64位,如果是整数范围是-9007199254740992~9007199254740992…...

西邮计科嵌入式复习

西邮嵌入式复习 一、第一章复习二、第二章复习三、第三章复习四、第四章复习 一、第一章复习 二、第二章复习 三、第三章复习 四、第四章复习...

Java如何使用 HttpClientUtils 发起 HTTP 请求

Java如何使用 HttpClientUtils 发起 HTTP 请求 一、前言1.HttpClientUtils 类概览2.解析 HttpClientUtils 类3.使用 HttpClientUtils 类 一、前言 在现代的软件开发中,经常需要与远程服务器进行通信,例如获取数据或发送数据。Apache HttpClient 是一个流…...

无人机的工作原理

无人飞行器(UAV,即Unmanned Aerial Vehicle)的工作原理涉及多个复杂的系统和技术。以下是对各个系统和技术的详细介绍: 1. 飞行控制系统(FCS) 飞行控制系统是无人机的“大脑”,负责监控和调整…...

敏捷开发笔记(第10章节)--Liskov原则(LSP)

目录 1:PDF上传链接 10.1 Liskov替换原则(LSP) 10.2 一个违反LSP的简单例子 10.6 启发式规则和习惯用法 10.7 结论 1:PDF上传链接 【免费】敏捷软件开发(原则模式与实践)资源-CSDN文库 OCP背后的主要机制是抽象(abstraction…...

基于SSM的校园一卡通管理系统的设计与实现

摘 要 本报告全方位、深层次地阐述了校园一卡通管理系统从构思到落地的整个设计与实现历程。此系统凭借前沿的 SSM(Spring、Spring MVC、MyBatis)框架精心打造而成,旨在为学校构建一个兼具高效性、便利性与智能化的一卡通管理服务平台。 该系…...

新版Android Studio中设置gradle的JDK版本

旧版android studio 在旧版(具体哪个版本号之前搞不清了)中设置JDK版本在>File——>Project Structure——>SDK location——>Gradle Setting——>Gradle SDK 新版android studio 某次更新后发现SDK location下找不到Gradle Setting选项…...

打造你的智能家居指挥中心:基于STM32的多协议(zigbee、http)网关(附代码示例)

1. 项目概述 随着物联网技术的蓬勃发展,智能家居正逐步融入人们的日常生活。然而,市面上琳琅满目的智能家居设备通常采用不同的通信协议,导致不同品牌设备之间难以实现互联互通。为了解决这一难题,本文设计了一种基于STM32的多协…...

【基于R语言群体遗传学】-16-中性检验Tajima‘s D及连锁不平衡 linkage disequilibrium (LD)

Tajimas D Test 已经开发了几种中性检验,用于识别模型假设的潜在偏差。在这里,我们将说明一种有影响力的中性检验,即Tajimas D(Tajima 1989)。Tajimas D通过比较数据集中的两个𝜃 4N𝜇估计值来…...

防火墙组网与安全策略实验

实验要求: 实现: 防火墙接口配置: 所有接口均配置为三层接口 由于G1/0/3口下为vlan环境,所以防火墙需要配置子接口 : 交换机划分vlan分开生产区和办公区、配置trunk干道 : 安全策略: 生产区访…...

xmind梳理测试点,根据这些测试点去写测试用例

基本流(冒烟用例必写) 备选流 公共测试点:...

MICCAI 2024 每日一篇论文 纯纯直读 CUTS:用于多粒度无监督医学图像分割的深度学习和拓扑框架

MICCAI 2024 CUTS: A Deep Learning and Topological Framework for Multigranular Unsupervised Medical Image Segmentation CUTS: 用于多粒度无监督医学图像分割的深度学习和拓扑框架 作者 陈璐1*、Matthew Amodio1*、梁博伦.沈2、冯高3、阿曼阿维斯塔4、Sanjay Aneja3,5…...

实验9 存储过程与函数的创建管理实验

一、实验目的: 理解存储过程和函数的概念。掌握创建存储过程和函数的方法。掌握执行存储过程和函数的方法。掌握游标的定义、使用方法。 二、实验内容 1.某超市的食品管理的数据库的Food表,Food表的定义如表所示, Food表的定义…...

计算机网络--tcpdump和iptable设置、内核参数优化策略

tcpdump工具 tcpdump命令: 选项字段: 过滤表达式: 实用命令: TCP三次握手抓包命令: #客户端执行tcpdump 抓取数据包 tcpdump -i etho tcp and host 192.168.12.36 and port 80 -W timeout.pcapnetstat命令 netst…...

Vue3框架搭建2:axios+typescript封装

仓库地址:https://github.com/buguniao5213/LuArch 1、安装axios npm install axios2、创建文件 先创建一个文件夹: ├── src/ │ ├── api/ │ │ ├── index.ts/ #编写axios封装代码 │ │ └── example.ts/ #定义…...

【机器学习】使用决策树分类器预测汽车安全性的研究与分析

文章目录 一、决策树算法简介决策树的结构分类和回归树 (CART)决策树算法术语决策树算法直觉 二、属性选择度量信息增益熵 基尼指数计算分割基尼指数的步骤 三、决策树算法中的过度拟合避免过度拟合的方法 四、导入库和数据可视化探索性数据分析重命名列名查看数据集的总结信息…...

【香橙派 Orange pi AIpro】| 开发板深入使用体验

目录 一. 🦁 写在前面二. 🦁 愉快的安装流程2.1 安装前准备2.2 流程准备2.2.1 烧录镜像2.2.2 开机2.2.3 连网2.2.4 SSH远程连接开发板 2.3 体验 AI 应用样例 三. 🦁 写在最后 一. 🦁 写在前面 大家好,我是狮子呀&…...

初识Laravel(Laravel的项目搭建)

初识Laravel(Laravel的项目搭建) 一、项目简单搭建(laravel)1.首先我们确保使用国内的 Composer 加速镜像([加速原理](https://learnku.com/php/wikis/30594)):2.新建一个名为 Laravel 的项目&a…...

RequestContextHolder多线程获取不到request对象

RequestContextHolder多线程获取不到request对象,调用feign接口时,在Feign中的RequestInterceptor也获取不到HttpServletRequest问题解决方案。 1.RequestContextHolder多线程获取不到request对象 异常信息,报错如下: 2024-07-0…...

打造高效工作与生活质量的完美平衡

在快节奏的编程行业中,保持健康的工作与生活平衡是至关重要的。长时间坐在电脑前、面对紧凑的项目截止日期和频繁的加班文化,很容易导致身心健康问题,如眼睛疲劳、颈部和背部疼痛、压力累积、睡眠障碍乃至慢性疾病。因此,采取积极…...

【零基础】学JS之APIS第四天

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…...

走进linux

1、为什么要使用linux 稳定性和可靠性: Linux内核以其稳定性而闻名,能够持续运行数月甚至数年而不需要重新启动。这对于服务器来说至关重要,因为它们需要保持长时间的稳定运行,以提供持续的服务 安全性: Linux系统…...

智能家居开发新进展:乐鑫 ESP-ZeroCode 与亚马逊 ACK for Matter 实现集成

日前,乐鑫 ESP-ZeroCode 与亚马逊 Alexa Connect Kit (ACK) for Matter 实现了集成。这对智能家居设备制造商来说是一项重大进展。开发人员无需编写固件或开发移动应用程序,即可轻松设计符合 Matter 标准的产品。不仅如此,开发者还可以在短短…...

本地事务和分布式事务

一、本地事务 1、事务的基本特性 数据库事务的几个基本特性:原子性、一致性、隔离性、持久性。  原子性:一系列的操作整体不可拆分,要么同时成功,要么同时失败。  一致性:数据在事务的前后,业务整体一…...

昇思25天学习打卡营第14天|基于MindNLP的文本解码原理

基于MindNLP的文本解码原理 文本解码 文本解码是自然语言处理中的一个关键步骤,特别是在任务如机器翻译、文本摘要、自动回复生成等领域。解码过程涉及将编码器(如语言模型、翻译模型等)的输出转换为可读的文本序列。以下是一些常见的文本解码方法和原理: 1. 自回归解码:…...

Base64文件流查看下载PDF方法-CSDN

问题描述 数票通等接口返回的PDF类型发票是以Base64文件流的方式返回的&#xff0c;无法直接查看预览PDF发票&#xff0c; 处理方法 使用第三方在线工具&#xff1a;https://www.jyshare.com/front-end/61/ 在Html代码框中粘贴如下代码 <embed type"application/pd…...

基于TCP的在线词典系统(分阶段实现)(阻塞io和多路io复用(select)实现)

1.功能说明 一共四个功能&#xff1a; 注册 登录 查询单词 查询历史记录 单词和解释保存在文件中&#xff0c;单词和解释只占一行, 一行最多300个字节&#xff0c;单词和解释之间至少有一个空格。 2.功能演示 3、分阶段完成各个功能 3.1 完成服务器和客户端的连接 servic…...

设置DepthBufferBits和设置DepthStencilFormat的区别

1&#xff09;设置DepthBufferBits和设置DepthStencilFormat的区别 2&#xff09;Unity打包exe后&#xff0c;游戏内拉不起Steam的内购 3&#xff09;Unity 2022以上Profiler.FlushMemoryCounters耗时要怎么关掉 4&#xff09;用GoodSky资产包如何实现昼夜播发不同音乐功能 这是…...

MySQL零散拾遗

mysql中大小写敏感吗&#xff1f; MySQL数据库默认情况下是不区分大小写的&#xff0c;这意味着在查询时&#xff0c;字段名和值的大小写不会影响结果。然而&#xff0c;这种默认行为可能会根据操作系统和配置的不同而有所变化。 在某些操作系统上&#xff0c;比如Linux&…...

kali安装vulhub遇到的问题及解决方法(docker及docker镜像源更换)

kali安装vulhub&#xff1a; 提示&#xff1a;项目地址 https://github.com/vulhub/vulhub 项目安装&#xff1a; git clone https://github.com/vulhub/vulhub.git 安装docker 提示&#xff1a;普通用户请使用sudo&#xff1a; 首先安装 https 协议、CA 证书 apt-get in…...

沈阳做微网站/岳阳网站建设推广

手机“恢复出厂设置”后&#xff0c;真会像新机一样流畅吗?答案你可能不信在互联网时代&#xff0c;移动支付已经普及&#xff0c;相比于以前&#xff0c;现在不管是工作还是生活&#xff0c;我们都需要使用到手机&#xff0c;也相信很多小伙伴每天醒来的第一件事情&#xff0…...

怎样在b2b网站做推广/5g网络优化

在这篇《MVC母版页_Layout.cshtml》http://www.cnblogs.com/insus/p/3380419.html中&#xff0c;把一些已经存在的视图或是新产生的视图加入母版中。不管怎样实现&#xff0c;产生出来的视图&#xff0c;均会有一行代码&#xff0c;即是它指向哪一个母版页的&#xff1a;如果你…...

https下安装wordpress/对网站进行seo优化

资源整理。这次太久没更新&#xff0c;最近比较忙。老规矩拆成两篇。 Coding: 1.比较独立&#xff0c;部分汇集和系统发育知识的生态位模型。“Niche estimation above and below the species level. Trends in Ecology and Evolution”论文的附件。 phyloENM TREE 2.用于生态预…...

做外贸建网站/免费建站网站网页

问题及代码&#xff1a; /*。 *Copyright(c)2014,烟台大学计算机学院 *All right reserved, *文件名&#xff1a;test.cpp *作者&#xff1a;liu_feng_zi_ *完成日期&#xff1a;2014年12月9日 *版本号&#xff1a;v1.0 * 问题描述&#xff1a; *输入描述&#xff1a; *程序输…...

最好的网站建设用途/seo营销外包公司

这两天&#xff0c;鸿蒙操作系统因为在华为合作伙伴大会上的正式亮相&#xff0c;再次成为公众关注的一大热门话题。但操作系统毕竟不像折叠屏手机那样&#xff0c;看得见、摸得着&#xff0c;所以对它诞生的重要意义&#xff0c;以及对未来5G应用的影响&#xff0c;需要详细地…...

小程序开发和app开发差别/seo教学培训

B- 树 B-树又名B树&#xff0c;我们把所有的数据进行折半块查找&#xff0c;比如一共100条数据。在30和60的地方分一下&#xff0c;存放30和60的节点就是根节点。30和60就是该节点的关键字&#xff0c;100也就是分成了3份&#xff0c;这个节点自动创建三个指针。这三份就是根节…...