Redis基本命令详解

news2024/9/20 21:42:03

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) 0
 127.0.0.1:6379> setbit sign 1 0
(integer) 0
 127.0.0.1:6379> setbit sign 2 0
(integer) 0
 127.0.0.1:6379> setbit sign 3 1
(integer) 0
 127.0.0.1:6379> setbit sign 4 1
(integer) 0
 127.0.0.1:6379> setbit sign 5 0
(integer) 0
 127.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.coloradmin.cn/o/2150178.html

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

相关文章

[Spring]Spring MVC 请求和响应及用到的注解

文章目录 一. Maven二. SpringBoot三. Spring MVC四. MVC注解1. RequestMapping2. RequestParam3. PathVariable4. RequestPart5. CookieValue6. SessionAttribute7. RequestHeader8. RestController9. ResponseBody 五. 请求六. 响应 一. Maven Maven是⼀个项⽬管理⼯具。基于…

qwen2.5 vllm推理;openai function call调用中文离线agents使用

参考: https://qwenlm.github.io/zh/blog/qwen2.5/ https://qwen.readthedocs.io/zh-cn/latest/framework/function_call.html#vllm 安装: pip install -U vllm -i https://pypi.tuna.tsinghua.edu.cn/simplevllm-0.6.1.post2 运行:</

预测合理交易目标:中断形态趋势分析

日常交易时&#xff0c;我们除了通过判断一些重要指标来预测趋势走向之外&#xff0c;观察趋势的形态变化也是我们技术分析中很重要的分析方式。而识别并理解这些形态可以为交易者提供进出场的关键信号。今天我们就来说说其中一种形态——中断形态&#xff01; 中继形态在市场…

使用 Python 高分解决 reCAPTCHA v3 的指南

reCAPTCHA v3 是自动化系统面临的最具挑战性的障碍之一。随着越来越多的网站实施高级 CAPTCHA 系统来抵御机器人&#xff0c;在 reCAPTCHA v3 中获得高分对于成功的自动化至关重要。本指南将引导您了解有效的策略和 Python 技术&#xff0c;以高分解决 reCAPTCHA v3&#xff0c…

10000字长文,深度解读!人工智能AI 产品经理与传统产品经理工作到底有什么不同?

一、AI 产品经理的定义及职责范围 AI 产品经理是直接应用或间接涉及了 AI 技术&#xff0c;进而完成相关 AI 产品的设计、研发、推广、产品生命周期管理等工作的产品经理。具体来说&#xff0c;狭义 AI 产品经理直接应用了语义、语音、计算机视觉和机器学习这 4 个领域的 AI 技…

机器学习之非监督学习(四)K-means 聚类算法

机器学习之非监督学习&#xff08;一&#xff09;K-means 聚类算法 0. 文章传送1.非监督学习定义2.非监督学习分类2.1 聚类 Clustering2.2 异常检测 Anomaly Detection 3.K-means聚类算法 K-means clustering案例引入算法步骤算法优化成本函数初始化方法K的选择 代码实现 4.案例…

Unity教程(十六)敌人攻击状态的实现

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程&#xff08;零&#xff09;Unity和VS的使用相关内容 Unity教程&#xff08;一&#xff09;开始学习状态机 Unity教程&#xff08;二&#xff09;角色移动的实现 Unity教程&#xff08;三&#xff09;角色跳跃的实现 Unity教程&…

C++STL的Stack的使用:STL栈和队列的使用介绍、leecode---最小栈、nowcoder---栈的压入、弹出序列等的介绍

文章目录 前言一、STL栈和队列的使用二、leetcode---最小栈三、nowcoder---栈的压入、弹出序列总结 前言 CSTL的Stack的使用&#xff1a;STL栈和队列的使用介绍、leecode—最小栈、nowcoder—栈的压入、弹出序列等的介绍 一、STL栈和队列的使用 #include <iostream> #in…

PCL KD树的使用

目录 一、概述 1.1原理 1.1.1 数据拆分过程 1.1.2 树的构建示例 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1KD树构建与查询&#xff1a; 2.1.2 k近邻搜索 2.1.3半径搜索 2.2完整代码 三、实现效果 3.1处理后点云 3.2数据显示 PCL点云算法汇总及实战…

Jboss Administration Console弱⼝令

