redis主从从,redis-7.0.13

news2024/11/30 10:48:49

redis主从从,redis-7.0.13

    • 下载redis
    • 安装redis
      • 安装redis-7.0.13过程
        • 报错1、没有gcc,
        • 报错2、没有python3,
        • 报错3、[adlist.o] 错误 127
      • 解决安装报错
      • 安装完成
    • 部署redis 主从从结构
      • redis主服务器
        • 配置redis
        • 启动redis
        • 登录redis
        • redis默认是主
      • redis从服务器1
      • redis从服务器2
    • 部署3哨兵 redis-sentinel
        • 未成功故障切换
    • 哨兵配置文件 默认文件
    • redis.conf 默认文件

下载redis

下载 |雷迪斯 (redis.io)

在这里插入图片描述

链接:https://download.redis.io/releases/redis-7.0.13.tar.gz?_gl=11itkjl8_gaNjQ4ODk5MzUxLjE2OTU0NTQ0NTU._ga_8BKGRQKRPV*MTY5NTQ1NDQ1NS4xLjEuMTY5NTQ1NTI3OC4xMC4wLjA.

安装redis

从源安装 Redis |雷迪斯

在这里插入图片描述

python链接:
https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tgz

curl -o Python-3.11.5.tgz https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tgz

在这里插入图片描述

安装redis-7.0.13过程

报错1、没有gcc,
报错2、没有python3,
报错3、[adlist.o] 错误 127
tar xf redis-7.0.13.tar.gz
cd redis-7.0.13
make 
# 报错 没有命令 cc,没有python3,[adlist.o] 错误 127
cd src && make all
sh: cc: 未找到命令
which: no python3 in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
make[1]: 进入目录“/data/redis1/redis-stable/src”
    CC Makefile.dep
make[1]: 离开目录“/data/redis1/redis-stable/src”
sh: cc: 未找到命令
which: no python3 in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
make[1]: 进入目录“/data/redis1/redis-stable/src”
....
MAKE hiredis
cd hiredis && make static
make[3]: 进入目录“/data/redis1/redis-stable/deps/hiredis”
cc -std=c99 -c -O3 -fPIC   -Wall -Wextra -Werror -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb  -pedantic alloc.c
make[3]: cc:命令未找到
make[3]: *** [alloc.o] 错误 127
make[3]: 离开目录“/data/redis1/redis-stable/deps/hiredis”
make[2]: *** [hiredis] 错误 2
make[2]: 离开目录“/data/redis1/redis-stable/deps”
make[1]: [persist-settings] 错误 2 (忽略)
    CC adlist.o
/bin/sh: cc: 未找到命令
make[1]: *** [adlist.o] 错误 127
make[1]: 离开目录“/data/redis1/redis-stable/src”
make: *** [all] 错误 2

解决安装报错

#安装python3,安装gcc
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel gcc make
cd /data/
curl -o Python-3.11.5.tgz https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tgz
tar xf Python-3.11.5.tgz
cd Python-3.11.5.tgz
mkdir -p /usr/local/tools/
./configure --prefix=/usr/local/tools/
make && make install
ll /usr/local/tools/
总用量 0
drwxr-xr-x 2 root root 202 923 18:01 bin
drwxr-xr-x 3 root root  24 923 18:01 include
drwxr-xr-x 4 root root  64 923 18:01 lib
drwxr-xr-x 3 root root  17 923 18:01 share

#配置python环境变量
vim /etc/profile
export PYTHON_HOME=/usr/local/tools
export PATH=$PYTHON_HOME/bin:$PATH

source /etc/profile
which python3
/usr/local/tools/bin/python3


#再次make redis
cd /data/redis-7.0.13
make && make install
#报错
cd src && make all
make[1]: 进入目录“/data/redis/redis-7.0.13/src”
    CC adlist.o
In file included from adlist.c:34:0:
zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录
 #include <jemalloc/jemalloc.h>
                               ^
编译中断。
make[1]: *** [adlist.o] 错误 1
make[1]: 离开目录“/data/redis/redis-7.0.13/src”
make: *** [all] 错误 2

