postgresql自带指令命令系列二

简介

         在安装postgresql数据库的时候会需要设置一个关于postgresql数据库的PATH变量
export PATH=/home/postgres/pg/bin:$PATH,该变量会指向postgresql安装路径下的bin目录。这个安装目录和我们在进行编译的时候./configure --prefix= [指定安装目录]    中的prefix参数设置相关。--bindir=DIR  参数可以指定bin目录的具体存放路径。postgresql对应的PATH变量没有设置正确,会导致执行文件对应的命令无法使用

        本文使用postgresql-15.2版本进行讲解

bin目录


        进入到对应的bin目录中去,可以看到有以下的执行文件,本博主将进行一一讲解

clusterdb
createdb
createuser
dropdb
dropuser
ecpg
initdb
oid2name
pg_amcheck
pg_archivecleanup
pg_basebackup
pgbench
pg_checksums
pg_config
pg_controldata
pg_ctl
pg_dump
pg_dumpall
pg_isready
pg_receivewal
pg_recvlogical
pg_resetwal
pg_restore
pg_rewind
pg_test_fsync
pg_test_timing
pg_upgrade
pg_verifybackup
pg_waldump
postgres
postmaster -> postgres
psql
reindexdb
vacuumdb
vacuumlo

接上一篇 

14.pg_config

         pg_config工具打印当前安装的PostgreSQL配置参数。可以通过它找到相对应的存放目录。常常使用陌生的操作系统,安装PG找不到对应的默认路径的时候,可以使用该指令进行查找

[postgres@vm03 ~]$ pg_config --bindir --docdir --htmldir --includedir --pkgincludedir --includedir-server --libdir --pkglibdir  --localedir --mandir   --sharedir   --sysconfdir   --pgxs   --configure --cc --cppflags --cflags --cflags_sl --ldflags --ldflags_ex --ldflags_sl --libs --version           
/home/postgres/pg/bin
/home/postgres/pg/share/doc
/home/postgres/pg/share/doc
/home/postgres/pg/include
/home/postgres/pg/include
/home/postgres/pg/include/server
/home/postgres/pg/lib
/home/postgres/pg/lib
/home/postgres/pg/share/locale
/home/postgres/pg/share/man
/home/postgres/pg/share
/home/postgres/pg/etc
/home/postgres/pg/lib/pgxs/src/makefiles/pgxs.mk'--prefix=/home/postgres/pg' '--with-openssl' '--with-python'
gcc -std=gnu99
-D_GNU_SOURCE
-Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2
-fPIC
-Wl,--as-needed -Wl,-rpath,'/home/postgres/pg/lib',--enable-new-dtags-lpgcommon -lpgport -lssl -lcrypto -lz -lreadline -lpthread -lrt -ldl -lm 

         这里使用官网对各个参数的介绍

--bindir
打印用户可执行文件的路径。 比如,可以用这个找psql程序。 通常这也是pg_config程序存在的路径。
--docdir
打印文档文件的位置。
--htmldir
输出HTML文档文件的位置。
--includedir
打印客户端接口C头文件的路径。
--pkgincludedir
打印其它C头文件的位置。
--includedir-server
打印那些做服务器编程时使用的C头文件的位置。
--libdir
打印目标代码库的路径。
--pkglibdir
打印动态加载的模块的位置,或者服务器在哪里寻找他们。 其它体系相关的数据文件可能也放在这个目录里。
--localedir
打印区域支持文件的位置。如果在编译PostgreSQL的时候没有配置区域支持, 那么这个就是空字符串。
--mandir
打印手册页的位置。
--sharedir
打印体系无关的支持文件的位置。
--sysconfdir
打印系统范围的配置文件位置。
--pgxs
打印扩展makefiles文件的位置。
--configure
打印配置和编译PostgreSQL时给configure脚本传递的选项, 这可以用于复制相同配置, 或者找出二进制包是用哪些选项编译的。 不过请注意二进制包通常包含供应商提供的补丁。又见下面的例子。
--cc
打印用于编译PostgreSQL的CC变量的数值。 这个选项显示使用的C编译器。
--cppflags
打印用于编译PostgreSQL的CPPFLAGS变量的数值。 这个选项显示在预处理的时候所需要的C编译器开关(通常是-I开关)。
--cflags
打印编译PostgreSQL时使用的CFLAGS变量的数值。 这个选项显示C编译器开关。
--cflags_sl
打印编译PostgreSQL时使用的CFLAGS_SL变量的数值。 这个选项显示了编译共享库的额外的C编译器开关。
--ldflags
打印编译PostgreSQL时使用的LDFLAGS变量的数值。 它显示了链接器的开关。
--ldflags_ex
输出用于创建PostgreSQL的LDFLAGS_EX变量的值。 这显示用于构建可执行文件的链接器开关。
--ldflags_sl
打印编译PostgreSQL时使用的LDFLAGS_SL变量的数值。 它显示了用于编译共享库的链接器的开关。
--libs
打印编译PostgreSQL时使用的LIBS变量的数值。 其内容通常包含连接到PostgreSQL的外部库的-l开关。
--version
打印PostgreSQL的版本。

        这么多参数中重点关注--bindir、--configure、--version 三个参数的使用。


