PIGSTY

管理

运行管理任务

这里是 Redis 的一些常见管理任务。更多详情请查看 FAQ: Redis


初始化 Redis

初始化集群/节点/实例

# 在组 <cluster> 上初始化所有 redis 实例
./redis.yml -l <cluster>      # 初始化 redis 集群

# 初始化 redis 节点
./redis.yml -l 10.10.10.10    # 初始化 redis 节点

# 初始化一个特定的 redis 实例 10.10.10.11:6379
./redis.yml -l 10.10.10.11 -e redis_port=6379 -t redis

您也可以使用包装脚本:

bin/redis-add redis-ms          # 创建 redis 集群 'redis-ms'
bin/redis-add 10.10.10.10       # 创建 redis 节点 '10.10.10.10'
bin/redis-add 10.10.10.10 6379  # 创建 redis 实例 '10.10.10.10:6379'

移除 Redis

移除集群/节点/实例

# 移除集群 `redis-test`
redis-rm.yml -l redis-test

# 移除集群 `redis-test`,并卸载软件包
redis-rm.yml -l redis-test -e redis_uninstall=true

# 移除 redis 节点 10.10.10.13 上的所有实例
redis-rm.yml -l 10.10.10.13

# 移除一个特定的实例 10.10.10.13:6379
redis-rm.yml -l 10.10.10.13 -e redis_port=6379

您也可以使用包装脚本:

bin/redis-rm redis-ms          # 移除 redis 集群 'redis-ms'
bin/redis-rm 10.10.10.10       # 移除 redis 节点 '10.10.10.10'
bin/redis-rm 10.10.10.10 6379  # 移除 redis 实例 '10.10.10.10:6379'

重新加载 Redis

您可以部分运行 redis.yml 任务来重新配置 redis。

./redis.yml -l <cluster> -t redis_config,redis_launch

请注意,redis 无法在线重新加载;您必须重启 redis 才能使配置生效。


使用 Redis CLI

使用 redis-cli 访问 redis 实例:

$ redis-cli -h 10.10.10.10 -p 6379 # <--- 使用主机和端口连接
10.10.10.10:6379> auth redis.ms    # <--- 使用密码验证
OK
10.10.10.10:6379> set a 10         # <--- 设置一个键
OK
10.10.10.10:6379> get a            # <--- 获取一个键
"10"

Redis 还有一个 redis-benchmark,可用于基准测试和在 redis 服务器上生成负载:

redis-benchmark -h 10.10.10.13 -p 6379

复制 Redis

https://redis.io/commands/replicaof/

# 将 redis 实例提升为主节点
> REPLICAOF NO ONE
"OK"

# 使 redis 实例成为另一个实例的副本
> REPLICAOF 127.0.0.1 6799
"OK"

使用 Sentinel 的高可用

您必须使用您的 redis sentinel 手动为 redis 独立主从集群启用 HA。

以 4 节点沙盒为例,redis sentinel 集群 redis-meta 用于管理 redis-ms 独立集群。

# 对于每个 sentinel,使用以下方式将 redis 主节点添加到 sentinel:
$ redis-cli -h 10.10.10.11 -p 26379 -a redis.meta
10.10.10.11:26379> SENTINEL MONITOR redis-ms 10.10.10.10 6379 1
10.10.10.11:26379> SENTINEL SET redis-ms auth-pass redis.ms      # 如果启用了身份验证,必须配置密码

如果您希望从 sentinel 中移除 redis 主节点,请使用 SENTINEL REMOVE <name>

您可以使用 redis_sentinel_monitor 在 sentinel 集群上配置多个 redis 主节点。

redis_sentinel_monitor: # redis sentinel 的主节点列表,使用 cls 作为名称,主节点 ip:port
  - { name: redis-src, host: 10.10.10.45, port: 6379 ,password: redis.src, quorum: 1 }
  - { name: redis-dst, host: 10.10.10.48, port: 6379 ,password: redis.dst, quorum: 1 }

并使用以下方式刷新 sentinel 集群上的主节点列表:

./redis.yml -l redis-meta -t redis-ha   # 如果您的 sentinel 集群有不同的名称,请替换 redis-meta