Redis_分片集群

这篇具有很好参考价值的文章主要介绍了Redis_分片集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

10. 分片集群

10.1简介

业务场景,需要存储50G的数据。对于内存和硬盘配置不足,选用两种方式

  • 一种:纵向扩展:加内存,加硬盘,提高CPU。简单、直接。RDB存储效率要考虑。成本要考虑。
  • 二种:横向扩展:加实例。(加机器)

10.2配置

步骤1:

  • 创建一个mycluster目录,复制redis.conf文件
    mkdir mycluster
    cp /opt/redis-6.2.6/redis.conf redis.conf
    
  • 将后台启动打开

步骤2:

  • 创建一个redis6379.conf
    include redis.conf
    pidfile "/var/run/redis_6379.pid"
    port 6379
    dbfilename "dump6379.rdb"
    #打开集群模式
    cluster-enabled yes
    #设定节点配置文件
    cluster-config-file nodes-6379.conf
    #设定节点失联时间,超过,会自动进行主从切换
    cluster-node-timeout 15000
    

步骤3:

  • 根据6379的配置文件,再配置5个不同的端口
    :%S/原内容/要替换的内容
    :%s/6379/6380
    

步骤4:

  • 修改redis.conf配置文件,将bind ip地址加入
    Redis_分片集群,redis,数据库,缓存,后端

    打开bind 127.0.0.1
    加入 192.168.188.3
    

步骤5

  • 启动六个服务,保证六个服务启动成功

步骤6

  • 将六个服务合成一个集群
    redis-cli --cluster create --cluster-replicas 1 192.168.188.3:6379
    192.168.188.3:6380 192.168.188.3:6381 192.168.188.3:6579 192.168.188.3:6580
    192.168.188.3:6581
    
  • 输入yes去接受配置

注意:
Redis_分片集群,redis,数据库,缓存,后端
当出现此错误时,需要把redis.conf配置文件中的protected-mode no yes改为no,重启所有redis在执行步骤6
Redis_分片集群,redis,数据库,缓存,后端

10.3 Hash Slot

10.3.1 简介

在使用redis cluster方案中,一个分片集群有16384个哈希槽。
根据键值对的key,按照CRC16算法计算一个16bit的值。再用这个值对16384取模运算,得到的数代表对应编号的hash slot

10.3.2部署方案

cluster create命令创建集群时,redis会自动把这些hash slot平均分布在集群实例上。如果集群中有N个实例(主库),每个实例上分配到的hash slot就是16384/N

使用cluster addslos 手工分配哈希槽。

10.4 集群中的数据操作

步骤1

  • 使用集群方式启动redis的命令行,加 -c参数
    redis-cli -c -p 6379
    

步骤2

  • 向redis中设置一个键值对,key会经过运算后,得到相应的hash slot进行存储
    set k1 v1
    set k2 v2
    get k1
    get k2
    

步骤3

  • 测试向集群中加入多个key-value,由于在不同的hash slot,此时会报错
    mset k3 v3 k4 v4 k5 v5
    
  • 要通过{}来定义组的概念,使用key中{}内相同内容的键值对放在一个slot中
mset name{user:001} zhangsan age{user:001} 18 gender{user:001} man

步骤4

  • 获取key中的值
    get k1
    get name{user:001}
    

10.5 常用命令

  • cluster nodes:显示集群节点的配置信息
  • cluster keyslot < key>:获取key的哈希槽
  • cluster countkeysinslot < slot>:返回当前哈希槽中key的数量(仅查询当前redis实例)
  • cluster getkeysinslot < slot>< count>:返回当前槽中指定的count数量的key

10.6 故障演示

步骤1

  • 将6379宕机,以集群方式登录6380
    127.0.0.1:6379>shutdown
    exit
    redis-cli -c -p 6380
    

步骤2:

  • 使用cluster nodes查看节点状态,6379的从机6581变成了主机

步骤3:

  • 把6379再次启动,启动后,6379变成了6581的从机

如果有一段hash slot的主从节点都宕机,redis是否继续工作?

通过下面配置,默认是yes,如果主从都挂掉,整个集群就都挂掉

如果是no,就表示该hash slot数据全部都不能使用,也无法存储文章来源地址https://www.toymoban.com/news/detail-644337.html

cluster-require-full-coverage yes

