Redis基本命令详解

1. 基本命令

命令不区分大小写,而key是区分大小写的

# select  数据库间的切换  数据库共计16个
127.0.0.1:6379> select 1# dbsize 返回当前数据库的 key 的数量
127.0.0.1:6379[1]> dbsize# keys * 查看数据库所有的key
127.0.0.1:6379[1]> keys *# flushdb 清除当前数据库
127.0.0.1:6379[1]> flushdb# flushall 清除全部数据库的内容
127.0.0.1:6379[1]> flushall# exists key 判断某个 key 是否存在
127.0.0.1:6379[1]> exists name# type key 查看你的 key 是什么类型
127.0.0.1:6379[1]> type name# del key 删除指定的 key 数据   阻塞删除  数据比较大的时候会产生等待  不要删除大的key,等待时间长,阻止了其他资源的操作
127.0.0.1:6379[1]> del name# unlink key 根据 value 选择非阻塞删除  异步删除一个或多个键  
# UNLINK 命令的主要特点是它是非阻塞的,unlink命令仅仅是删除键值对,并不会立即将数据从磁盘上删除 它会在后台异步地删除键值对,而不会阻塞服务器的正常操作
# UNLINK 命令非常适合于删除大量键值对或者删除耗时较长的键值对
# UNLINK 命令不接受模式匹配参数,只能指定具体的键名
127.0.0.1:6379[1]> unlink name# expire key 过期时间  为给定的 key 设置过期时间
127.0.0.1:6379[1]> expire name 10# ttl key 查看还有多少秒过期,-1 表示永不过期,-2 表示已过期
127.0.0.1:6379[1]> ttl name# move name 数据库编号 移除当前的key到其他数据库
127.0.0.1:6379[1]> move name 1# clear 清屏
127.0.0.1:6379[1]> clear# auth 密码  客户端登陆进行密码认证
127.0.0.1:6379[1]> auth 123456# quit 服务器关闭连接
127.0.0.1:6379[1]> quit# shutdown 正常关闭,数据保存  redis服务关闭
127.0.0.1:6379[1]> shutdown# config set key value 修改配置文件 例如设置密码  
127.0.0.1:6379[1]> config set requirepass 123456# config get key 获取配置文件key的值 
127.0.0.1:6379[1]> config get requirepass#help @类型
help @string
help @list
help @hash
help @hyperloglog

 

2.String字符串类型

String 是 Redis 最基本的类型,一个 key对应一个 value

String 类型是二进制安全的。意味着 Redis 的 string 可以包含任何数据。比如 jpg 图片或者序列化的对象

String 类型是 Redis 最基本的数据类型,一个 Redis 中字符串 value 最多可以是 512M

数据结构

String 的数据结构为简单动态字符串(Simple Dynamic String,缩写 SDS)。是可以修改的字符串,内部结构实现上类似于 Java 的 ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配

如图中所示,内部为当前字符串实际分配的空间 capacity 一般要高于实际字符串长度len。当字符串长度小于 1M 时,扩容都是加倍现有的空间,如果超过 1M,扩容时一次只会多扩 1M 的空间。需要注意的是字符串最大长度为 512M。