# 使用make MALLOC=libc
make MALLOC=libc
#编译成功
    CC cli_common.o
    LINK redis-cli
    CC redis-benchmark.o
    LINK redis-benchmark
    INSTALL redis-check-rdb
    INSTALL redis-check-aof

Hint: It's a good idea to run 'make test' ;)

make[1]: 离开目录“/data/redis/redis-7.0.13/src”

安装完成

ll src/redis-cli
-rwxr-xr-x 1 root root 1083416 923 18:24 src/redis-cli
ll src/redis-server
-rwxr-xr-x 1 root root 7018488 923 18:24 src/redis-server
ll src/redis-sentinel
-rwxr-xr-x 1 root root 7018488 923 18:24 src/redis-sentinel

部署redis 主从从结构

瑞迪斯配置 |雷迪斯 (redis.io)

Redis 配置文件示例 |雷迪斯

瑞迪斯复制 |雷迪斯 (redis.io)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

redis主服务器

配置redis
cd /data/redis/redis-7.0.13
cp redis.conf redis.conf.bak

ln -s /data/redis/redis-7.0.13/src/redis-server  /usr/local/bin/redis-server
ln -s /data/redis/redis-7.0.13/src/redis-sentinel /usr/local/bin/redis-sentinel
ln -s /data/redis/redis-7.0.13/src/redis-cli /usr/local/bin/redis-cli

mkdir -p /data/redisdata/

vim redis.conf
bind 192.168.75.143
port 6379
protected-mode no
daemonize no
pidfile /var/run/redis_6379.pid
loglevel notice

#Redis服务器的工作目录
dir /data/redisdata/

#Redis日志文件的路径,如果设置为空字符串,表示不记录日志文件,只在终端打印
logfile /data/redis.log
#
##Redis服务器支持的数据库数量
databases 16
#
##是否总是显示Redis的logo,如果设置为yes,每次启动Redis时都会打印logo
always-show-logo no

#服务器密码
requirepass "123456"

#连接主服务器的密码
masterauth 123456

启动redis
src/redis-server redis.conf &
登录redis
[root@redis2 redis-7.0.13]# redis-cli -h 192.168.75.143
192.168.75.143:6379> ping
(error) NOAUTH Authentication required.
192.168.75.143:6379> auth 123456
OK
192.168.75.143:6379> ping
PONG
192.168.75.143:6379>
redis默认是主

192.168.75.143:6379> info
# Server
redis_version:7.0.13
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:6199b82bc88869ee
redis_mode:standalone
os:Linux 3.10.0-862.el7.x86_64 x86_64
arch_bits:64
monotonic_clock:POSIX clock_gettime
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:4.8.5
process_id:1403
process_supervised:no
run_id:16267262862dc73b8cebb24273cf04274ac40e90
tcp_port:6379
server_time_usec:1695627161454916
uptime_in_seconds:61
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:1128345
executable:/data/redis/redis-7.0.13/src/redis-server
config_file:/data/redis/redis-7.0.13/redis.conf
io_threads_active:0

# Clients
connected_clients:1
cluster_connections:0
maxclients:10000
client_recent_max_input_buffer:24
client_recent_max_output_buffer:0
blocked_clients:0
tracking_clients:0
clients_in_timeout_table:0

# Replication   
role:master
connected_slaves:0
master_failover_state:no-failover
master_replid:4e46cf3ce0a63154324bec95ecd029f7ad681a28
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

redis从服务器1

cd /data/redis/redis-7.0.13
cp redis.conf redis.conf.bak


vim redis.conf
bind 192.168.75.144
port 6379
protected-mode no
daemonize no
pidfile /var/run/redis_6379.pid
loglevel notice

#Redis服务器的工作目录
dir /data/redisdata/

#Redis日志文件的路径,如果设置为空字符串,表示不记录日志文件,只在终端打印
logfile /data/redis.log
#
##Redis服务器支持的数据库数量
databases 16
#
##是否总是显示Redis的logo,如果设置为yes,每次启动Redis时都会打印logo
always-show-logo no

#服务器密码
requirepass "123456"

#从服务器设置,复制哪个主服务器
replicaof 192.168.75.143 6379
#连接主服务器的密码
masterauth 123456