到了这里,关于Redis_分片集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Redis】内存数据库Redis进阶(Redis哨兵集群)

    基于 Redis 集群解决单机 Redis 存在的四大问题:   搭建一个三节点形成的 Sentinel 集群,来监管 Redis 主从集群。   【Redis】内存数据库Redis进阶(Redis主从集群)   架构图: 三个sentinel实例信息: 节点 IP PORT s1 192.168.150.101 27001 s2 192.168.150.101 27002 s3 192.168.150.101 27003 之前

    2024年02月14日
    浏览(43)
  • redis数据库缓存服务器

    redis比mysql访问数据快 非关系型数据库以键值对的方式存储数据 作用:加快访问速度,缓解数据库压力 redis最新版本7 特点 丰富的数据结构 list,set,hash等数据结构的存储 支持持久化 支持事务 “一个完整的动作,要么全部执行,要么什么也没有做” 支持主从支持高可用,支持

    2024年02月05日
    浏览(59)
  • redis的缓存更新策略以及如何保证redis与数据库的数据一致性

    redis的缓存更新策略有这么几种: 1、由应用直接和redis以及数据库相连接:         查询数据时,应用去redis中查询,查不到的话再由应用去数据库中查询,并将查询结果放在redis;         更新数据时,由应用去触发redis数据的删除以及数据库的update。 2、应用只跟redi

    2024年02月13日
    浏览(53)
  • Redis---数据库和缓存如何保证一致性?

    用「读 + 写」请求的并发的场景来分析: 假如某个用户数据在缓存中不存在,请求 A 读取数据时从数据库中查询到年龄为 20,在未写入缓存中时另一个请求 B 更新数据。它更新数据库中的年龄为 21,并且清空缓存。这时请求 A 把从数据库中读到的年龄为 20 的数据写入到缓存

    2024年01月24日
    浏览(53)
  • Redis如何保证缓存和数据库一致性?

    现在我们在面向增删改查开发时,数据库数据量大时或者对响应要求较快,我们就需要用到Redis来拿取数据。 Redis:是一种高性能的内存数据库,它将数据以键值对的形式存储在内存中,具有读写速度快、支持多种数据类型、原子性操作、丰富的特性等优势。 优势: 性能极高

    2024年01月16日
    浏览(66)
  • 自学WEB后端05-Node.js后端服务链接数据库redis

    嘿,亲爱的小伙伴们!😄 今天我要给大家分享一个超级方便且高效的 NoSQL 类型数据库——Redis!💡 它可不是一般的关系型数据库哦,而是以键值对形式存储数据的内存数据库。📚 快跟着我一起来学习如何安装和使用 Redis 吧!  自学WEB后端01-安装Express+Node.js框架完成Hello

    2024年02月07日
    浏览(45)
  • Redis如何保障缓存与数据库的数据一致性问题?

    目录 一.最经典的数据库加缓存的双写双删模式 二. 高并发场景下的缓存+数据库双写不一致问题分析与解决方案设计 三、上面高并发的场景下,该解决方案要注意的问题 1.1 Cache Aside Pattern概念以及读写逻辑 (1)读的时候,先读缓存,缓存没有的话,那么就读数据库,然后取

    2023年04月21日
    浏览(47)
  • Springboot+Redis:实现缓存 减少对数据库的压力

    🎉🎉欢迎光临,终于等到你啦🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏 Redis实战与进阶 本专栏讲解Redis从原理到实践 这是苏泽的个人主页可以看到我其他的内容哦👇👇 努力的苏泽 http://suzee.blog.csdn.net/   目录 缓存如何实现?

    2024年03月24日
    浏览(54)
  • Redis数据库 | 发布订阅、主从复制、哨兵模式、缓存雪崩

    💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息 Redis 客户端可以订阅任意数量的频道 Redis主从复制是指在Redis中设置一个主节点(Master)和一个或多个从节点(Slave),

    2024年02月15日
    浏览(51)
  • 数据库缓存服务——NoSQL之Redis配置与优化

    目录 一、缓存概念 1.1 系统缓存 1.2 缓存保存位置及分层结构 1.2.1 DNS缓存 1.2.2 应用层缓存 1.2.3 数据层缓存 1.2.4 硬件缓存 二、关系型数据库与非关系型数据库 2.1 关系型数据库 2.2 非关系型数据库 2.3 关系型数据库和非关系型数据库区别: 2.4 非关系型数据库产生背景 2.5 总结

    2024年02月15日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包