15.pg_controldata

         这个指令只有一个-D、-V两个参数,-V用于展示该数据目录下的数据库版本号

[postgres@vm03 ~]$ pg_controldata -D $PGDATA
pg_control version number:            1300
Catalog version number:               202209061
Database system identifier:           7301665933783671493
Database cluster state:               in production
pg_control last modified:             Tue 05 Dec 2023 10:19:04 PM CST
Latest checkpoint location:           0/10000110
Latest checkpoint's REDO location:    0/100000D8
Latest checkpoint's REDO WAL file:    000000010000000000000010
Latest checkpoint's TimeLineID:       1
Latest checkpoint's PrevTimeLineID:   1
Latest checkpoint's full_page_writes: on
Latest checkpoint's NextXID:          0:743
Latest checkpoint's NextOID:          24579
Latest checkpoint's NextMultiXactId:  1
Latest checkpoint's NextMultiOffset:  0
Latest checkpoint's oldestXID:        716
Latest checkpoint's oldestXID's DB:   1
Latest checkpoint's oldestActiveXID:  743
Latest checkpoint's oldestMultiXid:   1
Latest checkpoint's oldestMulti's DB: 1
Latest checkpoint's oldestCommitTsXid:0
Latest checkpoint's newestCommitTsXid:0
Time of latest checkpoint:            Tue 05 Dec 2023 10:19:04 PM CST
Fake LSN counter for unlogged rels:   0/3E8
Minimum recovery ending location:     0/0
Min recovery ending loc's timeline:   0
Backup start location:                0/0
Backup end location:                  0/0
End-of-backup record required:        no
wal_level setting:                    replica
wal_log_hints setting:                off
max_connections setting:              100
max_worker_processes setting:         8
max_wal_senders setting:              10
max_prepared_xacts setting:           0
max_locks_per_xact setting:           64
track_commit_timestamp setting:       off
Maximum data alignment:               8
Database block size:                  8192
Blocks per segment of large relation: 131072
WAL block size:                       8192
Bytes per WAL segment:                16777216
Maximum length of identifiers:        64
Maximum columns in an index:          32
Maximum size of a TOAST chunk:        1996
Size of a large-object chunk:         2048
Date/time type storage:               64-bit integers
Float8 argument passing:              by value
Data page checksum version:           0
Mock authentication nonce:            5857108a733c77131802904df8eebd6b2215639ba0b3dd8b53f78fc6446e6588

        pg_controldata打印关于预写式日志和检查点处理的信息。这种信息是集簇范围的,并且不针对任何一个数据库。

        这个工具只能由初始化集簇的用户运行,因为它要求对数据目录的读访问。你可以在命令行中指定数据目录,

关于以上参数的解释(这个能看得懂就看吧,后期再专门写一篇博客来讲讲这些参数吧)