漏洞描述 Administration Console管理⻚⾯存在弱⼝令&#xff0c;admin:admin&#xff0c;登陆后台上传war包 , getshell 影响版本 全版本 环境搭建 因为这⾥⽤的环境是CVE-2017-12149的靶机 cd vulhub-master/jboss/CVE-2017-12149 docker-compose up -d 密码⽂件 /j…

【SA8155P】AIS Camera相关内容的简单介绍

高通车载相机模块(AIS,Automotive lmage System)是专门针对车载系统特性而设计的一套车载视觉架构,可用于AVM、RVC、DMS等常见车载视频应用开发。车载Camera系统的图像大部分是给自动驾驶等使用,更多考虑的是远距离传输、多摄像头图像处理等场景。 本文仅对AIS Camera相关…

MySQL的登陆错误:ERROR 1049 (42000): Unknown database ‘root‘

MySQL的登陆错误&#xff1a;ERROR 1049 (42000): Unknown database ‘root’ 安装MySQL的时候&#xff0c;到网上查的命令行登陆MySQL的方法都是mysql -u root -p password mysql -r root -p 123456但是奇怪的是这条命令我输进去死活都不对&#xff0c;它都会要求再输入一遍…

21、Tomato

难度 低(个人认为中) 目标 root权限 一个flag 使用VMware启动 kali 192.168.152.56 靶机 192.168.152.66 信息收集 端口信息收集 可以看到有个ftp服务&#xff0c;2211实际是ssh协议端口&#xff0c;80、8888是一个web服务 web测试 80端口显示一个tomato 查看源码给了一些…

从0开始学ARM

1. ARM模式和寄存器 1.1 ARM处理器工作模式 Cortex系列之前的ARM处理器工作模式一共有7种。 1.1.1 工作模式 Cortex系列的ARM处理器工作模式有8种&#xff0c;多了1个monitor模式&#xff0c;如下图所示&#xff1a; ARM之所以设计出这么多种模式出来&#xff0c;就是为了…

三菱变频器RS-485 端子的接线和构成

RS-485 端子排列 RS-485 端子接线方法 RS-485 的计算机1台、变频器1台时 RS-485 的计算机1台、变频器n台(多台)时 通讯运行的初始设定 1、为使变频器和计算机进行 RS-485 通讯&#xff0c;进行必要的设定。 2、通讯分为使用变频器的PU接口的通讯和使用RS-485端子的通讯。 3、…

搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(四)-搜索

搜索 搜索内容比较多&#xff0c;onesearch分成两部分&#xff0c;第一部分&#xff0c;Query构建&#xff0c;其中包括搜索词设置&#xff0c;设置返回字段&#xff0c;filter&#xff0c;高亮&#xff1b;第二部分分页和排序。第一部分是映射引擎负责&#xff0c;映射通用表…

SAP B1 流程实操 - 营销单据销售部分(下)

背景 在 SAP B1 中&#xff0c;最重要的模块就是【销售】&#xff0c;企业可能不涉及生产和库存&#xff08;贸易公司&#xff09;&#xff0c;甚至不涉及采购&#xff08;服务业&#xff09;&#xff0c;但是一定会有基本的 销售。本文中我们讲解 销售 模块的基本核心&#x…

2024年最新苹果cms升级插件【泛目录专用】

苹果CMS是一款专为视频内容管理而设计的系统&#xff0c;近年来在视频站点搭建中逐渐成为热门选择。其直观的用户界面和灵活的管理功能&#xff0c;使得无论是新手还是专业开发者都能轻松上手。 苹果CMS提供了多种主题和模板&#xff0c;用户可以根据自身需求进行定制&#xf…

Python画笔案例-054 绘制流光溢彩动画

1、绘制流光溢彩动画 通过 python 的turtle 库绘制 流光溢彩动画&#xff0c;如下图&#xff1a; 2、实现代码 绘制流光溢彩动画&#xff0c;以下为实现代码&#xff1a; """本程序实现流光溢彩的动画效果 """ from turtle import * from color…

from tqdm.auto import tqdm用法详细介绍

tqdm 是一个 Python 库&#xff0c;用于在长时间运行的任务中显示进度条。tqdm.auto 是 tqdm 的一个版本&#xff0c;能够自动适配输出环境&#xff08;如 Jupyter Notebook、命令行等&#xff09;&#xff0c;以确保进度条在各种环境下显示正确。下面是 tqdm.auto 的详细用法介…