11.Redis集群入门

本主题,介绍了Redis的集群配置与编程入门,其实Redis的集群还包含主从集群模式,哨兵集群模式(Redis 5在集群配置上有比较大的变化),在本主题没有做详细介绍。
本主题包含内容如下:
  1. Redis集群配置;
  2. Redis集群访问;
  3. Redis集群编程;


一、集群配置

注意:
  Redis集群要求至少6个节点。
下面是三个节点启动提示的错误。

Redis5版本的集群需要至少6个节点

1. 创建配置目录

创建集群的6个节点的工作目录,用来存放配置文件与数据库文件。


集群节点工作目录

2. 拷贝配置文件到每个节点目录

  拷贝Redis安装文件下的redis.conf到每个节点目录:

集群配置文件

3. 修改配置文件

3.1. 修改bind配置

  注意不能使用回旋IP:


集群IP配置

3.2. 修改端口

  因为在本机配置6个节点,采用相同的IP,不同的端口,端口从默认的6379,依次6个端口:6380,6381,8382,6383,6384。


集群端口配置

3.3. 配置后台运行

  这个不是集群必须的,主要是因为不需要独占终端。


集群后台配置

3.4. 设置非保护模式

  也是集群的非必须选项。


集群非保护模式

3.5. 配置进程锁文件

  每个节点的进程锁文件设置不同。


集群进程锁文件配置

3.6. 配置集群模式

  该设置会用集群模式启动节点。

集群配置

3.7. 集群节点配置文件

集群节点文件

3.8. 配置集群节点的延时

集群节点延时配置

3.9. 配置每个节点的数据库存放目录

集群几点数据库等文件存放目录

4. 所有节点的配置

  (1)绑定端口,port 6379
  (2)绑定IP,bind 192.168.1.140
  (3)指定数据存放路径,dir /Users/yangqiang/redis5/cluster/node1
  (4)启动集群模式,cluster-enabled yes
  (5)指定集群节点配置文件,cluster-config-file nodes-6379.conf
  (6)后台启动,daemonize yes
  (7)指定集群节点超时时间,cluster-node-timeout 5000
  (8)指定持久化方式,appendonly yes
  (9)指定保护模式,protected-mode no
  
注意:
  上面黑体标注的部分是不同节点需要修改的部分。
  不过其中节点存放目录使用端口作为后缀,使用redis的工具脚本容易更好的管理。可以研究redis安装目录下utils/create-cluster的create-cluster脚本文件。

集群创建脚本文件

5. 启动集群的每个节点

  启动集群节点的指令:


./bin/redis-server  ./cluster/node1/redis.conf
./bin/redis-server  ./cluster/node2/redis.conf
./bin/redis-server  ./cluster/node3/redis.conf 
./bin/redis-server  ./cluster/node4/redis.conf 
./bin/redis-server  ./cluster/node5/redis.conf 
./bin/redis-server  ./cluster/node6/redis.conf 

启动效果如下:


集群启动结果

启动的节点的进程状态:


集群启动的进程状态查看

启动阶段服务的网络状态


集群启动的网络状态

6. 启动集群

  启动集群的指令

./bin/redis-cli --cluster create 192.168.31.140:6379  192.168.31.140:6380 192.168.31.140:6381 192.168.31.140:6382 192.168.31.140:6383 192.168.31.140:6384 --cluster-replicas 1

集群启动效果:

集群启动效果

7. 启动集群后的节点文件

  启动节点后,每个节点目录下产生的文件如下:


每个节点数据库目录下产生的文件

二、从redis-cli访问集群

1. 集群连接

  注意使用-c选项。

./bin/redis-cli -c -h 192.168.31.140 -p 6379
使用redis-cli访问集群

2. 集群管理命令帮助

help @cluster
集群的帮助查看

3. 集群信息查看

指令:


192.168.31.140:6379> cluster info

集群信息

4. 集群节点信息


192.168.31.140:6379> cluster nodes

集群节点信息

5. 集群节点数据操作

集群下的数据操作

三、Redis的Python集群编程

1. 安装python的redis集群模块

  安装指令

pip install redis-py-cluster

安装Python集群API模块

2. rediscluster模块帮助

API帮助

其中根据使用经验,用户访问模块应该是client,其帮助如下:


集群的客户访问类

其构造器为:

__init__(self, host=None, port=None, startup_nodes=None, max_connections=None, max_connections_per_node=False, init_slot_cache=True, readonly_mode=False, reinitialize_steps=None, skip_full_coverage_check=False, nodemanager_follow_cluster=False, connection_class=None, **kwargs)

3. Redis集群编程模式

# coding = utf-8
import rediscluster.client
startup_nodes = [
    {"host":"192.168.31.140", "port":6379},
    {"host":"192.168.31.140", "port":6380},
    {"host":"192.168.31.140", "port":6381},
    {"host":"192.168.31.140", "port":6382},
    {"host":"192.168.31.140", "port":6383},
    {"host":"192.168.31.140", "port":6384}
]
cluster_conn = rediscluster.client.RedisCluster(startup_nodes=startup_nodes)
str_data = cluster_conn.get('py_user')
print(str_data)
b'this is a cluster'

其他的操作与但节点一样,对编程者是透明的。


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容