# set <key> <value>  添加键值对
# EX second  设置键的过期时间为 second 秒   SET key value EX second 效果等同于 SETEX key second value 
# PX millisecond :设置键的过期时间为 millisecond 毫秒。 SET key value PX millisecond 效果等同于 PSETEX key millisecond value 
# NX :只在键不存在时,才对键进行设置操作。 SET key value NX 效果等同于 SETNX key value
# XX :只在键已经存在时,才对键进行设置操作
# get: 返回旧的值 同时设置新的值
# exat: 以秒为单位的unix时间戳作为过期时间
# pxat: 以豪秒为单位的unix时间戳作为过期时间
# keepttl :保留设置前指定健的生存时间  修改值的同时保留生存时间,不覆盖
127.0.0.1:6379> set name ljy ex 10
127.0.0.1:6379> set name ljy px 100
127.0.0.1:6379> set name ljy nx
127.0.0.1:6379> set name ljy xx# get <key>  查询对应键值
127.0.0.1:6379> get name# append <key> <value> 将给定的<value> 追加到原值的末尾
127.0.0.1:6379> append name 18# strlen <key> 获得值的长度
127.0.0.1:6379> strlen name# setnx <key> <value> 只有在 key 不存在时 设置 key 的值
127.0.0.1:6379> setnx name lhx# incr <key> 只能对数字值操作  将 key 中储存的数字值增 1  如果为空,新增值为 1
127.0.0.1:6379> incr age 1# decr <key> 只能对数字值操作  将 key 中储存的数字值减 1  如果为空,新增值为-1
127.0.0.1:6379> dccr age 1# incrby <key> <步长>  将 key 中储存的数字值增。自定义步长
127.0.0.1:6379> incrby age 10# decrby <key> <步长>  将 key 中储存的数字值减。自定义步长
127.0.0.1:6379> decrby age 10# mset <key1> <value1> <key2> <value2> ...  同时设置一个或多个 key-value 对
127.0.0.1:6379> mset uname ljy age 20# mget <key1> <key2> <key3> ..... 同时获取一个或多个 value
127.0.0.1:6379> mget uname age# msetnx <key1> <value1> <key2> <value2> ... 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在
# 原子性,有一个失败则都失败
127.0.0.1:6379> msetnx title boy age 20 num 100# getrange <key> <起始位置> <结束位置> 获得值的范围 
127.0.0.1:6379> getrange name 0 2# setrange <key> <起始位置> <value> 用 <value> 覆写<key>所储存的字符串值,从<起始位置>开始(索引从 0 开始)
#  替换指定位置开始的字符串!参数有几个替换几个
127.0.0.1:6379> setrange name 2 boy # setex <key> <过期时间> <value> 设置键值的同时,设置过期时间,单位秒
# psetex key milliseconds value  设置key 并设置过期时间 单位豪秒
127.0.0.1:6379> setex key1 10 ljy
127.0.0.1:6379> psetex key1 1000 ljy# getset <key> <value> 先get到值然后再set他的值 以新换旧,设置了新值同时获得旧值 设置新值并返回之前的旧值 
127.0.0.1:6379> getset key1 name

3. List列表

主要特点:单键多值

一个双端链表的结构,容量是2的32次方减1个元素大概40多亿,主要功能有push/pop等,一般用在栈、队列、消息队列等场景。left、right都可以插入添加;

如果键不存在,创建新的链表;

如果键已存在,新增内容;

如果值全移除,对应的键也就消失了

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)

列表底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差

# lpush <key><value1><value2><value3> .... 从左边插入一个或多个值
127.0.0.1:6379> lpush name lili leilei hanhan# rpush <key><value1><value2><value3> .... 从右边插入一个或多个值
127.0.0.1:6379> rpush name ljy lhx# lpop <key>  从左边吐出一个值   值在键在,值光键亡
127.0.0.1:6379> lpop name# rpop <key>  从右边吐出一个值   值在键在,值光键亡
127.0.0.1:6379> rpop name# lrange <key> <start> <stop> 按照索引下标获得元素(从左到右)  0 左边第一个,-1 右边第一个,(0-1 表示获取所有)
127.0.0.1:6379> lrange name 0 -1 # rpoplpush <key1> <key2> 从<key1>列表右边吐出一个值,插到<key2>列表左边
127.0.0.1:6379> rpoplpush name name2# lindex <key> <index> 按照索引下标获得元素(从左到右)
127.0.0.1:6379> lindex name 2# llen <key>  获得列表长度
127.0.0.1:6379> llen name# lrem <key> <n> <value> 从左边删除 n 个 等于value(从左到右)
127.0.0.1:6379> lrem name 1 lili# ltrim <key> <start> <stop> 对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
# 下标 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推
127.0.0.1:6379> ltrim name 1 -1# linsert <key> before <value> <newvalue>  在<value>的前面插入<newvalue>插入值
# linsert <key> after <value> <newvalue>   在<value>的后面插入<newvalue>插入值
127.0.0.1:6379> linsert name before lili other
127.0.0.1:6379> linsert name after lili new# lset <key> <index> <value> 将列表 key 下标为 index 的值替换成 value
127.0.0.1:6379> lset name 1 ppp