pg_control version number:该字段表示 pg_control 文件的版本号,本例中为 1300。
Catalog version number:数据库目录的版本号,本例中为 202209061。
Database system identifier:数据库系统标识符,用于唯一标识数据库集群。本例中为 7301665933783671493。
Database cluster state:数据库集群的状态,本例中为 "in production",表示数据库正处于主库状态。
pg_control last modified:pg_control 文件上次修改的时间,本例中为 "Tue 05 Dec 2023 10:19:04 PM CST"。
Latest checkpoint location:最新检查点的位置,本例中为 "0/10000110"。
Latest checkpoint's REDO location:最新检查点的REDO位置,本例中为 "0/100000D8"。
Latest checkpoint's REDO WAL file:最新检查点的REDO WAL文件,本例中为 "000000010000000000000010"。
Latest checkpoint's TimeLineID:最新检查点所在的时间线标识符,本例中为 1。
Latest checkpoint's PrevTimeLineID:最新检查点的前一个时间线标识符,本例中为 1。
Latest checkpoint's full_page_writes:最新检查点是否使用了完整页写入(on 表示启用,off 表示禁用),本例中为 "on"。
Latest checkpoint's NextXID:下一个事务ID(XID),本例中为 "0:743"。
Latest checkpoint's NextOID:下一个对象ID(OID),本例中为 24579。
Latest checkpoint's NextMultiXactId:下一个多重事务ID(MultiXactId),本例中为 1。
Latest checkpoint's NextMultiOffset:下一个多重事务的偏移量,本例中为 0。
Latest checkpoint's oldestXID:最老的活动事务ID,本例中为 716。
Latest checkpoint's oldestXID's DB:最老的活动事务ID所属的数据库ID,本例中为 1。
Latest checkpoint's oldestActiveXID:最老的活动事务ID,本例中为 743。
Latest checkpoint's oldestMultiXid:最老的多重事务ID,本例中为 1。
Latest checkpoint's oldestMulti's DB:最老的多重事务ID所属的数据库ID,本例中为 1。
Latest checkpoint's oldestCommitTsXid:最老的提交时间戳事务ID,本例中为 0。
Latest checkpoint's newestCommitTsXid:最新的提交时间戳事务ID,本例中为 0。
Time of latest checkpoint:最新检查点的时间,本例中为 "Tue 05 Dec 2023 10:19:04 PM CST"。
Fake LSN counter for unlogged rels:未记录关系的虚拟LSN计数器,本例中为 "0/3E8"。
Minimum recovery ending location:最小恢复结束位置,本例中为 "0/0"。
Min recovery ending loc's timeline:最小恢复结束位置所在的时间线标识符,本例中为 0。
Backup start location:备份开始位置,本例中为 "0/0"。
Backup end location:备份结束位置,本例中为 "0/0"。
End-of-backup record required:是否需要结束备份记录("no" 表示不需要),本例中为 "no"。
wal_level setting:WAL(Write-Ahead Logging)级别设置,本例中为 "replica"。
wal_log_hints setting:是否启用WAL日志提示,本例中为 "off"。
max_connections setting:允许的最大连接数,本例中为 100。
max_worker_processes setting:允许的最大工作进程数,本例中为 8。
max_wal_senders setting:允许的最大WAL发送者数,本例中为 10。
max_prepared_xacts setting:允许的最大预备事务数,本例中为 0。
max_locks_per_xact setting:每个事务允许的最大锁数,本例中为 64。
track_commit_timestamp setting:是否启用事务提交时间戳跟踪,本例中为 "off"。
Maximum data alignment:最大数据对齐字节数,本例中为 8。
Database block size:数据库块大小,本例中为 8192 字节。
Blocks per segment of large relation:大型关系每个段的块数,本例中为 131072。
WAL block size:WAL块大小,本例中为 8192 字节。
Bytes per WAL segment:每个WAL段的字节数,本例中为 16777216 字节。
Maximum length of identifiers:标识符的最大长度,本例中为 64。
Maximum columns in an index:索引中的最大列数,本例中为 32。
Maximum size of a TOAST chunk:TOAST块的最大大小,本例中为 1996 字节。
Size of a large-object chunk:大对象块的大小,本例中为 2048 字节。
Date/time type storage:日期/时间类型的存储方式,本例中为 "64-bit integers"。
Float8 argument passing:Float8参数传递方式,本例中为 "by value"。
Data page checksum version:数据页校验和版本,本例中为 0。
Mock authentication nonce:模拟身份验证的随机数,本例中为 "5857108a733c77131802904df8eebd6b2215639ba0b3dd8b53f78fc6446e6588"