redis从服务器2

cd /data/redis/redis-7.0.13
cp redis.conf redis.conf.bak

vim redis.conf
bind 192.168.75.145
port 6379
protected-mode no
daemonize no
pidfile /var/run/redis_6379.pid
loglevel notice

#Redis服务器的工作目录
dir /data/redisdata/

#Redis日志文件的路径,如果设置为空字符串,表示不记录日志文件,只在终端打印
logfile /data/redis.log
#
##Redis服务器支持的数据库数量
databases 16
#
##是否总是显示Redis的logo,如果设置为yes,每次启动Redis时都会打印logo
always-show-logo no

#服务器密码
requirepass "123456"

#从服务器设置,复制哪个主服务器
replicaof 192.168.75.143 6379
#连接主服务器的密码
masterauth 123456

部署3哨兵 redis-sentinel

未成功故障切换

Redis Sentinel 的高可用性 |雷迪斯
在这里插入图片描述

哨兵配置文件 默认文件

sentinel.conf

#是否开启保护模式,'no'表示关闭,默认为关闭
protected-mode no

#Redis Sentinel监听的端口号
port 26379

#是否以后台进程形式运行,'no'表示在前台运行,默认为'no'"
daemonize no

#Redis Sentinel后台运行的进程ID文件路径
pidfile /var/run/redis-sentinel.pid

#Redis Sentinel的日志文件路径,此处为空,表示没有指定日志文件,日志打印到控制台。后台运行时如果不配置日志文件,日志将写入/dev/null
logfile ""

#Redis Sentinel的工作目录
dir /tmp

#定义要监视的主服务器,格式为'master-name ip port quorum'。
# 此处监视名为'mymaster'的主服务器,其在IP地址127.0.0.1的6379端口上运行,并且需要2个Sentinel同意才能进行故障转移,3节点的哨兵集群写2  数字需大于哨兵集群节点总数的一半
sentinel monitor mymaster 127.0.0.1 6379 2

#定义主服务器失败所需的时间(毫秒)。如果主服务器在指定的时间内没有响应,Sentinel将认为它已经失败
sentinel down-after-milliseconds mymaster 30000

#定义了ACL日志的最大长度,以KB为单位。0表示没有限制
acllog-max-len 128

#定义在执行故障转移时,可以同时进行主从同步的数量,示在执行故障转移时,最多只有一个从节点会成为新的主节点。其他从节点会尝试复制新的主节点,但是不会成为主节点。
sentinel parallel-syncs mymaster 1

#定义故障转移的超时时间(毫秒)。如果在这个时间内没有完成故障转移,Sentinel将停止并尝试其他方法
sentinel failover-timeout mymaster 180000

#是否禁止在运行时通过脚本重新配置Sentinel,'yes'表示禁止
sentinel deny-scripts-reconfig yes

#是否允许Sentinel解析主机名,'no'表示不允许
SENTINEL resolve-hostnames no

#是否允许Sentinel宣布其主机名,'no'表示不允许
SENTINEL announce-hostnames no

#如果主服务器因重启而消失的时间超过这个值(以毫秒为单位),Sentinel将认为主服务器已经失败。此处为0,表示关闭此功能
SENTINEL master-reboot-down-after-period mymaster 0

管理红人 |雷迪斯 (redis.io)

redis配置
在这里插入图片描述

启动redis两种方式

  1. 命令行

    redis-server /path/to/your/redis.conf

  2. systemctl

    cp redis-7.0.13/utils/systemd-redis_server.service /usr/lib/systemd/system/redis.service

    vim /usr/lib/systemd/system/redis.service

    sudo systemctl daemon-reload
    sudo systemctl enable redis
    sudo systemctl start redis

redis.conf 默认文件

#绑定Redis服务器到指定的IP地址,多个IP地址用空格分隔。如 127.0.0.1 -::1 表示绑定到本机的所有IPv4和IPv6的地址
bind 127.0.0.1 -::1

#保护模式,如果是yes,没有密码的客户端将不能访问Redis服务器
protected-mode yes

#如需要设置Redis的密码
requirepass yourpassword