4.Set集合

Redis set 对外提供的功能与 list 类似 是一个列表的功能,特殊之处在于 set 是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set 是一个很好的选择,并且 set 提供了判断某个成员是否在一个 set 集合内的重要接口,这个也是 list 所不能提供的。

单值多value且无重复

# sadd <key> <value1> <value2> 将一个或多个 member 元素加入到集合 key 中,已经存在的 member 元素将被忽略
127.0.0.1:6379> sadd name ljy lhx lzf# smembers <key> 取出该集合的所有值
127.0.0.1:6379> smembers name# sismember <key> <value> 判断集合<key>是否为含有该<value>值,有 1,没有 0
127.0.0.1:6379> sismember name  ljy# scard <key> 返回该集合的元素个数
127.0.0.1:6379> scard name# srem <key> <value1> <value2> .... 删除集合中的某个元素
127.0.0.1:6379> srem name ljy  # spop <key> [数字] 随机从该集合中吐出N个值 该值从集合中删除
127.0.0.1:6379> spop name 2# srandmember <key> <n> 随机从该集合中取出 n 个值。不会从集合中删除
127.0.0.1:6379> srandmember name 1# smove <source> <destination> value 把集合中一个值从一个集合移动到另一个集合
127.0.0.1:6379> smove name name2 ljy# sinter <key1> <key2> 返回两个集合的交集元素   两个集合中都共有的元素
127.0.0.1:6379> sinter name name2 ljy# sunion <key1> <key2> 返回两个集合的并集元素
127.0.0.1:6379> sunion name name2# sdiff <key1> <key2> 返回两个集合的差集元素(key1中有,key2中没有)  以第一个key为主  属于key1但是不属于key2的元素构成的集合
127.0.0.1:6379> sdiff name name2# sintercard numkeys key ...[limit]   返回结果的基数  由所有给定集合的交集产生的集合的基数
127.0.0.1:6379> sintercard 2 k1 k2

5. Hash

Redis hash 是一个键值对集合,值也是field 和 value

Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象

# hset <key> <field> <value> 给<key>集合中的 <field> 键赋值 <value>
127.0.0.1:6379> hset info name ljy# hget <key1> <field> 从<key1>集合<field>取出 value
127.0.0.1:6379> hget info name# hmset <key1> <field1> <value1> <field2> <value2>...  批量设置 hash 的值
127.0.0.1:6379> hmset info age 10 level 10# hmget <key1> <field1> <field1> <field1> ...  批量获取 hash 的值
127.0.0.1:6379> hmget info name age level# hgetall <key1> 获取全部的数据,
127.0.0.1:6379> hgetall info# hdel <key1> field1  删除hash指定key字段!对应的value值也就消失了!
127.0.0.1:6379> hdel info level# hlen <key1>  返回哈希表 key 中字段的数量
127.0.0.1:6379> hlen info# hexists <key1> <field> 查看哈希表 key 中,给定域 field 是否存在。
127.0.0.1:6379> hexists info name# hkeys <key> 列出该 hash 集合的所有 field
127.0.0.1:6379> hkeys info# hvals <key>列出该 hash 集合的所有 value
127.0.0.1:6379> hvals info# hincrby <key> <field> <increment> 为哈希表 key 中的域 field 的值加上增量 1 -1
# hincrbyfloat <key> <field> <increment> 为哈希表 key 中的域 field 的值加上增量小数
127.0.0.1:6379> hincrby info age 1# hsetnx <key> <field> <value> 将哈希表 key 中的域 field 的值设置为 value ,当且仅当域field 不存在  存在报错
127.0.0.1:6379> hsetnx info name 555

6. 有序集合 Zset