16.pg_ctl

         

pg_ctl is a utility to initialize, start, stop, or control a PostgreSQL server.Usage:pg_ctl init[db]   [-D DATADIR] [-s] [-o OPTIONS]pg_ctl start      [-D DATADIR] [-l FILENAME] [-W] [-t SECS] [-s][-o OPTIONS] [-p PATH] [-c]pg_ctl stop       [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s]pg_ctl restart    [-D DATADIR] [-m SHUTDOWN-MODE] [-W] [-t SECS] [-s][-o OPTIONS] [-c]pg_ctl reload     [-D DATADIR] [-s]pg_ctl status     [-D DATADIR]pg_ctl promote    [-D DATADIR] [-W] [-t SECS] [-s]pg_ctl logrotate  [-D DATADIR] [-s]pg_ctl kill       SIGNALNAME PIDCommon options:-D, --pgdata=DATADIR   location of the database storage area-s, --silent           only print errors, no informational messages-t, --timeout=SECS     seconds to wait when using -w option-V, --version          output version information, then exit-w, --wait             wait until operation completes (default)-W, --no-wait          do not wait until operation completes-?, --help             show this help, then exit
If the -D option is omitted, the environment variable PGDATA is used.Options for start or restart:-c, --core-files       allow postgres to produce core files-l, --log=FILENAME     write (or append) server log to FILENAME-o, --options=OPTIONS  command line options to pass to postgres(PostgreSQL server executable) or initdb-p PATH-TO-POSTGRES    normally not necessaryOptions for stop or restart:-m, --mode=MODE        MODE can be "smart", "fast", or "immediate"Shutdown modes are:smart       quit after all clients have disconnectedfast        quit directly, with proper shutdown (default)immediate   quit without complete shutdown; will lead to recovery on restartAllowed signal names for kill:ABRT HUP INT KILL QUIT TERM USR1 USR2

         这个指令是我们比较常用的一个命令 

        

启动 PostgreSQL 服务器:
pg_ctl start 指定数据目录和配置文件启动:
pg_ctl start -D /path/to/data/directory -o "-c config_file=/path/to/postgresql.conf"停止 PostgreSQL 服务器:
pg_ctl stop指定停止超时时间
pg_ctl stop -t 60重载配置文件:
pg_ctl reload指定日志文件输出路径:
pg_ctl start -l /path/to/logfile.log等待服务器启动后返回:
pg_ctl start -w使用 smart 选项启动 PostgreSQL 服务器:
(使用 smart 选项表示允许在尝试 fast 关闭失败时使用 immediate 关闭immediate 选项表示立即停止 PostgreSQL 服务器,不管当前有多少活动的连接。)
pg_ctl start -m smart使用 logrotate 选项执行日志轮换:
pg_ctl logrotate
这个命令触发 PostgreSQL 日志的轮换,创建一个新的日志文件。它与服务器的启动和运行无关。使用 kill 选项终止 PostgreSQL 服务器进程:
pg_ctl kill -s SIGTERM
使用 kill 选项可以向 PostgreSQL 服务器发送信号,上述示例发送 SIGTERM 信号,通常用于优雅地终止服务器进程。使用 promote 选项将 PostgreSQL 流复制服务器升级为主服务器:
pg_ctl promote
使用 promote 选项将 PostgreSQL 流复制服务器升级为主服务器。这在流复制设置中很常见,用于手动切换到主服务器。

        这里讲一下关于pg_ctl启停的三个参数 smart    、 fast (默认)   、 immediate

        在实际应用中,通常会优先选择 fast 选项,因为它允许服务器正常关闭,等待现有连接完成,从而最大程度地减少潜在的数据丢失。smart 则提供了一种更灵活的选择,允许在一定时间内尝试 fast 关闭,然后转为 immediate 关闭以确保服务器能够尽快停止。 


17.pg_dump 

18.pg_dumpall

 23.pg_restore

        以上三种工具pg_dump、pg_dumpall数据库得备份工具 ,pg_dumpall可以用实例级别得备份,常常联合pg_restore联合使用,将备份数据导入到另一个库中去,用于备份或数据库升级。使用范例见