#Redis服务器监听的端口号
port 6379

#TCP连接队列的最大长度
tcp-backlog 511

#客户端连接闲置多长时间后关闭,0表示关闭此功能
timeout 0

#TCP连接的保持活跃时间,单位是秒
tcp-keepalive 300

#是否让Redis以守护进程方式运行,如果是yes,Redis将在后台运行
daemonize no

#如果Redis以守护进程方式运行,这个选项将指定一个文件名,Redis会把它的进程ID写入这个文件。
pidfile /var/run/redis_6379.pid

#Redis日志的级别,可选值包括debug、verbose、notice和warning
loglevel notice

#Redis日志文件的路径,如果设置为空字符串,表示不记录日志文件,只在终端打印
logfile ""

#Redis服务器支持的数据库数量
databases 16

#是否总是显示Redis的logo,如果设置为yes,每次启动Redis时都会打印logo
always-show-logo no

#是否设置进程标题,如果设置为yes,Redis会使用一个包含有用信息的标题
set-proc-title yes

#设置进程标题的格式
proc-title-template "{title} {listen-addr} {server-mode}"

#如果在后台保存数据时发生错误,是否停止写入操作
stop-writes-on-bgsave-error yes

#是否启用RDB数据持久化时的压缩功能
rdbcompression yes

#是否启用RDB文件的校验和,如果启用,会增加大约10%的性能消耗
rdbchecksum yes

#RDB数据持久化文件的名称
dbfilename dump.rdb

#是否在每次写入RDB文件后删除旧的RDB文件
rdb-del-sync-files no

#Redis服务器的工作目录
dir ./

#当主从复制链接断开时,从服务器是否继续提供服务
replica-serve-stale-data yes

#从服务器是否为只读模式
#从 Redis 2.6 开始,副本支持默认启用的只读模式
replica-read-only yes

#是否启用无盘复制
repl-diskless-sync yes

#无盘复制的延迟时间,单位是秒
repl-diskless-sync-delay 5

#无盘复制的最大从服务器数量
repl-diskless-sync-max-replicas 0

#是否从无盘复制的从服务器加载数据
repl-diskless-load disabled

#是否禁用TCP_NODELAY选项
repl-disable-tcp-nodelay no

#从服务器的优先级,用于主从复制
replica-priority 100

#ACL日志的最大长度
acllog-max-len 128

#是否启用延迟释放内存的策略,如果是yes,当内存达到maxmemory限制时,Redis将使用更少的CPU时间来删除键
lazyfree-lazy-eviction no

#是否启用延迟释放内存的策略,如果是yes,当键过期时,Redis将使用更少的CPU时间来删除键
lazyfree-lazy-expire no

#是否启用延迟释放内存的策略,如果是yes,当服务器删除键时,Redis将使用更少的CPU时间来删除键
lazyfree-lazy-server-del no

#是否启用延迟释放内存的策略,如果是yes,当从服务器接收到主服务器的全量复制数据时,Redis将使用更少的CPU时间来删除键
replica-lazy-flush no

#是否启用延迟释放内存的策略,如果是yes,当用户调用DEL命令删除键时,Redis将使用更少的CPU时间来删除键
lazyfree-lazy-user-del no

#是否启用延迟释放内存的策略,如果是yes,当用户调用FLUSHALL或FLUSHDB命令时,Redis将使用更少的CPU时间来删除键
lazyfree-lazy-user-flush no

#当系统内存不足时,是否调整Redis的OOM分数
oom-score-adj no

#OOM分数的调整值
oom-score-adj-values 0 200 800

#是否禁用透明大页面(THP)
disable-thp yes

#是否开启AOF持久化
appendonly no

#AOF持久化文件的名称
appendfilename "appendonly.aof"

#AOF文件保存的目录
appenddirname "appendonlydir"

#AOF文件同步到磁盘的策略
appendfsync everysec

#在重写AOF文件期间是否禁用fsync操作
no-appendfsync-on-rewrite no

