Windows部署redis

Windows部署redis 单机、集群、哨兵模式

发布:2023-10-29     分类:工具使用     标签:Redis 阅读:144     评论:0

Rdis有哪些配置方式,及各自优缺点

Redis支持多种不同的数据结构和模式,以满足不同的使用场景。以下是一些常见的Redis配置和模式示例以及详解:

单机模式:

Redis的最简单配置是单机模式,其中一个Redis服务器在一个端口上运行,没有数据复制或分片。这种模式通常用于开发和小规模应用。

示例配置(redis.conf):

port 6379

优点:

简单易用。
适用于小型项目和开发环境。

缺点:

单点故障。
数据限制于单个服务器的内存。

主从复制模式:

主从复制模式包括一个主服务器和一个或多个从服务器。主服务器负责写入和读取,而从服务器则复制主服务器的数据。这种模式用于提高读取性能和数据冗余。

示例配置(redis.conf):

port 6379  # 主服务器
slaveof 127.0.0.1 6380  # 从服务器连接到主服务器

优点:

提高读取性能。
数据冗余和备份。
主服务器宕机时从服务器可提供读取。

缺点:

主服务器单点故障。
主从同步延迟。

哨兵模式:

Redis Sentinel 是用于监控和管理Redis主从复制环境的工具。它自动检测主服务器故障并执行故障转移。

示例配置(sentinel.conf):

sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000

优点:

自动故障检测和转移。
高可用性。

缺点:

需要配置和管理多个哨兵。
响应时间可能较长。

集群模式:

Redis集群模式用于在多个Redis节点之间分配数据,提供高可用性和水平扩展。它适用于大规模应用。

示例配置(redis.conf):

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-require-full-coverage yes

优点:

高可用性和可扩展性。
数据分片和负载均衡。

缺点:

配置和管理复杂。
需要多个节点。

这些示例涵盖了Redis的一些常见配置和模式。根据你的应用需求和性能要求,可以选择适合你的配置和模式。请注意,实际生产环境中可能需要更多配置和安全性措施。

Redis集群模式和哨兵模式的区别

Redis集群模式和哨兵模式经常被混淆,因此这里说下它们的区别。

Redis集群模式和哨兵模式是用于不同目的的两种不同的Redis部署方式。

Redis集群模式

Redis集群模式用于实现高可用性和数据分片。它将数据分散存储在多个Redis节点上,并使用分布式哈希槽(hash slot)来管理和路由数据。主要特点如下:

数据分片:数据被分为多个哈希槽,分散存储在多个节点上。
自动故障转移:当节点失败时,集群自动进行主节点的切换和故障转移。
可扩展性:可以动态地增加或删除节点,以扩展集群的容量和吞吐量。
读写分离:集群允许从节点执行只读操作,分担主节点的负载。

Redis集群模式适合于需要高可用性和水平扩展性的场景。它适用于大规模数据存储和高并发读写的应用。

Redis哨兵模式:

Redis哨兵模式用于监控和管理Redis主节点的高可用性方案。它通过运行哨兵进程来监视主节点的状态,并在主节点失效时自动进行故障转移。主要特点如下:

自动故障检测和转移:哨兵监控主节点的健康状态,当主节点失效时,自动选择一个从节点提升为新的主节点。
配置管理:哨兵负责维护主节点的配置信息,并在故障转移时更新相关配置。
故障恢复:哨兵会尽力使主节点恢复正常,一旦恢复,它将重新加入到集群中。

Redis哨兵模式适用于需要监控和自动故障转移的场景,以确保Redis服务的高可用性。它适用于较小规模的Redis部署,通常用于单个主节点的环境。

总的来说,Redis集群模式适用于需要数据分片和水平扩展的场景,而Redis哨兵模式适用于需要高可用性和自动故障转移的场景。选择适合你需求的部署方式取决于你的应用程序对可用性、扩展性和数据分布的要求。

Windows部署redis集群模式

一. 安装

1. 安装环境

操作系统: win7
redis版本:redis-5.0.10

2. 安装包

redis官方没有Windows版本安装包,需在开源的GitHub下载

下载地址:https://github.com/tporadowski/redis/releases
安装包:Redis-x64-5.0.10.zip

redis集群模式至少需要3主3从共集成6个redis节点

在D盘创建redis集群目录redis-cluster,下载安装包后解压到该目录并复制5次,分别重命名为 redis-7001 至 redis-7006

二. 配置

1. 配置文件

修改所有redis目录下的配置文件:redis.windows.conf

注意:不同节点的端口号和集群配置文件不同,其他配置都相同 端口号:将各个节点端口号分别修改为7001-7006 集群配置文件:将文件名后面的6379改成各自节点的端口号