19.pg_isready

         pg_isready是检查PostgreSQL 数据库服务器连接状态的一个实用工具。退出状态说明连接检查的结果。常用于新建的数据库对外开放情况。

[postgres@vm05 ~]$ pg_isready -h 192.168.43.216
192.168.43.216:5432 - no response

20.pg_receivewal

        这个指令会通过流复制的形式向远程服务器接收当前日期往后的日志信息。可以理解为相当于就是一个归档程序。可以将预写日志归档到其他服务器上,用于后期的日志恢复(PITR)。

        第一次使用的时候,他会从主节点罪行的wal开始复制,后续继续启动该命令时,他会从当前接收路径下的确实的wal去主节点找。使用起来比较简单。

pg_receivewal receives PostgreSQL streaming write-ahead logs.Usage:pg_receivewal [OPTION]...Options:-D, --directory=DIR    receive write-ahead log files into this directory-E, --endpos=LSN       exit after receiving the specified LSN--if-not-exists    do not error if slot already exists when creating a slot-n, --no-loop          do not loop on connection lost--no-sync          do not wait for changes to be written safely to disk-s, --status-interval=SECStime between status packets sent to server (default: 10)-S, --slot=SLOTNAME    replication slot to use--synchronous      flush write-ahead log immediately after writing-v, --verbose          output verbose messages-V, --version          output version information, then exit-Z, --compress=METHOD[:DETAIL]compress as specified-?, --help             show this help, then exitConnection options:-d, --dbname=CONNSTR   connection string-h, --host=HOSTNAME    database server host or socket directory-p, --port=PORT        database server port number-U, --username=NAME    connect as specified database user-w, --no-password      never prompt for password-W, --password         force password prompt (should happen automatically)Optional actions:--create-slot      create a new replication slot (for the slot's name see --slot)--drop-slot        drop the replication slot (for the slot's name see --slot)

               


21.pg_recvlogical

        pg_recvlogical控制逻辑解码复制槽以及来自这种复制槽的流数据。

        这个指令没太大应用场景。


22.pg_resetwal         

         通常用于修复由于 WAL 文件损坏或丢失而导致的数据库无法启动的问题。这个指令被认为是修复postgresql的最后一根稻草

pg_resetwal -D /var/lib/pgsql/data ##当数据库B点上预写日志损坏了,此时通过这个指令让数据库从B点前一个LSN(可应用的)重新生成预写日志,此时预写日志不再进入pg_wal目录,而是进入/var/lib/pgsql/data 路径下

24.pg_rewind

         一个增量备份工具,往往数据库比较大的时候,重新进行备份会浪费较长时间,应用旧的备份,进行增量备份到指定节点,会比较快。使用范例见


25.pg_test_fsync

         这是一个系统压测工具,使用也非常简单。它主要用于评估文件系统的 fsync(文件同步)性能。

测试 fsync 性能:
pg_test_fsync指定测试文件大小:
pg_test_fsync -s 1GB测试异步操作:
pg_test_fsync -A多次运行测试:
pg_test_fsync -t 10显示执行一系列同步操作的时间。


26.pg_test_timing

        pg_test_timing 的输出将显示执行计时操作的时间,包括系统计时和延迟。这对于评估 PostgreSQL 在特定硬件和系统上的性能和延迟表现非常有用。收集计时数据很慢的系统会给出不太准确的EXPLAIN ANALYZE结果。

        使用非常简单,只有一个参数d,用于指定压测的持续时间

  1. Testing timing overhead for 10 seconds:

    • 这行指示测试计时的总时间为10秒。
  2. Per loop time including overhead: 30.91 ns:

    • 每个循环的平均时间,包括测试系统计时的额外开销,为30.91纳秒。这表示每次循环执行所需的平均时间。