#当前AOF文件大小增长达到上次AOF重写后大小的一定百分比时,将触发AOF重写,即重新生成AOF文件。
#这个百分比就是auto-aof-rewrite-percentage,设置为100表示AOF文件大小增长到上次AOF重写后大小的两倍时,触发AOF重写
auto-aof-rewrite-percentage 100

#AOF文件的最小大小,只有AOF文件大小大于此值时,才会触发AOF重写
auto-aof-rewrite-min-size 64mb

#如果AOF文件在加载时出现截断错误(比如文件损坏),是否继续加载。设置为yes表示继续加载,设置为no表示停止加载
aof-load-truncated yes

#在AOF文件中使用RDB格式的preamble,这有助于在AOF重写时更快地生成新的AOF文件
aof-use-rdb-preamble yes

#是否在AOF文件中记录每个写命令的执行时间戳,设置为no表示不记录
aof-timestamp-enabled no


#慢查询日志的阈值,单位是微秒。只有当查询执行时间超过此值时,才会被记录到慢查询日志中
slowlog-log-slower-than 10000

#慢查询日志的最大长度,即最多保存多少条慢查询日志
slowlog-max-len 128

#延迟监控的阈值,单位是微秒。如果服务器在一段时间内持续超过此阈值,则会触发延迟监控
latency-monitor-threshold 0

#哪些类型的键空间事件需要发送给客户端,比如'K$'表示所有键空间事件都发送
notify-keyspace-events ""

#哈希类型可以存储的最大列表元素数量
hash-max-listpack-entries 512

#哈希类型每个列表元素的最大值
hash-max-listpack-value 64

#列表类型可以存储的最大列表大小
list-max-listpack-size -2

#列表类型压缩的深度
list-compress-depth 0

#集合类型可以存储的最大整数集合元素数量
set-max-intset-entries 512

#有序集合类型可以存储的最大列表元素数量
zset-max-listpack-entries 128

#有序集合类型每个列表元素的最大值
zset-max-listpack-value 64

#HyperLogLog数据结构的最大空间占用,单位是字节
hll-sparse-max-bytes 3000

#流数据结构每个节点的最大空间占用,单位是字节
stream-node-max-bytes 4096

#流数据结构每个节点的最大元素数量
stream-node-max-entries 100

#是否在执行命令时进行主动哈希扩展,设置为yes表示进行主动哈希扩展
activerehashing yes

#设置客户端输出缓冲区的限制,normal表示普通客户端,0 0 0表示不限制
client-output-buffer-limit normal 0 0 0

#设置从服务器客户端输出缓冲区的限制,256mb 64mb 60分别表示硬限制、软限制和持续时间
client-output-buffer-limit replica 256mb 64mb 60

#设置发布订阅客户端输出缓冲区的限制,32mb 8mb 60分别表示硬限制、软限制和持续时间
client-output-buffer-limit pubsub 32mb 8mb 60

#服务器每秒执行多少次事件循环,即服务器的运行频率
hz 10

#是否动态调整服务器的运行频率,设置为yes表示动态调整
dynamic-hz yes

#"在AOF重写期间是否对每个写入命令执行fsync操作,设置为yes表示执行
aof-rewrite-incremental-fsync yes

#在生成RDB文件期间是否对每个写入命令执行fsync操作,设置为yes表示执行
rdb-save-incremental-fsync yes

#是否启用jemalloc的后台线程,设置为yes表示启用
jemalloc-bg-thread yes


#主服务器设置密码
#requirepass "123456"
#通过命令行,在主服务将密码写入配置文件
#config set requirepass <password>
#config set requirepass 123456
# config rewrite

#从服务器设置,复制哪个主服务器
replicaof 192.168.1.1 6379

#从服务器配置密码
masterauth <password>
## 也可通过命令行,在从服务器将密码配置写入配置文件
## config set masterauth <password>
## ## config set masterauth 123456
## config rewrite

瑞迪斯复制 |雷迪斯 (redis.io)

整服务器的运行频率,设置为yes表示动态调整
dynamic-hz yes

#"在AOF重写期间是否对每个写入命令执行fsync操作,设置为yes表示执行
aof-rewrite-incremental-fsync yes

#在生成RDB文件期间是否对每个写入命令执行fsync操作,设置为yes表示执行
rdb-save-incremental-fsync yes