# 修改绑定IP,支持远程登录
bind 0.0.0.0 
# 修改端口号,将各个节点端口号分别修改为7001-7006
port 7001 # 修改密码,6个节点的密码必须一致
# 不设置密码也可以,登录时不需要密码
requirepass 123456 
# 修改所属主节点密码
# 若未设置密码则不需要修改
masterauth 123456 
# 开启集群模式
cluster-enabled yes 
# 集群超时配置
cluster-node-timeout 15000 
# 集群配置文件
# 集群部署成功后会在该redis目录生成该文件
cluster-config-file nodes-7001.conf 
# 开启AOF持久化
# redis默认使用RDB持久化,将该配置修改为yes则使用AOF持久化
appendonly yes

2. 启动脚本

2.1 一个文件

建立名字为RedisCluster.bat的脚本文件,后缀是bat。将下面内容复制进去,一次性全部启动起来。 将路径改为redis位置的真实路径。

start "Redis7001" cmd  /c "cd /d D:\File\Apache\Redis\cluster\Redis-7001&&redis-server.exe redis.windows-service.conf"

start "Redis7002" cmd  /k "cd /d D:\File\Apache\Redis\cluster\Redis-7002&&redis-server.exe redis.windows-service.conf"

start "Redis7003" cmd  /k "cd /d D:\File\Apache\Redis\cluster\Redis-7003&&redis-server.exe redis.windows-service.conf"

start "Redis7004" cmd  /k "cd /d D:\File\Apache\Redis\cluster\Redis-7004&&redis-server.exe redis.windows-service.conf"

start "Redis7005" cmd  /k "cd /d D:\File\Apache\Redis\cluster\Redis-7005&&redis-server.exe redis.windows-service.conf"

start "Redis7006" cmd  /k "cd /d D:\File\Apache\Redis\cluster\Redis-7006&&redis-server.exe redis.windows-service.conf"
2.2 分多个文件

直接在redis-cluster目录下创建6个bat脚本,以 start-7001.bat 至 start-7006命名,分别启动6个redis节点

start-7001.bat

title redis-cluster-7001 cd ./redis-7001redis-server redis.windows.conf

start-7002.bat

title redis-cluster-7002 cd ./redis-7002redis-server redis.windows.conf

start-7003.bat

title redis-cluster-7003 cd ./redis-7003redis-server redis.windows.conf

start-7004.bat

title redis-cluster-7004 cd ./redis-7004redis-server redis.windows.conf

start-7005.bat

title redis-cluster-7005 cd ./redis-7005redis-server redis.windows.conf

start-7006.bat

title redis-cluster-7006 cd ./redis-7006redis-server redis.windows.conf

三. 创建集群

首先双击6个bat脚本启动所有redis节点

然后到任意一个节点的reids目录下,启动cmd控制台。使用下面命令创建集群:

# 无密码创建集群命令
redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1 
# 有密码创建集群命令
redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1   -a 123456

执行该命令后提示:Can I set the above configuration? (type 'yes' to accept): 

输入yes,回车,redis集群创建成功,各个redis节点下面会生成集群配置文件,如:nodes-7001.conf,nodes-7002.conf

所有redis节点关闭后重新启动,无需再执行该命令创建集群

四. 测试

登录redis集群的任意一个节点即可 一定要加上-c,不然使用get等命令时节点之间是无法自动跳转的

# 无密码登录
redis-cli -c -h 127.0.0.1 -p 7001
# 密码登录
redis-cli -c -h 127.0.0.1 -p 7001 -a 123456

cluster集群命令

# 查看当前节点信息
cluster info
# 查看当前集群信息
cluster nodes

Windows10下Redis5.0.14 搭建哨兵环境

记录下redis哨兵模式的配置。Redis支持多种不同的数据结构和模式,以满足不同的使用场景。部署环境:

服务环境:windows10 单机部署
Redis版本:Redis-x64-5.0.14.1

一. 配置主从模式

1. 下载 Redis

官网下载为了保证 Redis 的高可用性,可以采用 Redis 实例主从配置的方式,但主从配置方式天然存在主服务单机故障就导致整个系统瘫痪的致命问题。

2. 配置 Redis 主从

2.1 一主两从

redis-6379.windows.conf

bind 0.0.0.0
port 6379
requirepass 123456

redis-6380.windows.conf

bind 0.0.0.0
port 6380
requirepass 123456
masterauth 123456
replicaof 127.0.0.1 6379

redis-6381.windows.conf

bind 0.0.0.0
port 6381
requirepass 123456
masterauth 123456
replicaof 127.0.0.1 6379
2.2 启动

在各自配置目录下启动。