Redis 有序集合 zset 与普通集合 set 非常相似,是一个没有重复元素的字符串集合

不同之处是有序集合的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了

因为元素是有序的, 所以你也可以很快的根据评分(score)或者次序(position)来获取一个范围的元素。

访问有序集合的中间元素也是非常快的,因此你能够使用有序集合作为一个没有重复成员的智能列表

# zadd <key> <score1> <value1> <score2> <value2>… 将一个或多个 member 元素及其 score 值加入到有序集 key 当中。
127.0.0.1:6379> zadd info 200 name 300 age# zrange <key> <start> <stop> [WITHSCORES] 返回有序集 key 中,下标在 <start> <stop> 之间的元素 带 WITHSCORES,可以让分数一起和值返回到结果集
127.0.0.1:6379> zrange info 0 -1 # zrevrange salary 0 -1   # 从大到进行排序!
127.0.0.1:6379> zrevrange info 0 -1 # zrangebyscore key min max [withscores] [limit offset count] 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列
127.0.0.1:6379> zrangebyscore info 100 200 
127.0.0.1:6379> zrangebyscore info (100 200  #大于100 不包含100
# 显示全部 从小到大
127.0.0.1:6379> zrangebyscore info -inf +inf  # zrevrangebyscore key max min [withscores] [limit offset count]  同上,改为从大到小排列
127.0.0.1:6379> zrevrangebyscore info 900 100# zcard <key> # 获取有序集合中的个数
127.0.0.1:6379> zcard info# zincrby <key> <increment> <value> 为元素的 score 加上增量
127.0.0.1:6379> zincrby info 200 age# zrem <key> <value> 删除该集合下,指定值的元素
127.0.0.1:6379> zrem info age# zcount <key> <min> <max> 统计该集合,分数区间内的元素个数   大于等于100且小于200
127.0.0.1:6379> zcount info 100 200# zrank <key> <value> 返回该值在集合中的排名,从 0 开始 顺序   
# zrevrank <key> <value> 返回该值在集合中的排名 倒序
127.0.0.1:6379> zrank info name
127.0.0.1:6379> zrevrank info name# zscore <key> <value> 返回对应元素的score
127.0.0.1:6379> zscore info name# ZMPOP numkeys key [key ...] <MIN | MAX> [COUNT count]从键名列表中的第一个非空排序集中弹出一个或多个元素,它们是成员分数对
#当使用MIN修饰符时,弹出的元素是第一个非空排序集中得分最低的元素。MAX修改器会弹出得分最高的元素,numkeys 表示 key 的数量。
127.0.0.1:6379> zmpop 1 set1 min

7.Bitmap

位存储 由0和1状态表现的二进制位的bit数组

位图的本质是数组 底层数据结构是String

Bitmap支持的最大位数是2^32位,它可以极大的节约存储空间,使用512M内存就可以存储多达42.9亿的字节信息(2^32=4294967296)

使用场景:用户签到、打卡等

# setbit <key> <offset> <value> 设置 Bitmaps 中某个偏移量的值(0 或 1) offset:偏移量从 0 开始127.0.0.1:6379> setbit sign 0 1
(integer) 0127.0.0.1:6379> setbit sign 1 0
(integer) 0127.0.0.1:6379> setbit sign 2 0
(integer) 0127.0.0.1:6379> setbit sign 3 1
(integer) 0127.0.0.1:6379> setbit sign 4 1
(integer) 0127.0.0.1:6379> setbit sign 5 0
(integer) 0127.0.0.1:6379> setbit sign 6 0
(integer) 0# getbit <key> <offset> 获取 Bitmaps 中某个偏移量的值  从 0 开始算
127.0.0.1:6379> getbit sign 3
(integer) 1
127.0.0.1:6379> getbit sign 6
(integer) 0 # strlen 不是字符串长度而是占据几个字节 超过8位后自己按照8位一组一byte再扩容  统计字节数占用多少
127.0.0.1:6379> strlen sign# bitcount <key> [start end]  ] 统计字符串从 start 字节到 end 字节比特值为 1 的数量
127.0.0.1:6379> bitcount sign 6# bitop and(or/not/xor) <destkey> [key…]
# bitop 是一个复合操作, 它可以做多个 Bitmaps 的 and(交集) 、 or(并集) 、 not(非) 、 xor(异或) 操作并将结果保存在 destkey 中

8.HyperLogLog

Redis在2.8.9版本添加了HyperLogLog 结构。

HyperLogLog 是 Redis 提供的一种用于基数统计的数据结构,它可以用来估算集合中不重复元素的数量。HyperLogLog 的优点是内存消耗固定且很小(标准情况下为 12KB),与集合中元素的数量无关,适合处理大规模数据集。HyperLogLog 提供的结果是一个近似值,标准误差为 0.81%。

使用场景包括但不限于:

  • 统计独立访客数(UV)。
  • 统计应用的日活跃用户数(DAU)或月活跃用户数(MAU)。
  • 统计用户搜索不同词条的数量。
  • 统计注册 IP 数量。

HyperLogLog 只能提供不精确的去重计数方案,且不能返回集合中的元素本身。因此,它适用于对精度要求不是非常高的场景,而在需要精确计数时,可能需要考虑其他数据结构或方法

# pfadd <key> <element> [element ...] 添加指定元素到 HyperLogLog 中
127.0.0.1:6379> pfadd name redis# pfcount<key> [key ...] 计算 HLL 的近似基数,可以计算多个 HLL,比如用 HLL 存储每天的 UV,计算一周的 UV 可以使用 7 天的 UV 合并计算即可
127.0.0.1:6379> pfcount name# pfmerge  <destkey>  <sourcekey> [sourcekey ...] 将一个或多个 HLL 合并后的结果存储在另一个 HLL 中,比如每月活跃用户可以使用每天的活跃用户来合并计算可得
127.0.0.1:6379> pfmerge name name2

9.Geospatial

Redis 的 Geospatial 功能是 Redis 3.2 版本引入的一种用于处理地理空间数据的数据类型。它允许用户存储地理位置信息,并执行一些地理相关的操作,如计算两个地点之间的距离、查找给定半径内的所有地点等。

Redis Geospatial 使用的是有序集合(sorted sets)来存储地理位置信息,并通过 Geohash 编码来实现地理位置的索引和查询

# geoadd <key> <longitude> <latitude> <member> [longitude latitude member...] 添加地理位置(经度,纬度,名称)
# 规则:两级无法直接添加,我们一般会下载城市数据,直接通过java程序一次性导入!
# 有效的经度从-180度到180度。
# 有效的纬度从-85.05112878度到85.05112878度。
# 当坐标位置超出上述指定范围时,该命令将会返回一个错误。
# redis-cli --raw  解决乱码
127.0.0.1:6379> geoadd china:city 121.47 31.23 shanghai
127.0.0.1:6379> geoadd china:city 114.05 22.52 shenzhen 116.38 39.90 beijing# geopos <key> <member> [member...] 获得指定地区的坐标值
127.0.0.1:6379> geopos china:city beijing# geodist <key> <member1> <member2> [m|km|ft|mi ] 获取两个位置之间的直线距离
# 单位:
# m 表示单位为米[默认值]。
# km 表示单位为千米。
# mi 表示单位为英里。
# ft 表示单位为英尺。
# 如果用户没有显式地指定单位参数, 那么GEODIST 默认使用米作为单位
127.0.0.1:6379> geodist china:city beijing shanghai km# georadius <key> <longitude> <latitude> radius m|km|ft|mi 以给定的经纬度为中心,找出某一半径内的元素
# WITHDIST: 在返回位置元素的同时, 将位置元素与中心之间的距离也一并返回
# WITHCOORD: 将位置元素的经度和维度也一并返回。
# WITHHASH: 以 52 位有符号整数的形式, 返回位置元素经过原始 geohash 编码的有序集合分值。 这个选项主要用于底层应用或者调试, 实际中的作用并不大
# COUNT 限定返回的记录数
# ASC: 查找结果根据距离从近到远排序
# DESC: 查找结果根据从远到近排序
127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km# georadiusbymember 根据储存在位置集合里面的某个地点获取指定范围内的地理位置集合
# georadiusbymember与georadius用法类似,只不过把参数经纬度改成了存在key里的member成员而已
127.0.0.1:6379> georadiusbymember china:city chengdu 300 km# geohash 返回一个或多个位置对象的 geohash 值,该命令将返回11个字符的Geohash字符串!
# 将二维的经纬度转换为一维的字符串,如果两个字符串越接近,那么则距离越近!
127.0.0.1:6379> geohash china:city beijing chongqi
1) "wx4fbxxfke0"
2) "wm5xzrybty0" 

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot+Vue+MySQL驾校预约管理系统

