zoukankan      html  css  js  c++  java
  • redis-运维-redis单机和集群

    单机版本

    因为redis是c++写的,我们首先需要安装c++环境

    1.在linux安装c++源码编译器 需要联网

      linux输入yum -y install gcc gcc-c++

    2.官网下载redis源码包redis-4.0.10.tar

    3.使用xftp将redis-4.0.10.tar上传到linux  协议用xftp否则连不上

    4.解压

    如果没有权限 使用

    chmod +x  redis压缩包  给可执行权限

    5.进入解压目录。看是否有markFile目录 如果没有则自己创建一个

    6.执行make进行编译

    7.编译完成后将src下面的redis-server、redis-benchmark、redis-cli和redis.conf。然后拷贝到一个目录下。、

    8.将redis设置为后台启动  vi编辑器编辑redis.conf  使用/daemonize  收缩找到 改为yes

    是否后台运行 默认为no

    9. ./redis-server redis.conf 启动

    10.使用ps aux|grep redis查看是否启动成功

     

    11.使用telnet测试是否能连接

    12.开放对外端口

    (可能遇到的问题https://blog.csdn.net/csdn_lqr/article/details/53885808)

    iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

    12.iptables -L INPUT -n --line-numbers 查看是否开放成功

     13.端口改为本机ip

    集群版本

    架构

    3台主服务器  

     redis内置16384 个哈希槽   会根据redis集群的数量 将这些hash槽均匀分配到每个集群节点上。
    当我们通过命令存取数据的时候  redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数 算出(0-16384之间的数字)然后通过这个数字知道 值放在哪台服务器上
    hash槽也可以根据每个节点的内存 来进行分配 比如一台机器内存比较少 那么槽的数量就分少一点
    如果其中一个主节点完全挂掉了 那么整个集群也挂掉了

    好处

    集群架构模型主要用来缓解写入性能

    1.复制单机版客户端6份

    2.修改每个redis的redis.conf端口改为不一致 6379  6380 6381 6382 6383 6384  同时取消cluster-enable=yes注释 表示集群节点

    3.创建批处理启动和关闭程序脚本

     3.给新加的2个文件可执行权限

     chmod +x start-all.sh

    4.测试启动执行start-all.sh

    5.查看是否启动成功

    6.执行批量关闭的sh ./shutdown-all.sh  并查看redis的状态

     7.开放所有端口对外访问权限 

    iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

    7.安装rvm ruby 

    参考https://blog.csdn.net/zzzcl112/article/details/80531792(redis脚本 src目录下 redis-trip.rb是基于ruby写的)

    8安装 ruby需要的redis接口gem install redis

    8 ./redis-trib.rb create 192.168.65.128:6379 192.168.65.128:6380 192.168.65.128:6381

    先创建3个主节点(去安装目录src下执行redis-trib.rb)

     9.通过其中一个主节点查看集群节点./redis-trib.rb info 192.168.65.128:6379

     主从复制模型

        在原来的集群架构上 每个主节点增加3个从节点。防止其中一台主服务器挂掉了 导致集群 宕机 ,当主服务器挂了后 从服务器自动提升为主
    集群版我们新增了redis4  redis5  redis6   分别对应 redis1  redis2  redis3 的从节点
    1.分别修改从节点的redis.conf  指定失联时间 超过时间则为故障节点 一般设置为15秒
    还有就是设置多个读 缓解读性能

    2.启动所有redis节点

    3.将从节使用redis-trip.rb加入到集群

    ./redis-trib.rb add-node 192.168.65.128:6382 192.168.65.128:6379    6382是从节点  对应主节点是6379  通过他可以找到6379的集群

    4.查看集群中的节点

    ./redis-trib.rb info 192.168.65.128:6379

    可以发现多了一个节点 并没有分配hash槽   上面这里只是将从节点加入到了集群 并没有指定主节点

    5.使用redis-cli登陆从节点并使用指定他的主节点

    ./redis-cli -h 192.168.65.128 -p 6382

     输入cluster nodes  找到主节点的id

     6.通过id指定当前节点的主节点 cluster replicate e10dde558fb46fe8ae6fe66e54ef56032fbcce0f

     7.查看是否分配成功

    各个集群节点都有一个从节点

    8.其他2个从节点重复此操作 

    9.最终的各个集群节点

    10.使用kill杀死主节点进程

     

    关闭6379

    15秒后  配置文件配置的15秒。。可以发现6379的从节点切回了主节点

    一些命令

    模糊删除

    ./redis-cli -h ip -p port -a password -n db KEYS prm:activity:booking:limit:* | xargs redis-cli -h ip -p port -a password -n db  DEL

    会先连接rediskeys模糊查询出所有key 再连接redis进行删除 生产别这样使用 会阻塞redis  测试环境清key使用

  • 相关阅读:
    多线程---同步函数的锁是this(转载)
    函数
    流程控制
    基本语句和运算
    基本数据库类型
    迷宫问题
    Dungeon Master(逃脱大师)-BFS
    HTML元素常用属性整理
    Java_hutool 发起请求
    jQuery Autocomplete
  • 原文地址:https://www.cnblogs.com/LQBlog/p/9214517.html
Copyright © 2011-2022 走看看