苏州做网站的公司有哪些,扬中网站建设 优帮云,海城做网站公司,wordpress返回旧编辑器redis主从从#xff0c;redis-7.0.13 下载redis安装redis安装redis-7.0.13过程报错1、没有gcc#xff0c;报错2、没有python3#xff0c;报错3、[adlist.o] 错误 127 解决安装报错安装完成 部署redis 主从从结构redis主服务器配置redis启动redis登录redisredis默认是主 redi… redis主从从redis-7.0.13 下载redis安装redis安装redis-7.0.13过程报错1、没有gcc报错2、没有python3报错3、[adlist.o] 错误 127 解决安装报错安装完成 部署redis 主从从结构redis主服务器配置redis启动redis登录redisredis默认是主 redis从服务器1redis从服务器2 部署3哨兵 redis-sentinel未成功故障切换 哨兵配置文件 默认文件redis.conf 默认文件 下载redis
下载 |雷迪斯 (redis.io) 链接https://download.redis.io/releases/redis-7.0.13.tar.gz?_gl11itkjl8_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 -stdc99 -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 9月 23 18:01 bin
drwxr-xr-x 3 root root 24 9月 23 18:01 include
drwxr-xr-x 4 root root 64 9月 23 18:01 lib
drwxr-xr-x 3 root root 17 9月 23 18:01 share#配置python环境变量
vim /etc/profile
export PYTHON_HOME/usr/local/tools
export PATH$PYTHON_HOME/bin:$PATHsource /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 MALLOClibc
make MALLOClibc
#编译成功CC cli_common.oLINK redis-cliCC redis-benchmark.oLINK redis-benchmarkINSTALL redis-check-rdbINSTALL redis-check-aofHint: Its 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 9月 23 18:24 src/redis-cli
ll src/redis-server
-rwxr-xr-x 1 root root 7018488 9月 23 18:24 src/redis-server
ll src/redis-sentinel
-rwxr-xr-x 1 root root 7018488 9月 23 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.bakln -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-climkdir -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
[rootredis2 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:6379redis默认是主 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:0redis从服务器1
cd /data/redis/redis-7.0.13
cp redis.conf redis.conf.bakvim 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.bakvim 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#是否禁止在运行时通过脚本重新配置Sentinelyes表示禁止
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两种方式 命令行 redis-server /path/to/your/redis.conf 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以守护进程方式运行如果是yesRedis将在后台运行
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#是否设置进程标题如果设置为yesRedis会使用一个包含有用信息的标题
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)