目录 前言 功能设计 系统实现 获取源码 博主主页&#xff1a;百成Java 往期系列&#xff1a;Spring Boot、SSM、JavaWeb、python、小程序 前言 随着社会的进步&#xff0c;各行各业都在充分利用信息化时代的优势。由于计算机技术的广泛应用和普及&#xff0c;各种信息系统…

极越联手百度这你受得了吗!SU7还能稳坐“7字辈”头把交椅?

文/王俣祺 导语&#xff1a;自从今年上半年小米SU7标榜为“年轻人的第一台纯电轿车”&#xff0c;各家车企全都坐不住了。尤其是与小米“颇有渊源”的吉利&#xff0c;从极氪再到领克&#xff0c;目标已经可以说是路人皆知了。现在极越07也来了&#xff0c;可以看出吉利也是下了…

在Windows环境下设置SSH克隆GitHub仓库

在Windows环境下设置SSH克隆GitHub仓库的步骤如下&#xff1a; 1. 生成SSH密钥 打开 Git Bash&#xff08;如果你已经安装了Git&#xff09;。输入以下命令生成SSH密钥&#xff1a;ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 按 Enter 键接受默认文件名…

OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【内核通信机制】下

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ 子系统开发内核 轻量系统内核&#xff08;LiteOS-M&#xff09; 轻量系统内核&#…