redis-server.exe redis-6379.windows.conf
redis-server.exe redis-6380.windows.conf
redis-server.exe redis-6381.windows.conf
2.3 测试
redis-cli.exe -h 127.0.0.1 -p 6379

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6380,state=online,offset=98,lag=0
slave1:ip=127.0.0.1,port=6381,state=online,offset=98,lag=0
master_replid:677245c1292f2244597f22a12c85730f236fa707
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:98
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:98

redis主从配置

二. 配置 Redis 哨兵

为了解决主从配置缺陷这个问题,Redis2.4 开始支持 哨兵机制,Redis 2.8 中正式引入。

哨兵机制 的思想很简单,再 Redis 运行服务外,专门运行一个哨兵服务,监测主服务是否发生故障,一旦发生,从服务自动升级为主服务,如果主服务恢复了,自动变为从服务。

主服务也可以配置一个哨兵服务,如果挂掉,重启后可以充当为一个从服务哨兵。

1.创建三个哨兵文件

创建三个配置文件

sentinel-26379.windows.conf

bind 127.0.0.1
# 当前Sentinel服务运行的端口
port 26379
protected-mode no
logfile "sentinel-26379.log"
# 哨兵监听的主服务器 后面的1表示主机挂掉以后进行投票,只需要2票就可以从机变主机
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster 123456

sentinel-26380.windows.conf

bind 127.0.0.1
# 当前Sentinel服务运行的端口
port 26380
protected-mode no
logfile "sentinel-26380.log"
# 哨兵监听的主服务器 后面的1表示主机挂掉以后进行投票,只需要2票就可以从机变主机
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster 123456

sentinel-26381.windows.conf

bind 127.0.0.1
# 当前Sentinel服务运行的端口
port 26381
protected-mode no
logfile "sentinel-26381.log"
# 哨兵监听的主服务器 后面的1表示主机挂掉以后进行投票,只需要2票就可以从机变主机
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel auth-pass mymaster 123456

注意:

1. 配置 logfile "sentinel-26381.log" 记录哨兵启动日志,这样可以迅速定位问题
2. 在配置sentinel auth-pass mymaster 123456 密码时,必须放在sentinel monitor mymaster 127.0.0.1 6379 2之后,否则会报找不到mymaster服务,因为没有定义,得先定义名称了,才能找到。

2. 启动哨兵

redis-server.exe sentinel-26379.windows.conf --sentinel
redis-server sentinel-26380.windows.conf --sentinel
redis-server sentinel-26381.windows.conf --sentinel

3. 验证

验证是否成功,看到最后 status=ok 说明成功了

 127.0.0.1:26379> info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3

4. 演示故障自动切换

关掉主节点 6379,等一会,就会发现哨兵切换了主节点,重新启动 6379 节点,它就变成了从节点了

redis-cli.exe -h 127.0.0.1 -p 6379

127.0.0.1:6379> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6380
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:56440
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:8f282577c2e4ddeb9794f88757e5dad7870e5e6d
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:56440
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:55487
repl_backlog_histlen:954

Redis如何设置密码

这里简单介绍一下redis如何设置密码,redis密码设置有三种种方式,一种在配置文件中设置密码,第二种在启动 Redis 时通过命令行参数设置密码,第三种使用 CONFIG 命令设置密码

一. 在配置文件中设置密码

第一步:打开 Redis 的配置文件。在大多数情况下,Redis 的配置文件名为 redis.conf,可以在 Redis 的安装目录中找到。

第二步:在配置文件中,找到 # requirepass 这一行。如果该行被注释掉了(以 # 开头),则需要取消注释。

第三步:在 # requirepass 后面的空格处,输入想要设置的密码。例如,requirepass YourPassword。

第四步:保存配置文件并重新启动 Redis 服务器,以使新的密码设置生效。

二. 在启动 Redis 时通过命令行参数设置密码

可以在启动 Redis 服务器时通过命令行参数 -a 或 --requirepass 来设置密码。例如:

redis-server --requirepass YourPassword

三. 使用 CONFIG 命令设置密码

在已经连接到 Redis 服务器的情况下,可以使用 CONFIG 命令来设置密码。使用命令来设置密码。

config set requirepass 123456

无论使用哪种方式,设置密码后,连接到 Redis 服务器时都需要提供正确的密码才能进行操作。

注意事项:

设置密码后,请妥善保存密码,并确保密码的安全性。
如果使用 Redis 的集群模式,需要在每个节点上设置相同的密码。
当密码设置后,通过 CONFIG 命令或修改配置文件来更改密码。

请注意,以上方式是基于 Redis 的标准配置。如果你使用的是 Redis 的特定版本或扩展,可能会有其他方式来设置密码。建议参考相应版本的文档或官方指南以了解更多详细信息。

更新:2026-05-01
点击评论
评论区