#是否启用jemalloc的后台线程,设置为yes表示启用
jemalloc-bg-thread yes


#主服务器设置密码
#requirepass "123456"
#通过命令行,在主服务将密码写入配置文件
#config set requirepass <password>
#config set requirepass 123456
# config rewrite

#从服务器设置,复制哪个主服务器
replicaof 192.168.1.1 6379

#从服务器配置密码
masterauth <password>
## 也可通过命令行,在从服务器将密码配置写入配置文件
## config set masterauth <password>
## ## config set masterauth 123456
## config rewrite

瑞迪斯复制 |雷迪斯 (redis.io)
在这里插入图片描述

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

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

相关文章

【CMU15-445 Part-13】Query Execution II

Part13-Query Execution II talk about how to execute with multiple workers TCO&#xff1a;Total Cost of Ownship Parallel VS. Distributed 区分数据库系统的并行执行和分布式数据库系统的分布式执行 数据库通过分散multiple resources 来改善数据库某些方面的性能 …

手动实现Transformer

Transformer和BERT可谓是LLM的基础模型&#xff0c;彻底搞懂极其必要。Transformer最初设想是作为文本翻译模型使用的&#xff0c;而BERT模型构建使用了Transformer的部分组件&#xff0c;如果理解了Transformer&#xff0c;则能很轻松地理解BERT。 一.Transformer模型架构 1…

css实现四角圆边框

摘要&#xff1a; 做大屏的项目时&#xff0c;遇到很多地方要用到不同尺寸的盒子需要圆角的效果&#xff0c;所以不可能要求ui弄那么多图片的&#xff0c;并且那么多图片加载速度很慢的&#xff0c;比较臃肿&#xff0c;大屏要求的就是流畅&#xff0c;所以这用css加载很快的&a…

基于Java的旅游管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

Linux系统下git相关使用

目录 git相关指令以及使用 什么是git Linux系统git功能的配置 关于码云的注册以及仓库的创建 git的相关指令 git clone 代码仓库地址 git add [文件名] git commit [文件名] -m "文件提交信息" git push git status 情况1&#xff1a;存在文件可以add 情况2&#xff…

KNN(下):数据分析 | 数据挖掘 | 十大算法之一

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ &#x1f434;作者&#xff1a;秋无之地 &#x1f434;简介&#xff1a;CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作&#xff0c;主要擅长领域有&#xff1a;爬虫、后端、大数据…

025 - STM32学习笔记 - 液晶屏控制(二) - 代码实现

025- STM32学习笔记 - 液晶屏控制&#xff08;二&#xff09; - 代码实现 好久没更新学习笔记了&#xff0c;最近工作上的事情太多了&#xff0c;趁着国庆中秋&#xff0c;多更新一点看看。 上节学习了关于LTDC与DMA2D以及显示屏的相关知识点&#xff0c;这节开始实操&#xf…

[谷粒商城笔记]08、环境-linux安装docker

1.查看是否已安装docker列表 yum list installed | grep docker 如果没有结果&#xff0c;则说明没有安装docker&#xff0c;我们就可以直接安装了。 2.安装docker: yum -y install docker 如果不是root账号&#xff0c;使用 sudo 以管理员身份运行 sudo yum -y install …

CentOS 7 安装 MySQL5.7

CentOS 7 安装 MySQL5.7 安装wget&#xff1a; yum -y install wget进入/usr/local/下&#xff1a; cd /usr/local/新建mysqlrpm文件夹&#xff1a; mkdir mysqlrpm进入mysqlrpm文件夹下&#xff1a; cd /usr/local/mysqlrpm/下载mysql包安装源&#xff1a; wget http://…

MySQL单表查询与多表查询

目录 一、单表查询 ​编辑 1、显示所有职工的基本信息。 ​编辑2、查询所有职工所属部门的部门号&#xff0c;不显示重复的部门号。 ​编辑3、求出所有职工的人数。 4、列出最高工和最低工资。 ​编辑5、列出职工的平均工资和总工资。 ​编辑6、创建一个只有职…

FreeRTOS两个死机原因(中断调用接口异常)【杂记】

