Redis 命令—— 超详细操作演示!!!
内存数据库 Redis7
- 三、Redis 命令
- 3.1 Redis 基本命令
- 3.2 Key 操作命令
- 3.3 String 型 Value 操作命令
- 3.4 Hash 型 Value 操作命令
- 3.5 List 型 Value 操作命令
- 3.6 Set 型 Value 操作命令
- 3.7 有序Set 型 Value 操作命令
- 3.8 benchmark 测试工具
- 3.9 简单动态字符串SDS
- 3.10 集合的底层实现原理
- 3.11 BitMap 操作命令
- 3.12 HyperLogLog 操作命令
- 3.13 Geospatial 操作命令
- 3.14 发布/订阅命令
- 3.15 Redis 事务
- 四、Redis 持久化
- 五、Redis 主从集群
- 六、Redis 分布式系统
- 七、Redis 缓存
- 八、Lua脚本详解
- 九、分布式锁
数据库系列文章:
关系型数据库:
- MySQL —— 基础语法大全
- MySQL —— 进阶
非关系型数据库:
- Redis 的安装与配置
三、Redis 命令
Redis 根据命令所操作对象的不同,可以分为三大类:对 Redis 进行基础性操作的命令,对 Key
的操作命令,对 Value
的操作命令。
3.1 Redis 基本命令
⭐️ 3.1.1、 心跳命令 ping
- 键入
ping
命令,会看到PONG
响应,则说明该客户端与 Redis 的连接是正常的。该命令亦称为 心跳命令。
⭐️ 3.1.2、读写键值命令
set key value
会将指定key value
写入到 DB 。get key
则会读取指定key
的value
值。关于更多set
与get
命令格式,后面会详细学习。
⭐️ 3.1.3、 DB切换 select
- Redis 默认有 16 个数据库。这个在 Redis Desktop Manager (RDM)图形客户端中可以直观地看到。
- 默认使用的是
0
号 DB ,可以通过select db
索引来切换 DB 。- 例如,如下命令会
select 3
切换到 DB3 ,并会将age-23
写入到 DB3 中。
- 例如,如下命令会
- 并且 这个结果在 RDM 中是可以直观地看到的。
⭐️ 3.1.4、 查看 key 数量 dbsize
dbsize
命令可以查看 当前数据库 中key
的数量。
- 从以上查看情况看, DB0 中有 2 个
key
; DB1 中没有key
; DB3 中有 1 个key
。
⭐️ 3.1.5、 删除当前库中数据 flushdb
flushdb
命令仅仅 删除的是当前数据库中的数据,不影响其它库。
⭐️ 3.1.6、 删除所有库中数据命令 flushall
flushall
命令可以删除所有库中的所有数据。所以该命令的使用一定要慎重。
⭐️ 3.1.7、 退出客户端命令
- 使用
exit
或quit
命令均可退出 Redis 命令行客户端。
3.2 Key 操作命令
Redis 中 存储的数据整体 是一个 Map
,其 key
为 String
类型,而 value
则可以是 String
、Hash 表
、 List
、 Set
等类型。
⭐️ 3.2.1、keys
- 格式:
KEYS pattern
- 功能:查找所有符合给定模式
pattern
的key
,pattern
为正则表达式 。 - 说明:
KEYS
的速度非常快,但在一个大的数据库中使用它可能会 阻塞 当前服务器的服务 。 所以生产环境中一般不使用该命令,而使用scan
命令代替。
⭐️ 3.2.2、exists
- 格式:
EXISTS key
- 功能:检查给定
key
是否存在。 - 说明:若
key
存在,返回1
,否则返回0
。
⭐️ 3.2.3、del
- 格式:
DEL key [key ...]
- 功能:删除给定的一个或多个
key
。不存在的key
会被忽略。 - 说明: 返回 被删除
key
的数量。
⭐️ 3.2.4、rename
- 格式:
RENAME key newkey
- 功能:将
key
改名为newkey
。 - 说明:当
key
和newkey
相同,或者key
不存在时,返回一个错误。当 newkey
已经存在时,RENAME
命令将覆盖旧值。改名成功时提示OK
,失败时候返回一个错误。
⭐️ 3.2.5、move
- 格式:
MOVE key db
- 功能:将当前数据库的
key
移动 到 给定的数据库 db 当中。 - 说明: 如果 当前数据库(源数据库) 和 给定数据库(目标数据库) 有相同名字的给定
key
,或者key
不存在于 当前数据库,那么MOVE
没有任何效果。 移动成功返回1
,失败则返回0
。
⭐️ 3.2.6、type
- 格式:
TYPE key
- 功能:返回
key
所储存的 值的类型。 - 说明: 返回值有以下六种
none
(key
不存在)string
字符串list
列表set
集合zset
有序集hash
哈希表
⭐️ 3.2.7、expire 与 pexpire
- 格式:
EXPIRE key seconds
- 功能:为给定
key
设置生存时间 。 当key
过期时 (生存时间为 0),它会被自动删除。expire
的时间单位为秒
,pexpire
的时间单位为毫秒
。- 在 Redis 中,带有生存时间的
key
被称为 "易失的” (volatile
)。
- 说明: 生存时间 设置成功返回 1 。 若
key
不存在 时 返回 0 。rename
操作不会改变key
的生存时间。
⭐️ 3.2.8、ttl 与 pttl
- 格式:
TTL key
- 功能:
TTL
,time to live
,返回给定key
的 剩余生存时间。 - 说明:其返回值存在三种可能:
- 当
key
不存在时,返回-2
。 - 当
key
存在但没有设置剩余生存时间时,返回1
。 - 否则,返回
key
的剩余生存时间。ttl
命令返回的时间单位为秒
,而pttl
命令返回的时间单位为毫秒
。
- 当
⭐️ 3.2.9、persist
- 格式:
PERSIST key
- 功能:去除给定
key
的生存时间,将这个key
从 “易失的” 转换成 “持久的” 。 - 说明: 当生存时间移除成功时,返回 1 ;若
key
不存在或key
没有设置生存时间, 则返回 0 。
⭐️ 3.2.10、randomkey
- 格式:
RANDOMKEY
- 功能:从当前数据库中随机返回 不删除 一个
key
。 - 说明: 当数据库不为空时,返回一个
key
。当数据库为空时,返回nil
。
⭐️ 3.2.11、scan
- 格式:
SCAN cursor [MATCH pattern] [COUNT count] [TYPE
- 功能:用于迭代数据库中的 数据库键。 其各个选项的意义为:
cursor
:本次迭代开始的 游标。pattern
:本次迭代要 匹配的key
的模式。count
:本次迭代要从数据集里返回多少元素,默认值为10
。type
本次迭代要返回的value
的类型,默认为所有类型
。
SCAN 命令是一个基于游标
cursor
的迭代器:
- SCAN 命令每次被调用之后,都会向用户返回一个 包含两个元素的数组, 第一个元素是用于进行下一次迭代的新游标,而第二个元素则是一个数组, 这个数组中包含了所有被迭代的元素。 用户在下次迭代时需要使用这个新游标作为
SCAN
命令的游标参数,以此来延续之前的迭代程。- 当 SCAN 命令的游标参数被设置为 0 时,服务器将开始一次新的迭代。 如果新游标返回 0 表示迭代已结束。
- 说明: 使用间断的、负数、超出范围 或者 其他非正常 的游标来执行 增量式迭代 b不会造成服务器崩溃。
当数据量很大时,
count
的数量的指定可能会不起作用, Redis 会自动调整每次的遍历数目。 由于 scan 命令 每次执行都只会返回少量元素,所以该命令可以用于生产环境,而不会出现像KEYS
命令带来的服务器阻塞问题。
增量式迭代命令所使用的算法只保证在数据集的大小有界的情况下迭代才会停止,换句话说,如果被迭代数据集的大小不断地增长的话,增量式迭代命令可能永远也无法完成一次完整迭代。 即 当一个数据集不断地变大时,想要访问这个数据集中 的所有元素就需要做越来越多的工作, 能否结束一个迭代取决于用户执行迭代的速度是否比数据集增长的速度更快。
相关命令:另外还有 3 个 scan 命令用于对三种类型的value
进行遍历。
hscan
:属于Hash
型Value
操作命令集合,用于遍历当前 db 中指定Hash 表
的所有field-value
对。sscan
:属于Set
型Value
操作命令集合,用于 遍历当前 db 中指定set 集合
的所有元素zscan
:属于ZSet
型Value
操作命令集合,用于 遍历当前 db 中指定有序集合
的所有元素(数值与元素值)
3.3 String 型 Value 操作命令
Redis 存储数据的 Value
可以是 一个 String
类型数据。 String
类型的 Value
是 Redis 中最基本,最常见的类型。 String
类型的 Valu
e 中可以存放任意数据, 包括 数值型
,甚至是二进制的 图片
、音频
、视频
、序列化对象
等。一个 String
类型的 Value
最大是 512M 大小。
⭐️ 3.3.1、set
- 格式:
SET key value [EX seconds | PX milliseconds] [NX|
- 功能:
SET
除了可以直接将key
的值设为value
外,还可以指定一些参数。EX seconds
:为当前key
设置过期时间,单位秒
。等价于SETEX
命令。PX milliseconds
:为当前key
设置过期时间,单位毫秒
。等价于PSETEX
命令。NX
:指定的key
不存在才会设置成功,用于添加指定的key
。等价于SETNX
命令。XX
:指定的key
必须存在才会设置成功,用于更新指定key
的value
。
- 说明:如果 value 字符串中带有空格,则该字符串需要使用双引号或单引号引起来,否
则会认为 set 命令的参数数量不正确,报错。
⭐️ 3.3.2、setex 与 psetex
- 格式:
SETEX /PSETEX key seconds value
- 功能:
set expire
,其不仅为key
指定了value
,还为其设置了生存时间。setex
的单位为秒
,psetex
的单位为毫秒
。 - 说明:如果
key
已经存在, 则覆写旧值。该命令类似于以下两个命令,不同之处是,SETEX
是一个原子性操作,关联值 和 设置生存时间两个动作会在同一时间内完成,该命
令在 Redis 用作缓存时,非常实用。SET key value
EXPIRE key seconds
#设置生存时间
⭐️ 3.3.3、setnx
- 格式:
SETNX key value
- 功能:
SET if Not eXists
,将key
的值设为value
,当且仅当key
不存在。若给定的key
已经存在,则SETNX
不做任何动作。 成功,返回 1 ,否则 ,返回 0 。 - 说明:该命令等价于
set key value nx
⭐️ 3.3.4、getset
- 格式:
GETSET key value
- 功能:将给定
key
的值设为value
,并返回key
的旧值。 - 说明:当
key
存在但不是字符串类型时,返回一个错误; 当key
不存在时,返回nil
。
⭐️ 3.3.5、mset 与 msetnx
- 格式:
MSET /MSETNX key value [key value ...]
- 功能:同时设置一个或多个
key-value
对。 - 说明:如果某个给定
key
已经存在,那么MSET
会用 新值覆盖原来的旧值,如果这不是你所希望的效果,请考虑使用MSETNX
命令:它只会在所有给定key
都不存在的情况下进行设置操作。MSET/MSETNX
是一个原子性 (atomic) 操作,所有给定key
都会在同一时间内被设置,某些给定key
被更新而另一些给定key
没有改变的情况不可能发生。该命令永不失败。
⭐️ 3.3.6、mget
- 格式:
MGET key [key ...]
- 功能:返回所有 (一个或多个) 给定
key
的值。 - 说明:说明:如果给定的
key
里面,有某个key
不存在,那么这个key
返回特殊值nil
。因此,该命令永不失败。
⭐️ 3.3.7、append
- 格式:
APPEND key value
- 功能:如果
key
已经存在并且是一个字符串,APPEND
命令将value
追加到key
原来的值的末尾。如果key
不存在,APPEND
就简单地将给定key
设为value
,就像执行SET key value
一样。 - 说明:追加
value
之后,key
中字符串的长度。
⭐️ 3.3.8、incr 与 decr
- 格式:
INCR key
或DECR key
- 功能:
increment
,自动递增。 将key
中存储的数字值增一。decrement
,自动递减。将 key 中存储的数字值减一。 - 说明:如果
key
不存在,那么key
的值会先被初始化为0
,然后再执行增一/减一
操作。如果值不能表示为数字,那么返回一个错误提示。如果执行正确,则返回增一/减一 后的值。
⭐️ 3.3.9、incrby 与 decrby
- 格式:
INCRBY key increment
或DECRBY key decrement
- 功能:将
key
中存储的数字值增加/减少
指定的数值,这个数值只能是整数,可以是负数,但不能是小数。 - 说明:如果
key
不存在,那么key
的值会先被初始化为0
,然后再执行增/减
操作。如果值不能表示为数字,那么返回一个错误提示。如果执行正确,则返回增/减
后的值。
⭐️ 3.3.10、incrbyfloat
- 格式:
INCRBYFLOAT key increment
- 功能:为
key
中所储存的值加上 浮点数增量increment
。 - 说明:与之前的说明相同。没有
decrbyfloat
命令,但increment
为负数可以实现减操作效果。
⭐️ 3.3.11、strlen
- 格式:
STRLEN key
- 功能:返回
key
所储存的字符串值的长度。 - 说明:当
key
储存的不是字符串值时,返回一个错误,当key
不存在时,返回0
。
⭐️ 3.3.12、getrange
- 格式:
GETRANGE key start end
- 功能:返回
key
中字符串值的 子字符串,字符串的截取范围由start
和end
两个偏移量决定 包括start
和end
在内。 - 说明:
end
必须要比start
大。支持 负数偏移量 表示从字符串最后开始计数,-1
表示最后一个字符,-2
表示倒数第二个,以此类推。
⭐️ 3.3.13、setrange
- 格式:
SETRANGE key offset value
- 功能:用
value
参数替换给定key
所储存的字符串值str
,从偏移量offset
开始。 - 说明:当
offset
值大于str
长度时,中间使用零字节\x00
填充,即0000 0000
字节填充;对于 不存在的key
当作空串处理。
⭐️ 3.3.14、位运算命令
⭐️ 3.3.15、典型应用场景
3.4 Hash 型 Value 操作命令
⭐️ 3.4.1、hset
⭐️ 3.4.2、hget
⭐️ 3.4.3、hmset
⭐️ 3.4.4、hmget
⭐️ 3.4.5、hgetall
⭐️ 3.4.6、hsetnx
⭐️ 3.4.7、hdel
⭐️ 3.4.8、hexits
⭐️ 3.4.9、hincrby 与 hincrbyfloat
⭐️ 3.4.10、hkeys 与 hvals
⭐️ 3.4.11、hlen
⭐️ 3.4.12、hstrlen
⭐️ 3.4.13、应用场景
3.5 List 型 Value 操作命令
⭐️ 3.5.1、lpush/rpush
⭐️ 3.5.2、llen
⭐️ 3.5.3、lindex
⭐️ 3.5.4、lset
⭐️ 3.5.5、lrange
⭐️ 3.5.6、lpushx 与 rpushx
⭐️ 3.5.7、linsert
⭐️ 3.5.8、lpop / rpop
⭐️ 3.5.9、blpop / brpop
⭐️ 3.5.10、rpoplpush
⭐️ 3.5.11、brpoplpush
⭐️ 3.5.12、lrem
⭐️ 3.5.13、itrim
⭐️ 3.5.14、应用场景
3.6 Set 型 Value 操作命令
⭐️ 3.5.、
3.7 有序Set 型 Value 操作命令
⭐️ 3.5.、
3.8 benchmark 测试工具
3.9 简单动态字符串SDS
3.10 集合的底层实现原理
3.11 BitMap 操作命令
3.12 HyperLogLog 操作命令
3.13 Geospatial 操作命令
3.14 发布/订阅命令
3.15 Redis 事务
🚀🚀🚀 Redis 命令 快速食用:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
四、Redis 持久化
🚀🚀🚀 Redis 持久化 快速食用:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
五、Redis 主从集群
六、Redis 分布式系统
七、Redis 缓存
八、Lua脚本详解
九、分布式锁
相关文章:

Redis 命令—— 超详细操作演示!!!
内存数据库 Redis7 三、Redis 命令3.1 Redis 基本命令3.2 Key 操作命令3.3 String 型 Value 操作命令3.4 Hash 型 Value 操作命令3.5 List 型 Value 操作命令3.6 Set 型 Value 操作命令3.7 有序Set 型 Value 操作命令3.8 benchmark 测试工具3.9 简单动态字符串SDS3.10 集合的底…...
工业自动化控制通信协议Profinet系列-3、CoDeSys软PLC方案介绍
工业自动化控制通信协议Profinet系列-3、CoDeSys软PLC方案介绍 文章目录 工业自动化控制通信协议Profinet系列-3、CoDeSys软PLC方案介绍一、前言二、Profinet搭建资料收集三、CoDeSys系列四、接下来 一、前言 之前在树莓派desktop上已经成功编译运行测试程序,但是还…...
[补题记录] Atcoder Beginner Contest 293(E)
URL:https://atcoder.jp/contests/abc293 目录 E Problem/题意 Thought/思路 Code/代码 E Problem/题意 给出 A、X、M,求 。 Thought/思路 一开始想等比数列求和,但是 m 不保证是质数,所以不能用。 假设 dp[x] 表示&…...
R语言有关模型方面的函数(model.)介绍-model.matrix
R语言有关模型方面的函数(model.)介绍-model.matrix 引言model.matrix简单作用提取设计矩阵对有序因子与无序因子的处理(模型相关)手动编写contr.系列的函数写在最后引言 最近闲暇时间大量阅读了一些机器学习方面的R包源码,在此对阅读过程中的一些实用但是不常见的函数进行…...
owasp top 10
1、访问控制的崩溃: 通过身份验证的用户可以访问其他用户的信息,越权 达成方式:通过修改url、内部应用程序状态或html页面绕过 防范:除了公有资源外,默认情况下拒绝访问,严格判断权限,记录失败的…...
【FreeRTOS】【STM32】06 FreeRTOS的使用-动态创建多任务 FreeRTOS 的启动流程
主要流程参照【FreeRTOS】【STM32】06 FreeRTOS的使用-动态创建单任务 1.定义任务句柄 static TaskHandle_t AppTaskCreate_Handle NULL;2.硬件初始化 略 3.创建具体功能任务函数 见定义任务函数 4.使用xTaskCreate创建任务 xReturn xTaskCreate((TaskFunction_t )AppT…...
10月21日,每日信息差
今天是2023年10月21日,以下是为您准备的13条信息差 第一、东方物探公司与阿里云达成战略合作,逐步助力勘探行业实现智能化、自动化、绿色化和可持续化的目标 第二、九洲集团签约300MW集中式风电项目计划总投资21亿,项目达产后,预…...
C++学习笔记之三(函数指针、调用、动态内存、模板)
C 1、函数&指针1.1、指针函数1.2、函数指针1.2.1、函数指针作为函数的传入参数1.2.2、函数指针作为函数的返回值 2、传递2.1、值传递2.2、址传递2.3、引用传递 3、多态3.1、虚方法和抽象方法 4、动态内存5、模板5.1、函数模板5.2、类模板5.3、内联函数 1、函数&指针 1…...

【LeetCode】57. 插入区间
1 问题 给你一个 无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例 1: 输入:interval…...

实时消息传送:WebSocket实现系统后台消息实时通知
实时消息传送:WebSocket实现系统后台消息实时通知 WebSocket简介基本实现步骤后台服务器后端接口SimpMessagingTemplate MessageDto前端客户端 示例应用 在现代Web应用中,提供实时通知对于改善用户体验至关重要。WebSocket技术允许建立双向通信通道&…...

【MATLAB第79期】基于MATLAB的数据抽样合集(sobol、LHS拉丁超立方抽样、Halton、正交/均匀设计、随机rand函数)
【MATLAB第79期】基于MATLAB的数据抽样合集(sobol、LHS拉丁超立方抽样、Halton、正交/均匀设计、随机rand函数) 一、传统函数 1.指定区间随机生成数据(小数) [a b]区间随机数生成: Aa(b-a)rand(m,n) m:待生成矩阵A…...
matlab bin格式转txt输出
matlab bin格式转txt输出 clc,clear; fid fopen(\text.bin,rb); data fread(fid,Inf,int16); fclose(fid);fidfopen(\text.txt,w); fprintf(fid,%d\n,data); fclose(fid);...

Linux之I2C应用编程
I2C-Tools的交叉编译 tar xvf i2c-tools-4.2.tar.xz 首先解压下压缩包 cd i2c-tools-4.2 进入 i2c-tools-4.2目录 make USE_STATIC_LIB1 执行 make 将i2cset ,i2cget ,i2cdump,i2cdetect,i2ctransfer放到板子上 命令直接操作IIC设备 命令行直接操作iic向AP3216C传感器获取数据…...

java 实现定时任务
1、EnableScheduling spring自带的定时任务功能,使用比较简单方便: 1、需要定时执行的方法上加上Scheduled注解,这个注解中可以指定定时执行的规则,稍后详细介绍。 2、Spring容器中使用EnableScheduling开启定时任务的执行&…...

vue3实现在element Dialog 对话框中预览pdf文件
最近有一个需求就是点击按钮在弹框中去预览pdf文件,于是发现了一个HTML中比较重要的标签:embed,前面说的需求就可以用这个标签来实现,一起来学习一下吧。 embed标签是HTML中的一个非常重要的标签,它可以在你的网页上插…...
JVM第十七讲:调试排错 - Java 问题排查之Linux命令
调试排错 - Java 问题排查之Linux命令 本文是JVM第十七讲, Java 问题调试排错。Java 在线问题排查主要分两篇:本文是第一篇,通过linux常用命令排查。 文章目录 调试排错 - Java 问题排查之Linux命令在项目中,日志操作的常用命令1、…...

米哈游、复旦发布,具备感知、大脑、行动的大语言模型“智能体”
ChatGPT等大语言模型展示了前所未有的创造能力,但距AGI(通用人工智能)还有很大的距离,缺少自主决策、记忆存储、规划等拟人化能力。 为了探索大语言模型向AGI演变,进化成超越人类的超级人工智能,米哈游与复…...

企业知识库管理系统怎么做?
21世纪,一个全新的信息化时代,从最初的传统办公到现在的信息化办公,一个世纪的跨越造就了各种大数据的诞生。 知识库系统 在这个数据横行的时代,文档管理产品市场逐渐兴盛起来,企业知识库管理系统作为企业的智慧信息的…...

嵌入式养成计划-45----QT--事件机制--定时器事件--键盘事件和鼠标事件--绘制事件
一百一十五、事件机制 当这件事情发生时,会自动走对应的函数处理(重写的事件函数) 115.1 事件处理简介 什么是事件? (重点) 件是由窗口系统或者自身产生的,用以响应所发生的各类事情,比如用户按下并释放…...
git远程仓库、开发者使用流程、ssh连接
git远程仓库 https://www.cnblogs.com/liuqingzheng/p/15328319.html 远程仓库有: : github gitlab gitee 在gitee上创建了仓库 (确保仓库是空的)本地:git init本地:git commit -m 提交版本指定远程仓库地址 添加一…...

UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...