d3dcompiler47dll丢失怎么解决,详细介绍6种解决方案

在电脑使用过程中&#xff0c;我们可能会遇到各种问题&#xff0c;其中之一就是系统提示某个文件缺失。其中&#xff0c;d3dcompiler_47.dll是许多用户经常遇到的问题之一。这个文件是DirectX组件的一部分&#xff0c;如果缺失&#xff0c;可能会导致游戏或应用程序无法正常运行…

Python学习——【3.1】函数

文章目录 【3.1】函数一、函数的定义二、函数的参数三、函数的返回值&#xff08;一&#xff09;函数返回值的定义&#xff08;二&#xff09;None类型 四、函数的说明文档五、函数的嵌套调用六、函数中变量的作用域&#xff08;一&#xff09;局部变量&#xff08;二&#xff…

软考「系统架构设计师」为什么很少报名?反倒是“系规”爆火?!

软考2024年下半年开考的科目有不少&#xff0c;其中有热门科目&#xff0c;也有冷门科目&#xff0c;比如系统架构设计师&#xff0c;感觉报名的人数不多。 此外&#xff0c;系统规划与管理师算是在今年下半年爆火了……那么&#xff0c;系统架构设计师为什么很少报名&#xff…

前端自动化测试框架:如何选择最适合你的方案

前端自动化测试是指使用代码或工具来模拟用户在浏览器上的操作&#xff0c;以检验网页或应用程序的功能和性能是否符合预期。前端自动化测试可以提高开发效率&#xff0c;减少人工错误&#xff0c;保证软件质量和用户体验。 但是&#xff0c;在众多的前端自动化测试框架中&…

09.20 C++对C的扩充以及C++中的封装、SeqList

SeqList.h #ifndef SEQLIST_H #define SEQLIST_H#include <iostream> #include<memory.h> #include<stdlib.h> #include<string.h>using namespace std;//typedef int datatype; //类型重命名 using datatype int;//封装一个顺序表 class Seq…