1、中断回调函数中没有使用中断级API (xxFromISR) 函数 xSemaphoreGiveFromISR(uart_busy,&HighterTask);----正确 xSemaphoreGive(uart_busy);-----错误2、比configMAX_SYSCALL_INTERRUPT_PRIORITY优先级高的中断函数中使用了FreeRTOS的函数 3、临界代码保护后不可调用os…

安全基础 --- MySQL数据库的《锁》解析

MySQL的ACID &#xff08;1&#xff09;ACID是衡量事务的四个特性 原子性&#xff08;Atomicity&#xff0c;或称不可分割性&#xff09;一致性&#xff08;Consistency&#xff09;隔离性&#xff08;Isolation&#xff09;持久性&#xff08;Durability&#xff09; &…

(一)TinyWebServer的环境配置与运行

Linux下C轻量级Web服务器&#xff0c;项目来源于&#xff1a;TinyWebServer 配置环境&#xff08;为下载代码&#xff0c;编译运行做准备&#xff09; 1. 安装VMware VMware官网 选择产品&#xff0c;点击Workstation Pro 下载试用版&#xff08;注&#xff1a;需要在官网注册…

Java自学(三)面向对象编程

目录 什么是面向对象 举例 this关键字和构造器 实体类 电影小案例 什么是面向对象 我们日常生活中谈到一个事物&#xff0c;总会描述它的性质与行为&#xff0c;这个事物也就是 ”对象”。比如一个学生对象&#xff0c;他的属性有姓名、学号、成绩......他的行为有上课、…

【C++】C++模板进阶 —— 非类型模板参数、模板的特化以及模板的分离编译

​ ​&#x1f4dd;个人主页&#xff1a;Sherry的成长之路 &#x1f3e0;学习社区&#xff1a;Sherry的成长之路&#xff08;个人社区&#xff09; &#x1f4d6;专栏链接&#xff1a;C学习 &#x1f3af;长路漫漫浩浩&#xff0c;万事皆有期待 上一篇博客&#xff1a;【C】C多…

史玉柱复出一年:巨人股权第三次被冻结,力推AI+游戏

大数据产业创新服务媒体 ——聚焦数据 改变商业 一则股权冻结信息&#xff0c;又一次将复出一年的史玉柱推上风口浪尖。 天眼查APP显示&#xff0c;巨人投资近日新增一则股权冻结信息&#xff0c;被执行人为史玉柱&#xff0c;冻结股权数额1.14亿元&#xff0c;冻结期限为三年…

Visual Studio 中将TAB设置为空格

将TAB设置为空格的原因很多&#xff0c;其中一点是为了统一不同编译器对TAB的解释&#xff0c;防止代码风格在不同编译器下不一致等。 在菜单中选择: 工具-->选项-->文本编辑器--->所有语言-->制表符 在窗口中选择&#xff0c;制表符大小和缩进大小都选为4&#xf…

【从入门到起飞】JavaSE—Stream流

&#x1f38a;专栏【JavaSE】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【如愿】 &#x1f970;欢迎并且感谢大家指出我的问题 文章目录 &#x1f354;Stream流的作用&#x1f354;Stream流的使用步骤&#x1f384;获取Strea…

机器人过程自动化(RPA)入门 7. 处理用户事件和助手机器人

在UiPath中,有两种类型的Robot用于自动化任何流程。一个是后台机器人,它在后台工作。它独立工作,这意味着它不需要用户的输入或任何用户交互。另一个是前台机器人,也被称为助理机器人。 本章介绍前台机器人。在这里,我们将了解自动化过程中通过简单按键、单击鼠标等触发事…

代码随想录算法训练营第四十六天 | 动态规划 part 8 | 139.单词拆分、多重背包、背包问题总结

目录 139.单词拆分思路代码 多重背包背包问题总结 139.单词拆分 Leetcode 思路 dp[i] : 字符串长度为i的话&#xff0c;dp[i]为true&#xff0c;表示可以拆分为一个或多个在字典中出现的单词。如果确定dp[j] 是true&#xff0c;且 [j, i] 这个区间的子串出现在字典里&#xf…