< us:
表示计时持续时间的范围,单位是微秒。这一列显示了计时的持续时间范围的上限。例如,< us 列中的 "1" 表示小于1微秒的计时。% of total:
表示每个时间段的百分比,占总计数的比例。这一列显示了每个持续时间范围内计时的分布情况。例如,"% of total" 列中的 "97.04" 表示小于1微秒的计时占总计数的97.04%。count:
表示每个时间段的计数,即在指定的持续时间范围内计时的次数。这一列显示了每个时间段的计数。例如,"count" 列中的 "313986794" 表示小于1微秒的计时出现了313,986,794次。综合这三列的信息,可以了解计时的分布情况,例如有多少计时在特定的时间范围内。在给定的示例中,绝大多数计时小于1微秒,占总计数的97.04%。这样的结果通常是希望看到的,因为它表示系统的计时性能较好,大多数计时都非常快速。

 
27.pg_upgrade

        用数据库版本升级的工具,使用范例见 

       

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

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

相关文章

基于ssm理发店会员管理系统的设计和实现论文

摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所以对于信息的宣传和管理就很关键。因此理发店会员信息…

Cache的基本概念和原理

目录 一. Cache的工作原理二. 局部性原理三. 性能分析四. 待解决的问题 \quad 一. Cache的工作原理 \quad 存储系统存在的问题 虽然双端口RAM、多模块存储器提高存储器的工作速度, 但是优化后的速度与CPU差距依然很大, 为了改善这个问题就出现了Cache, 来解决存储器与CPU速度不…

ubuntu安装docker及docker常用命令

docker里有三个部分 daemon 镜像 和 容器 我们需要了解的概念 容器 镜像 数据卷 文章目录 docker命令docker镜像相关命令docker容器相关命令数据卷ubuntu安装docker docker命令 #启动&#xff0c;停止&#xff0c;重启docker systemctl start docker systemctl stop docker s…

SpringBoot的依赖管理和自动配置

与其明天开始&#xff0c;不如现在行动&#xff01; 文章目录 1 依赖管理机制2 自动配置机制2.1 初步理解2.2 完整流程 &#x1f48e;总结 1 依赖管理机制 为什么导入starter-web后所有相关依赖都会导入进来&#xff1f; 开发什么场景&#xff0c;导入什么场景启动器-spring-bo…

Redis 环境搭建2

文章目录 第2关&#xff1a;使用 Redis 第2关&#xff1a;使用 Redis 本文是接着上篇文章写的第二关代码&#xff0c;部分人再进入第二关时不会保留第一关的配置的环境&#xff0c;可以通过下面一句代码进行检验。 redis-cli -p 7001 -c如果进入到了redis界面就是有环境&…

问题:batchnormal训练单个batch_size就会报错吗

Batch Normalization&#xff08;批标准化&#xff09;是一种深度学习中的正则化技巧&#xff0c;它可以改进网络的训练过程。在训练神经网络时&#xff0c;Batch Normalization可以帮助解决内部协变量偏移&#xff08;Internal Covariate Shift&#xff09;的问题。 在标准的…

pytorch serve开始-Getting started

官网链接 Getting started — PyTorch/Serve master documentation 安装TorchServe和torch-model-archiver 安装依赖 注意::对于Conda&#xff0c;运行Torchserve需要Python >3.8。 对于基于Debian的系统/ MacOS CPU python ./ts_scripts/install_dependencies.py 对…

【Hadoop】高可用集群搭建

知识目录 一、写在前面&#x1f495;二、Zookeeper安装✨三、Hadoop配置✨四、Hadoop HA自动模式✨五、HA脚本分享✨七、结语&#x1f495; 一、写在前面&#x1f495; 大家好&#xff01;这篇文章是我在搭建Hdfs的HA(高可用)时写下的详细笔记与感想&#xff0c;希望能帮助到大…

Notes数据直接在Excel中统计

大家好&#xff0c;才是真的好。 我希望你看过前面两篇内容《Domino REST API安装和运行》和《Domino REST API安装和运行》&#xff0c;因为今天我们正是使用REST API方式在Excel中查询和统计Notes数据。 不过首先你得知道一个OData协议&#xff0c;全名Open Data Protocol(…

布隆过滤器,Redis之 bitmap,场景题【如果微博某个大V发了一条消息,怎么统计有多少人看过了】

文章目录 一、什么是 bitmap1-1、Bitmap 相关命令二、bitmap 和 set 对比2-1、数据准备2-2、内存对比2-3、性能对比三、布隆过滤器3-1、理论主要作用如何将数据放到过滤器内呢?注意事项布隆过滤器 有两个重要的参数3-2、代码实现3-3、Java中的hash函数最近面试,面试官问了一个…