【实用教程】基于GIS和DEM的地形地貌特征提取与分析—以河北省为例(附详细步骤)

实验背景 河北省作为中国地形地貌最齐全的省份&#xff0c;其独特的地理位置和地质结构为基于GIS和DEM的地形地貌特征提取与分析提供了丰富的研究对象和实际应用场景。从西北向东南呈半环状逐级下降&#xff0c;包括高原、山地、丘陵、盆地、平原等类型&#xff0c;这种多样性…

【HTML5】html5开篇基础(1)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

python机器人编程——用手机web远程视频监控并控制小车驾驶(上篇vrep仿真)

目录 一、前言二、技术架构三、设备端实现四、服务控制端实现&#xff08;1&#xff09;摄像头服务模块&#xff08;2&#xff09;web服务器 五、web端实现&#xff08;1&#xff09;视频显示&#xff08;2&#xff09;驾驶盘的实现&#xff08;3&#xff09;心跳 六、总结七、…

情感类智能体——你的微信女神

智能体名称&#xff1a;你的微信女神 链接&#xff1a;文心智能体平台AgentBuilder | 想象即现实 (baidu.com)https://agents.baidu.com/agent/preview/RulbsUjIGj4wsinydlBH7AR3NQKFungt 简介 “你的微信女神”是一个直率的智能体&#xff0c;她用犀利而真实的言辞帮助用户…

Jboss CVE-2015-7501 靶场攻略

漏洞介绍 这是经典的JBoss反序列化漏洞&#xff0c;JBoss在/invoker/JMXInvokerServlet请求中读取了⽤户传⼊的对象&#xff0c;然后我们利⽤Apache Commons Collections中的 Gadget 执⾏任意代码 影响范围 JBoss Enterprise Application Platform 6.4.4,5.2.0,4.3.0_CP10 …

交易量大幅下滑,被华尔街投行下调目标价,是时候卖出Coinbase股票了吗?

猛兽财经核心观点&#xff1a; &#xff08;1&#xff09;由于交易量出现了大幅下滑&#xff0c;华尔街投行杰富瑞已经将Coinbase的目标下调到了220美元&#xff0c; &#xff08;2&#xff09;尽管2024年第二季度订阅和服务业务增长强劲&#xff0c;但Coinbase的财务业绩还是未…

Jenkins自动化部署后端项目看这篇就够了

本文主要讲解&#xff0c;使用Jenkins自动化部署后端工程。讲解怎么自动化部署前后的分离项目中的后端工程。 前提条件&#xff1a;本地需要Jenkins&#xff0c;如果你不知道怎么安装&#xff0c;可以看我的另外一篇文章。 Jenkins实现自动部署的步骤&#xff1a; 先拉取git…

9.20作业

手动封装一个顺序表&#xff08;SeqList&#xff09;,分文件编译实现 有私有成员&#xff1a; 顺序表数组的起始地址 ptr、 顺序表的总长度&#xff1a;size、顺序表的实际长度&#xff1a;len 成员函数&#xff1a; 初始化 init(int n) 判空&#xff1a;empty 判满&#xff1…

计算机毕业设计 美发管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

Chat2VIS: Generating Data Visualizations via Natural Language

Chat2VIS:通过使用ChatGPT, Codex和GPT-3大型语言模型的自然语言生成数据可视化 梅西大学数学与计算科学学院&#xff0c;新西兰奥克兰 IEEE Access 1 Abstract 数据可视化领域一直致力于设计直接从自然语言文本生成可视化的解决方案。自然语言接口 (NLI) 的研究为这些技术的…

从虚拟到现实:数字孪生与数字样机的进化之路

数字化技术高速发展的当下&#xff0c;计算机辅助技术已成为产品设计研发中不可或缺的一环&#xff0c;数字样机&#xff08;Digital Prototype, DP&#xff09;与数字孪生技术便是产品研发数字化的典型方法。本文将主要介绍数字样机与数字孪生在国内外的发展&#xff0c;并针对…