redis部署和redis-cluser集群

1.下载redis到 /usr/local

1.1 解压redis压缩包

tar -zxvf xxxx(redis压缩包名字)

1.2 执行make命令
进入解压后的文件夹

make

出现错误‘struct redisServer’没有名为‘server_xxx’的成员
(没出错就跳过)
应该是环境问题
安装gcc套装:

yum install cpp
yum install binutils
yum install glibc
yum install glibc-kernheaders
yum install glibc-common
yum install glibc-devel
yum install gcc
yum install make

升级gcc

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash

我这里直接执行 scl enable devtoolset-9 bash就可以了
make成功.
1.3 执行make install

make install

看到以下信息说明编译成功

INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
make[1]: 离开目录“/usr/local/redis-6.0.9/src”

1.4启动redis

redis-server redis.config

界面出现redis图标和端口等信息表示部署成功

2.搭建redis-cluser集群

1.修改redis-config文件
redis版本 6.0.9

a)远程访问需要把bind注释掉
        bind 127.0.0.1    修改为    # bind 127.0.0.1
b)修改端口号
        port 6379    #修改为    port xxxx(因为是每个服务器一台redis所有端口号就不用修改)
c)默认启动时为后台启动,yes为后台启动
        daemonize no    修改为    daemonize yes
d)指定进程信息存储文件
        pidfile /var/run/redis_6379.pid    #修改为    pidfile /var/run/redis_xxxx.pid(同端口号,不用修改)
e)指定日志文件
        logfile ""     修改为    logfile "/usr/local/redis-6.0.9/log/redis-6379.log" 
f)指定数据文件路径
        dir ./        修改为    dir "/usr/local/redis-6.0.9/data"
g)指定rdb持久化文件名(会自动生成到dir指定的路径下)
        dbfilename dump.rdb    修改为    dbfilename "dump-xxxx.rdb"(同上)
h)指定aof持久化文件名(默认情况不会生成,因为默认 appendonly no)
        appendfilename "appendonly.aof"    修改为    appendfilename "appendonly-xxxx.aof"(同上))
i)以集群方式启动
        # cluster-enabled yes      将前面的 # 去掉
j)集群节点nodes信息配置文件(是自动生成的)
        # cluster-config-file nodes-6379.conf    修改为    cluster-config-file "/usr/local/redis-6.0.6/node/nodes-7000.conf"
k)设置访问密码(也可不改,启动redis集群后,登录各节点,通过config set命令设置)
        #requirepass foobared    修改为    requirepass redis123
     注意不设置密码的时候需要将远程访问保护关掉  protected-mode yes 修改为 protected-mode no  
  1. 启动redis
redis-server redis.conf


ps -ef | grep redis  #查看redis后台启动成功一

3.搭建集群
-a redis123 在没有设置密码的时候就不用加

./redis-cli --cluster create 192.168.xx.xx:6379 192.168.xx.xx:6379 192.168.xx.xx:6379 192.168.xx.xx:6379 192.168.xx.xx:6379 192.168.xx.xx:6379 --cluster-replicas 1 -a redis123

3主3从:结果如下

M: 8fa3871bc025600831990f70730298f190a96ff2 192.168.xx.xx:6379
   slots:[0-5460] (5461 slots) master
   1 additional replica(s)
M: 2934bd329608ca52899ec38b0c83016b5d0d8d11 192.168.xx.xx:6379
   slots:[5461-10922] (5462 slots) master
   1 additional replica(s)
S: 6fa51f64ad79e08ec08b0f4cd6f6502912f71bb2 192.168.xx.xx:6379
   slots: (0 slots) slave
   replicates 8fa3871bc025600831990f70730298f190a96ff2
S: 15bf301d46f77bcf18cfea19e70ffdae9a3ab277 192.168.xx.xx:6379
   slots: (0 slots) slave
   replicates 2934bd329608ca52899ec38b0c83016b5d0d8d11
M: 9fa6d53054f0fc7affcce9dc02896ab0b34998d5 192.168.xx.xx:6379
   slots:[10923-16383] (5461 slots) master
   1 additional replica(s)
S: ad46a56b7b132022901795879b9da74437ae9ed4 192.168.xx.xx:6379
   slots: (0 slots) slave
   replicates 9fa6d53054f0fc7affcce9dc02896ab0b34998d5

查看集群

./redis-cli -h 192.168.xx.xx -p 6379 -a redis123 cluster nodes
2934bd329608ca52899ec38b0c83016b5d0d8d11 192.168.xx.xx:6379@16379 master - 0 1606377299000 2 connected 5461-10922
6fa51f64ad79e08ec08b0f4cd6f6502912f71bb2 192.168.xx.xx:6379@16379 slave 8fa3871bc025600831990f70730298f190a96ff2 0 1606377300000 1 connected
15bf301d46f77bcf18cfea19e70ffdae9a3ab277 192.168.xx.xx:6379@16379 slave 2934bd329608ca52899ec38b0c83016b5d0d8d11 0 1606377299443 2 connected
9fa6d53054f0fc7affcce9dc02896ab0b34998d5 192.168.xx.xx:6379@16379 master - 0 1606377300447 3 connected 10923-16383
8fa3871bc025600831990f70730298f190a96ff2 192.168.xx.xx:6379@16379 myself,master - 0 1606377301000 1 connected 0-5460
ad46a56b7b132022901795879b9da74437ae9ed4 192.168.xx.xx:6379@16379 slave 9fa6d53054f0fc7affcce9dc02896ab0b34998d5 0 1606377301449 3 connected

4.验证
就互相存/读,会有看到有redis重定向

总结

redis-cluser集群是分布式分片存储数据

在主从和哨兵的基础上,采用分片规则存储到不同的主从里
每一个cluster都是一个哨兵的主从,分配自己对应的槽点
cluster1覆盖1365-5460
cluster2覆盖6827-10922
cluster3覆盖12288-16383
大致如上,在存入key/value时,会根据一个哈希算法:CRC16(‘key’)%16384 = 2412
算出一个值,然后分配到对应槽点.同理,读数据时根据这个值去找对应槽点的cluster,以重定向的方式.
并且在主节点挂掉之后会选举从节点马上上任主节点,从而实现redis的高可用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值