理论+实验——Redis集群

编程入门 行业动态 更新时间:2024-10-09 17:24:07

理论+实验——Redis<a href=https://www.elefans.com/category/jswz/34/1771240.html style=集群"/>

理论+实验——Redis集群

文章目录

  • 一、Redis集群
    • 1.1 概述
    • 1.2 优势
    • 1.3 实现方法
    • 1.4 Redis-Cluster数据分片
  • 二、问题
    • 2.1 单节点Redis服务器带来的问题
    • 2.2 解决方法
  • 三、实验

一、Redis集群

1.1 概述

1.2 优势

1.3 实现方法

1.4 Redis-Cluster数据分片

二、问题

2.1 单节点Redis服务器带来的问题

2.2 解决方法

三、实验

-------------------------------Redis(所有节点操作)-------------------------------

[root@master utils]# vim /etc/redis/6379.conf
70 #bind 127.0.0.1
89 protected-mode no
93 port 6379
137 daemonize yes
833 cluster-enabled yes
841 cluster-config-file nodes-6379.conf
847 cluster-node-timeout 15000
700 appendonly yes
[root@master utils]# /etc/init.d/redis_6379 restart
[root@master utils]# cd /var/lib/redis/6379/
[root@master 6379]# ls
appendonly.aof  dump.rdb  nodes-6379.conf

-------------------------------仅master操作-------------------------------

[root@master ~]# gpg --keyserver hkp://keys.gnupg --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
[root@master ~]# curl -sSL  | bash -s stable
root@master profile.d]# source /etc/profile.d/rvm.sh 
[root@master profile.d]# rvm list known
[root@master profile.d]# rvm install 2.4.1
[root@master profile.d]# rvm use 2.4.1
Using /usr/local/rvm/gems/ruby-2.4.1
[root@master profile.d]# ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
[root@master profile.d]# gem install redis
Fetching redis-4.2.2.gem
Successfully installed redis-4.2.2
Parsing documentation for redis-4.2.2
Installing ri documentation for redis-4.2.2
Done installing documentation for redis after 0 seconds
1 gem installed'master和node节点,各添加两个网卡,共六个'[root@master network-scripts]# /etc/init.d/redis_6379 restart
[root@master 6379]# redis-cli --cluster create 20.0.0.128:6379 20.0.0.129:6379 20.0.0.22:6379 20.0.0.23:6379 20.0.0.4:6379 20.0.0.5:6379 --cluster-replicas 1
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 20.0.0.4:6379 to 20.0.0.128:6379
Adding replica 20.0.0.5:6379 to 20.0.0.129:6379
Adding replica 20.0.0.23:6379 to 20.0.0.22:6379
M: 44be018f73f20343548cf587cfb5c83c2a7b0099 20.0.0.128:6379slots:[0-5460] (5461 slots) master
M: 44be018f73f20343548cf587cfb5c83c2a7b0099 20.0.0.129:6379slots:[5461-10922] (5462 slots) master
M: 44be018f73f20343548cf587cfb5c83c2a7b0099 20.0.0.22:6379slots:[10923-16383] (5461 slots) master
S: 832077e6e98788914583c6cdaea9e54e3a2d7bfc 20.0.0.23:6379replicates 44be018f73f20343548cf587cfb5c83c2a7b0099
S: 832077e6e98788914583c6cdaea9e54e3a2d7bfc 20.0.0.4:6379replicates 44be018f73f20343548cf587cfb5c83c2a7b0099
S: 832077e6e98788914583c6cdaea9e54e3a2d7bfc 20.0.0.5:6379replicates 44be018f73f20343548cf587cfb5c83c2a7b0099
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join>>> Performing Cluster Check (using node 20.0.0.128:6379)
M: 44be018f73f20343548cf587cfb5c83c2a7b0099 20.0.0.128:6379slots:[0-16383] (16384 slots) master1 additional replica(s)
S: 832077e6e98788914583c6cdaea9e54e3a2d7bfc 20.0.0.23:6379slots: (0 slots) slavereplicates 44be018f73f20343548cf587cfb5c83c2a7b0099
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@master 6379]# netstat -anpt | grep 6379
tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      25899/redis-server  
tcp        0      0 0.0.0.0:16379           0.0.0.0:*               LISTEN      25899/redis-server  
tcp        0      0 20.0.0.128:35538        20.0.0.128:16379        TIME_WAIT   -                   
tcp        0      0 20.0.0.128:57292        20.0.0.23:16379         ESTABLISHED 25899/redis-server  
tcp        0      0 20.0.0.128:59008        20.0.0.4:6379           TIME_WAIT   -                   
tcp        0      0 20.0.0.128:16379        20.0.0.23:47274         ESTABLISHED 25899/redis-server  
tcp        0      0 20.0.0.128:39346        20.0.0.23:6379          TIME_WAIT   -                   
tcp        0      0 20.0.0.128:6379         20.0.0.23:54820         ESTABLISHED 25899/redis-server  
tcp        0      0 20.0.0.129:44766        20.0.0.129:6379         TIME_WAIT   -                   
tcp        0      0 20.0.0.128:38400        20.0.0.5:6379           TIME_WAIT   -                   
tcp        0      0 20.0.0.128:39356        20.0.0.23:6379          TIME_WAIT   -                   
tcp        0      0 20.0.0.22:36644         20.0.0.22:6379          TIME_WAIT   -                   
tcp        0      0 20.0.0.128:53528        20.0.0.128:6379         TIME_WAIT   -                   
tcp6       0      0 :::6379                 :::*                    LISTEN      25899/redis-server  
tcp6       0      0 :::16379   

测试:

redis-cli -c -h 20.0.0.4 -p 6379   ###加个 -c 开启集群,就可以看到了[root@master 6379]# redis-cli -c -h 20.0.0.128 -p 6379
20.0.0.128:6379> set name oo
OK
20.0.0.128:6379> keys *
1) "name"
20.0.0.128:6379> get name
"oo"
20.0.0.128:6379> exit
[root@master 6379]# redis-cli -c -h 20.0.0.129 -p 6379
20.0.0.129:6379> keys *
1) "name"
20.0.0.129:6379> get name
"oo"
20.0.0.129:6379> exit
[root@master 6379]# redis-cli -c -h 20.0.0.22 -p 6379
20.0.0.22:6379> keys *
1) "name"
20.0.0.22:6379> get name
"oo"
20.0.0.22:6379> exit
[root@master 6379]# redis-cli-c -h 20.0.0.23 -p 6379
20.0.0.23:6379> keys *
1) "name"
20.0.0.23:6379> get name
-> Redirected to slot [5798] located at 20.0.0.128:6379
"oo"
20.0.0.23:6379> exit
[root@master 6379]# redis-cli -c -h 20.0.0.4 -p 6379
20.0.0.4:6379> keys *
1) "name"
20.0.0.4:6379> get name
-> Redirected to slot [5798] located at 20.0.0.128:6379
"oo"
20.0.0.4:6379> exit
[root@master 6379]# redis-cli -c -h 20.0.0.5 -p 6379
20.0.0.5:6379> keys *
1) "name"
20.0.0.5:6379> get name
-> Redirected to slot [5798] located at 20.0.0.128:6379
"oo"
20.0.0.5:6379> exit

-------------------------------生命周期设置-------------------------------

20.0.0.128:6379> EXPIRE  name 20  ##20秒生命周期20.0.0.128:6379>keys *    查看20秒后消失了
内存中也会消除20.0.0.23:6379>keys*复制集中也会消失

更多推荐

理论+实验——Redis集群

本文发布于:2024-03-07 22:43:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1719106.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:集群   理论   Redis

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!