博客
关于我
Redis 集群搭建详细指南
阅读量:793 次
发布时间:2023-02-28

本文共 1610 字,大约阅读时间需要 5 分钟。

Redis 集群搭建指南:一步步实现高效存储

Redis 集群简介

Redis 是一个开源的高性能键值存储系统,广泛应用于互联网企业的服务器端缓存。由于数据量大,传统的单实例模式已无法满足需求。因此,Redis 在 3.0 版本后推出了集群模式,采用去中心化的 P2P 模式,将键值分为 16384 个 slot,每个实例负责一部分 slot。

简单搭建 Redis 集群

搭建 Redis 集群需要注意以下几点:

  • 规划节点:至少需要 6 个节点(3 主 3 从),但由于资源限制,可以在单台机器上模拟集群。

  • 文件夹创建

    • 创建文件夹 /usr/local/redis-cluster,并在下面创建 bin 文件夹存放运行脚本。
    • 创建 6 个文件夹(9001-9006),每个文件夹存放 Redis 实例和数据。
  • 配置 Redis 实例

    • 复制已安装的 Redis 实例到各节点文件夹,并修改 redis.conf,将以下配置替换为相应的端口号:
      • port 9001
      • dir /usr/local/redis-cluster/9001/data/
      • cluster-enabled yes
      • cluster-config-file nodes9001.conf
    • 其他配置无需修改。
  • 启动节点

    • 使用命令启动所有实例:
      /usr/local/bin/redis-server /usr/local/redis-cluster/9001/redis.conf
    • 确认所有节点启动成功,使用 ps -el | grep redis 查看。
  • 集群初始化

    • 由于节点间尚未互相发现,连接时可能会出现 CLUSTERDOWN Hash slot not served 错误。
    • 使用客户端测试连接,例如:
      /usr/local/redis-cluster/bin/redis-cli -h 192.168.119.131 -p 9001 set name mafly
    • 注意客户端会自动重定向到存储数据的节点。
  • 安装必要软件

    • 安装 Ruby 和相关 gems:
      yum install ruby rubygems
      yum install redis
  • 实际创建集群

    使用 redis-trib.rb 创建集群:

    /usr/local/redis-cluster/bin/redis-trib.rb create --replicas 1 192.168.119.131:9001 192.168.119.131:9002 192.168.119.131:9003 192.168.119.131:9004 192.168.119.131:9005 192.168.119.131:9006
    • --replicas 1 表示主从复制比例为 1:1。
    • 集群会自动分配 slot,默认使用 16383 个 slot。

    集群验证

    验证集群是否成功:

  • 连接任一节点并查看集群信息:
    /usr/local/redis-cluster/bin/redis-cli -c -h 192.168.119.131 -p 9001 cluster info
  • 检查节点状态:
    /usr/local/redis-cluster/bin/redis-cli -c -h 192.168.119.131 -p 9001 cluster nodes
  • 设置值测试:
    /usr/local/redis-cluster/bin/redis-cli -h 192.168.119.131 -p 9001 set name mafly
    • 如果出现重定向信息,说明数据已正确分配到对应节点。
  • 总结

    通过以上步骤,你已经成功搭建了一个 Redis 集群。接下来可以进一步优化集群配置,动态扩容或减少节点,重新分配 slot 大小,并将集群与实际应用程序结合,充分发挥 Redis 的缓存优势。

    转载地址:http://ndtfk.baihongyu.com/

    你可能感兴趣的文章
    php -- 魔术方法 之 获取属性:__get()
    查看>>
    php -树-二叉树的实现
    查看>>
    PHP -算法-二路归并
    查看>>
    php 2条不一样 的json数据 怎么放在一个json里面_如果你是PHP开发者,请务必了解一下Composer...
    查看>>
    php 360 不记住密码,JavaScript_多种方法实现360浏览器下禁止自动填写用户名密码,目前开发一个项目遇到一个很 - phpStudy...
    查看>>
    regExp的match、exec、test区别
    查看>>
    php 404 自定义,APACHE 自定义404错误页面设置方法
    查看>>
    PHP 5.3.0以上推荐使用mysqlnd驱动
    查看>>
    php aes sha1解密,PHP AES加密/解密
    查看>>
    php CI框架单个file表单多文件上传例子
    查看>>
    reflow和repaint引发的性能问题
    查看>>
    php csv 导出
    查看>>
    php curl 实例+详解
    查看>>
    php curl_init函数用法(http://blog.sina.com.cn/s/blog_640738130100tsig.html)
    查看>>
    php curl_multi批量发送http请求
    查看>>
    php echo 输出 锘?... 乱码问题
    查看>>
    ReferenceQueue的使用
    查看>>
    Referenced classpath provider does not exist: org.maven.ide.eclipse.launchconfig
    查看>>
    Refactoring-Imporving the Design of Exsiting Code — 代码的坏味道
    查看>>
    PHP imap 远程命令执行漏洞复现(CVE-2018-19518)
    查看>>