Windows系统Java开发环境安装

总结一下Java软件开发工程师常见的环境的安装&#xff0c;仅限Windows环境。 以下下载链接均来自官网&#xff0c;网络条件自己克服。 目录 1. JDKJDK Oracle 官网下载地址配置系统环境变量 2. Mavenapache maven 官网地址本地仓库和中央仓库配置配置系统环境变量 3. GitGit 官…

springboot3 liquibase SQL执行失败自动回滚,及自动打tag

一&#xff1a; 自动执行回滚&#xff0c; 已执行成功的忽略&#xff0c;新sql执行失败则执行新sql文件中的回滚sql pom.xml <dependency> <groupId>org.liquibase</groupId> <artifactId>liquibase-core</artifactId> <version>4.25.0&…

【工厂方法】设计模式项目实践

前言 以采集数据处理逻辑为例&#xff0c;数据采集分为不同种类如&#xff1a;MQTT、MODBUS、HTTP等&#xff0c;不同的采集数据有不同的解析处理逻辑。但总体解析处理步骤是固定的。可以使用工厂方法设计模式简化代码&#xff0c;让代码变得更加优雅。 代码实践 抽象类 总体…

分布式环境下的session 共享-基于spring-session组件和Redis实现

1、问题概述 不是所有的项目都是单机模式的&#xff0c;当一个项目服务的局域比较广&#xff0c;用户体量比较大&#xff0c;数据量较大的时候&#xff0c;我们都会将项目部署到多台服务器上&#xff0c;这些个服务器都是分布在不同的区域&#xff0c;这样实现了项目的负载和并…

Redis有序集合对象

一.编码 有序集合的编码可以是ziplist或者skiplist。 ziplist编码的有序集合对象使用压缩列表作为底层实现&#xff0c;每一个集合元素使用紧挨在一起的两个压缩列表节点来保存。第一个节点保存元素的成员(member)&#xff0c;而第二个元素则保存元素的分值(score)。 127.0.0.…

鸿蒙app获取文本控件按钮控件_修改控件名称_按钮触发事件_提示信息显示

鸿蒙app获取文本控件按钮控件_修改控件名称_按钮触发事件_ 点击启动&#xff1a;提示信息显示 package com.example.myapplication.slice;import com.example.myapplication.ResourceTable; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; impor…

12.1电梯控制器——文档记录

《数字逻辑》实验报告 实验名称 项目三 电梯控制器设计 一、实验目的 设计一个多楼层的电梯控制器系统&#xff0c;并能在开发板上模拟电梯运行状态。可以利用按键作为呼叫按键&#xff0c;数码管显示电梯运行时电梯所在楼层&#xff0c;led灯显示楼层叫梯状态。 二、实…

太良心了!微软面向初学者,开源机器学习、数据科学、AI、LLM

大家好&#xff0c;推荐几个质量上乘且完全免费的微软开源课程&#xff0c;由粉丝小伙伴梳理&#xff0c;分享给大家。 文末可以加我们粉丝群 面向初学者的机器学习课程 ML for beginners banner 地址&#xff1a;https://microsoft.github.io/ML-For-Beginners/#/ 学习经典…

讲解把一个文件夹里面的内容复制到另一个文件夹中的操作

&#x1f38a;专栏【Java小练习】 &#x1f354;喜欢的诗句&#xff1a;天行健&#xff0c;君子以自强不息。 &#x1f386;音乐分享【如愿】 &#x1f384;欢迎并且感谢大家指出小吉的问题&#x1f970; 文章目录 &#x1f354;需求⭐思路✨代码✨效果 &#x1f384;如果要复制…

Vue3:表格单元格内容由:图标+具体内容 构成

一、背景 在Vue3项目中&#xff0c;想让单元格的内容是由 &#xff1a;图标具体内容组成的&#xff0c;类似以下效果&#xff1a; 二、图标 Element-Plus 可以在Element-Plus里面找是否有符合需求的图标iconfont 如果Element-Plus里面没有符合需求的&#xff0c;也可以在这…