Redis 5.0 最近 (17/10/2018) 刚刚发布, 其中引入了一些非常令人期待的特性, 其中就有集群管理的新命令。 而在之前, 是由 Ruby 写的 redis-trib.rb 提供了集群管理的相关命令.


目录

  1. Redis 5 中的新特性
  2. Redis 中的集群管理

Redis 5 中的新特性

下面是 Redis 5.0 发行日志中提及的更新和改进:

  1. 新的 Stream 数据类型, https://redis.io/topics/streams-intro
  2. 新的 Redis 模块 APIs: Timers, ClusterDictionary
  3. RBD 现已支持存储 LFULRU 信息
  4. redis-cli 中的集群管理功能现从 Ruby (redis-trib.rb) 转换到 C 实现. 通过 redis-cli --cluster help 查看更多信息
  5. 新的 有序集合(sorted set) 命令: ZPOPMIN/MAX阻塞变量(blocking variant)
  6. 主动碎片整理 (Active defragmentation) 更新到第 2 版
  7. 增强 基数 (HyperLogLog) 实现.
  8. 更好的内存报告能力.
  9. 许多有子命令的命令现在有了 help 子命令.
  10. 在客户端频繁连接和断开连接时有更好的性能
  11. 许多错误修复和其他一些改进
  12. Jemalloc 更新到 5.1 版
  13. 新引入 CLIENT UNBLOCK 和 `CLIENT ID
  14. 加入了 LOLWUT 命令. 见 http://antirez.com/news/123
  15. 在不用 API 向后兼容的地方弃用了 slave 一词
  16. 网络层不同程度的优化
  17. Lua 解释器改进:
    • 更好地将 lua 脚本传递给 replicas/AOL
    • Lua 脚本现在也可以在 replicas 中超时,进入 -BUSY 状态
  18. 动态的 HZ以平衡闲置 CPU 使用率,提高响应能力
  19. Redis 核心现已重构并有多处改进
  20. 许多其他的改进优化..

Redis 中的集群管理

运行 redis-cli --cluster help 可以查看集群管理相关的子命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$ redis-cli --cluster help
Cluster Manager Commands:
create host1:port1 ... hostN:portN
--cluster-replicas <arg>
check host:port
info host:port
fix host:port
reshard host:port
--cluster-from <arg>
--cluster-to <arg>
--cluster-slots <arg>
--cluster-yes
--cluster-timeout <arg>
--cluster-pipeline <arg>
rebalance host:port
--cluster-weight <node1=w1...nodeN=wN>
--cluster-use-empty-masters
--cluster-timeout <arg>
--cluster-simulate
--cluster-pipeline <arg>
--cluster-threshold <arg>
add-node new_host:new_port existing_host:existing_port
--cluster-slave
--cluster-master-id <arg>
del-node host:port node_id
call host:port command arg arg .. arg
set-timeout host:port milliseconds
import host:port
--cluster-from <arg>
--cluster-copy
--cluster-replace
help

For check, fix, reshard, del-node, set-timeout you can specify the host and port of any working node in the cluster.