2025年redis 6380端口(redis16379端口)

redis 6380端口(redis16379端口)哨兵一般是 一主两从 去中心化则是三主三从 由于我开的虚拟机过多所以 内存满了 先清虚拟机内存 你们可以跳过清理这一步骤 free m 查看总内存 以及已用和可用内存 1 清理页面缓存 echo 1 gt proc sys vm drop caches 这个命令会释放页面缓存 2 清理 dentries 和 inodes echo 2 gt

大家好,我是讯享网,很高兴认识大家。



哨兵一般是 一主两从,去中心化则是三主三从

由于我开的虚拟机过多所以


讯享网

内存满了 先清虚拟机内存 你们可以跳过清理这一步骤

free -m 查看总内存 以及已用和可用内存

1.清理页面缓存

echo 1 > /proc/sys/vm/drop_caches

这个命令会释放页面缓存。

2.清理 dentries 和 inodes

echo 2 > /proc/sys/vm/drop_caches

这个命令会清除目录项和索引节点,这通常用于释放由文件元数据占用的内存。

3.清理所有缓存

echo 3 > /proc/sys/vm/drop_caches

这个命令会清除所有缓存,包括页面缓存、目录项和索引节点。

请注意,这些操作会暂时降低系统性能,因为缓存被清除后,系统需要重新构建缓存以优化性能。通常,除非确切知道在做什么,并且有特定的需求,否则不建议手动清理缓存。

另外,free -m 命令显示的 available 内存是内核估计的,它包括了未被使用的缓存内存,所以即使 free 列显示的内存不多,系统可能仍然有足够的可用内存。

在的情况下,的系统内存使用看起来是正常的,没有迹象表明需要清理缓存。

清理缓存后

等待一小段时间,让系统有机会重新分配内存,然后再次执行 free -m 查看内存使用情况

关于清理缓存的频率,这主要取决于的系统使用情况和需求:

·对于大多数系统:通常不需要定期清理缓存。Linux 内核设计有很好的内存管理机制,能够自动处理缓存的使用,以优化系统性能。手动清理缓存可能会干扰内核的优化决策。

·特定情况:如果的系统有特殊需求,比如在进行内存密集型任务之前,可能希望释放尽可能多的内存给当前任务使用。在这种情况下,可以在任务开始前清理缓存。

·监控和自动清理:如果确实需要监控缓存使用情况并考虑自动清理,可以编写脚本定期检查内存使用情况,并在特定条件下执行清理命令。但这种情况比较少见,因为通常不推荐这样做。

make install 会将 Redis 的可执行文件(例如 redis-server  redis-cli)安装到 /usr/local/bin/ 目录下。这意味着可以在任何地方通过命令行直接调用这些命令。

可执行文件位置:

redis-server: /usr/local/bin/redis-server

redis-cli: /usr/local/bin/redis-cli

配置文件和数据目录:

配置文件通常需要手动创建,可以在任意位置存放,例如 /etc/redis/redis.conf

数据目录可以根据的需求设置,通常可以放在 /var/lib/redis/ 或者其他地方

在使用 redis-server /etc/redis/redis.conf 启动 Redis 服务器后,退出或停止 Redis 服务器,有以下几种方法:

1. 使用 Ctrl+C

如果是在终端中直接运行 redis-server 命令,通常可以通过按 Ctrl+C 来停止 Redis 服务器。这会发送一个中断信号,导致 Redis 实例正常关闭。

2. 使用 Redis 客户端命令

如果希望通过 Redis 客户端命令停止服务器,可以使用以下步骤:

打开一个新的终端窗口。

连接到 Redis 服务器:

redis-cli -h 127.0.0.1 -p 6379

如果的 Redis 服务器在其他主机或端口上,请相应地调整 -h  -p 参数。

Redis CLI 中输入以下命令以关闭服务器:

SHUTDOWN

3. 使用系统服务管理(如果以服务方式运行)

如果是通过系统服务(如 systemd)启动 Redis 服务器的,可以使用以下命令停止它:

sudo systemctl stop redis

4. 使用 kill 命令

如果以上方法都无法工作,可以通过查找进程 ID (PID) 并使用 kill 命令强制停止 Redis 服务器:

查找 Redis 进程:

ps aux | grep redis-server

找到进程的 PID(通常是第一列),然后使用 kill 命令:

sudo kill <PID>

如果进程没有停止,可以使用更强制的方法:

sudo kill -9 <PID>

总结

最常见的退出方法是直接在运行 redis-server 的终端使用 Ctrl+C。如果是以服务方式运行,则使用 systemctl stop redis 命令。确保在关闭 Redis 之前,

1. 安装Redis哨兵模式

假设已经下载了`redis-6.2.7.tar.gz`包并将其解压缩,现在可以在每台虚拟机上进行安装。

# 1.1 解压并编译Redis

tar xzf redis-6.2.7.tar.gz

cd redis-6.2.7

make

# 1.2 安装

sudo make install

2. 配置Redis主从和哨兵模式

2.1 配置Redis主从复制

在每台虚拟机上创建一个配置文件`redis.conf`。 /etc/redis/redis.conf

mkdir /etc/redis

mkdir /var/lib/redis

vim /etc/redis/redis.conf

主节点配置(10.8.165.8)

bind 0.0.0.0

port 6379

dir /var/lib/redis

appendonly yes

# 关闭保护模式

protected-mode no

从节点配置(10.8.165.9和10.8.165.26

# 允许所有ip

bind 0.0.0.0

# 端口可改

port 6380

dir /var/lib/redis

replicaof 10.8.165.8 6379

appendonly yes

# 关闭保护模式

protected-mode no

2.2 配置哨兵(Sentinel

在每台虚拟机上创建一个哨兵配置文件`sentinel.conf`

这两个文件可以自定义位置,我放在了新建的目录 /etc/redis/里面

/etc/redis/sentinel.conf  /etc/redis/redis.conf

哨兵配置(所有节点都相同)

port 26379

dir /tmp

sentinel monitor mymaster 10.8.165.8 6379 2

sentinel down-after-milliseconds mymaster 5000

sentinel failover-timeout mymaster 60000

sentinel parallel-syncs mymaster 1

2.3 启动Redis服务器

redis-server /etc/redis/redis.conf

先启动主 挨个启动从。

然后出现大段空白

Ctrl C 退出

2.4 启动哨兵进程

redis-sentinel /path/to/sentinel.conf

先启动主 挨个启动从。

然后出现大段空白

Ctrl C 退出

3. 持久化配置与性能调优

持久化是Redis中的一个重要方面,主要有两种方式:RDBAOF

3.1 RDB(Redis Database Backup

RDB会在指定的时间间隔内生成数据库的快照,优点是适合大数据恢复,但会有一定的数据丢失风险。

在`redis.conf`中添加:

save 900 1 # 每900秒至少有1key发生变化时生成RDB快照

save 300 10 # 每300秒至少有10key发生变化时生成RDB快照

save 60 10000 # 每60秒至少有10000key发生变化时生成RDB快照

3.2 AOF(Append Only File

AOF会记录每个写操作,可以更细粒度地恢复数据,但文件会比较大,写入性能相对较低。

在`redis.conf`中添加:

appendonly yes # 开启AOF持久化

appendfilename “appendonly.aof”

appendfsync everysec # 每秒同步一次AOF文件(权衡了性能和数据安全)

3.3 同时开启RDBAOF

可以同时开启RDB和AOF以获得数据恢复和写入性能的平衡:

save 900 1

save 300 10

save 60 10000

appendonly yes

appendfilename “appendonly.aof”

appendfsync everysec

4.性能调优建议

1. 最大内存限制:设置Redis实例的最大内存使用,防止系统内存不足。

maxmemory 4gb

maxmemory-policy allkeys-lru # 当达到maxmemory时,使用LRU策略删除key

2. 后台线程数:适当调整后台线程数来提高写入性能。

io-threads-do-reads no # 默认关闭IO线程读取功能,可以根据需要打开

io-threads 4 # 设置IO线程数为4,可以根据机器的CPU核心数进行调整

3. TCP参数优化:调整网络参数以提高传输性能。

tcp-keepalive 60 # 设置TCP连接的keepalive时间为60

4. 日志级别:适当调整日志级别以减少磁盘IO

logfile “/var/log/redis.log”

loglevel notice # 设置日志级别为notice,以减少磁盘IO负担

示例配置文件

redis.conf里面

bind 0.0.0.0

port 6379

dir /var/lib/redis

# RDB持久化配置

save 900 1

save 300 10

save 60 10000

# AOF持久化配置

appendonly yes

appendfilename “appendonly.aof”

appendfsync everysec

# 性能调优配置

maxmemory 4gb

maxmemory-policy allkeys-lru

tcp-keepalive 60

logfile “/var/log/redis.log”

loglevel notice

sentinel.conf里面

port 26379

dir /tmp

# 哨兵监控配置

sentinel monitor mymaster 10.8.165.8 6379 2

sentinel down-after-milliseconds mymaster 5000

sentinel failover-timeout mymaster 60000

sentinel parallel-syncs mymaster 1

5.故障转移过程详解:

当哨兵检测到主服务器 s1:6379 不可用时,会自动发起故障转移。假设 s2:6380 被提升为新的主服务器:

哨兵会在 s2:6380 上执行 SLAVEOF NO ONE 将其提升为主服务器。

其他从服务器(如 s3.102:6381)会被重新配置为从新的主服务器 s2:6380 进行同步。

客户端可以通过哨兵 API 获取当前活跃的主服务器地址,并进行重新连接。

Redis 支持两种持久化机制:

RDB (Redis Database File) AOF (Append Only File)。可以单独使用其中一种,也可以同时开启这两种持久化方式。

RDB 持久化配置

RDB 持久化会在指定的时间间隔内生成数据快照,将数据写入磁盘。以下是一些常用的 RDB 配置:

# RDB 文件的保存路径

dir /var/lib/redis

# RDB 文件名

dbfilename dump.rdb

# 配置快照的触发条件

# `save` 指令中指定:在 n 秒内有 m 次写操作,就触发 RDB 快照

save 900 1 # 900 秒内如果有至少 1 次写操作,就触发快照

save 300 10 # 300 秒内如果有至少 10 次写操作,就触发快照

save 60 10000 # 60 秒内如果有至少 10000 次写操作,就触发快照

AOF 持久化配置

AOF 持久化会将每次写操作记录在一个日志文件中,实现更高的数据持久性。以下是一些常用的 AOF 配置:

# 启用 AOF 持久化

appendonly yes

# AOF 文件名

appendfilename “appendonly.aof”

# AOF 文件的刷新策略

# appendfsync always # 每次写操作都会立即同步到 AOF 文件(最安全,但性能较差)

# appendfsync everysec # 每秒同步一次(默认选择,权衡了性能和安全)

# appendfsync no # 不进行同步,由操作系统决定何时同步(性能**,但最不安全)

appendfsync everysec

# 是否在重写 AOF 文件时删除旧的、无用的命令

no-appendfsync-on-rewrite no

# AOF 手动重写触发条件

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

同时开启 RDB AOF

可以在 Redis 配置文件中同时开启 RDB AOF 持久化机制,这样在某种机制失效时,另一种机制可以提供数据的恢复。如:

# RDB 配置

dir /var/lib/redis

dbfilename dump.rdb

save 900 1

save 300 10

save 60 10000

# AOF 配置

appendonly yes

appendfilename “appendonly.aof”

appendfsync everysec

no-appendfsync-on-rewrite no

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

Redi持久化后日常操作

Redis 启动后,可以通过 Redis 命令与持久化机制进行交互:

手动触发 RDB 快照:`BGSAVE` 命令会在后台生成 RDB 快照。

手动触发 AOF 重写:`BGREWRITEAOF` 命令会在后台对 AOF 文件进行重写。

恢复数据

Redis 启动时,它会根据以下顺序恢复数据:

1. 如果配置了 AOF 并且 AOF 文件存在,Redis 会优先使用 AOF 文件恢复数据。

2. 如果没有配置 AOF 或者 AOF 文件不存在,Redis 会使用 RDB 文件恢复数据。

总结

同时开启 RDB AOF 可以提供更加可靠的数据持久化方案。RDB 提供了一种数据快照的方式,适合用于数据恢复的基线,而 AOF 通过记录每次写操作提供了更加细粒度的数据持久性。两者结合使用,可以在系统性能和数据安全性之间取得平衡。

性能调优

对Redis哨兵(Sentinel)模式进行性能调优是保证系统高可用性和高性能的关键。

常见的性能调优策略:

1. 配置优化

#Redis服务器配置

1. 内存管理:确保Redis实例的内存配置合理,避免过多的内存使用导致系统性能下降。使用 `maxmemory` 配置来限制Redis使用的最大内存。

maxmemory 4gb

maxmemory-policy noeviction

2. 持久化配置:选择合适的RDBAOF策略,平衡性能和数据持久性。

vim /etc/redis/redis.conf

# RDB配置

save 900 1

save 300 10

save 60 10000

# AOF配置

appendonly yes

appendfsync everysec

no-appendfsync-on-rewrite no

auto-aof-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

3. 网络配置:调整网络缓冲区大小,减少网络延迟。

vim /etc/redis/redis.conf

# 网络配置调整网络缓冲区

tcp-backlog 511

tcp-keepalive 300

#哨兵配置

1. 故障检测和切换:调整哨兵的监控和故障切换参数。

vim /etc/redis/sentinel.conf

sentinel monitor mymaster主机IP 6379 2

sentinel down-after-milliseconds mymaster 5000

sentinel failover-timeout mymaster 60000

sentinel parallel-syncs mymaster 1

2. 哨兵数量:至少配置3个哨兵节点,以保证高可用性。

2. 系统资源优化

#CPU和内存

1. 多核CPU:利用多核CPU来处理Redis的高并发请求。可以通过配置多个Redis实例来更好地利用多核资源。

2. 内存优化:尽量使用物理内存,避免使用交换分区(swap),因为交换分区性能较差。

vm.overcommit_memory = 1

#磁盘I/O

1. SSD:使用SSD替代HDD,以提高磁盘I/O性能。

2. 文件系统:选择合适的文件系统(如ext4),并进行优化。

mount -o noatime,nodiratime,barrier=0 /dev/sdX /mnt/redis

3. 网络优化

1. 网络带宽:确保网络带宽足够,避免拥塞。

2. 网络延迟:减少网络延迟,使用低延迟网络硬件和配置。

3. 连接优化:合理设置客户端和服务器的连接数和超时。

timeout 0

tcp-keepalive 300

4. 客户端优化

1. 连接池:使用连接池来减少连接建立和释放的开销。

2. 批量操作:使用批量操作(如Pipeline)来减少网络往返次数,提高吞吐量。

3. Lua脚本:使用Lua脚本,将多个命令合并为一个命令,减少网络延迟和命令处理时间。

5. 监控与日志

1. 监控:使用监控工具(如PrometheusGrafana)监控Redis和哨兵节点的健康和性能。

2. 日志:启用和分析日志,排查性能瓶颈和异常情况。

logfile /var/log/redis/redis-server.log

loglevel notice

6. 定期维护

1. 数据备份:定期备份Redis数据,确保数据安全。

2. 重启与升级:定期重启Redis服务器和哨兵节点,应用最新的补丁和版本。

通过以上策略,可以有效提升Redis哨兵模式集群的性能和稳定性。在实际应用中,需根据具体的业务场景和需求,灵活调整配置和策略。

给我点点关注  和点点赞   点点收藏吧给我点点关注  和点点赞   点点收藏吧

小讯
上一篇 2025-06-08 10:03
下一篇 2025-04-15 19:59

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/199098.html