redis缓存分片 Redis分片模式

本文目录一览:

  • 1、什么是Redis?
  • 2、redis集群方案有哪些
  • 3、Redis集群重新分片
  • 4、如何利用Redis扩展数据服务,实现分片及高可用
什么是Redis?Redis是一个开源的内存数据结构存储系统,它也可以用作数据库、缓存和消息代理 。Redis是Remote Dictionary Server的缩写,最初由Salvatore Sanfilippo开发 。
Redis 是一种开源的高性能、非关系型、基于键值对的数据存储系统 , 也被称为数据结构服务器 。
Redis是一个内存中的键值数据库,通常称为数据结构服务器 。Redis和其他键值数据库之间的主要区别之一是Redis存储和操作高级数据类型的能力 。这些数据类型是大多数开发人员熟悉的基本数据结构(列表,映射,集合和排序集) 。
redis是一个key-value存储系统 。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型) 。
redis集群方案有哪些基于以上,Redis 集群方案显得尤为重要 。通常有 3 个途径:官方 Redis Cluster ;通过 Proxy 分片;客户端分片 (Smart Client)。以上三种方案各有利弊 。
Redis官方集群方案 Redis Cluster Redis Cluster是一种服务器Sharding技术,0版本开始正式提供 。Redis Cluster中,Sharding采用slot(槽)的概念,一共分成16384个槽,这有点儿类pre sharding思路 。
使用Jedis带的客户端分片ShardedJedisPool类 。使用代理进行分片twemproxy,连接代理可以使用Jedis类(单链接)和JedisPool类(多链接) 。
redis-cluster投票:容错,投票过程是集群中所有master参与,如果半数以上master节点与master节点通信超过(cluster-node-timeout) , 认为当前master节点挂掉 。
Redis集群重新分片1、如果您正在寻找一个Redis集群迁移工具,NineData是一个值得考虑的选择 。它提供了一个高效、安全的数据迁移工具,可以在不影响业务的前提下实现Redis集群的高效迁移 。操作使用方面 , NineData的数据迁移工具也非常简便 。
【redis缓存分片 Redis分片模式】2、是的 。Redis集群是通过分片来实现横向扩展的,即将数据分散存储在不同的节点上,每个节点只负责一部分数据的读写操作 。
3、则需要及时清除缓存及同步redis主键 。这样处理,主要是实时读写redis,而mysql数据则通过队列异步处理,缓解mysql压力,不过这种方法应用场景主要基于高并发,而且redis的高可用集群架构相对更复杂,一般不是很推荐 。
4、twitter的 twemproxy 是一个Redis的代理服务程序,能够实现key的分片 。分片能使key均匀地分布到集群的机器上去,能保证数据的一致性,有着众多的优点 。
如何利用Redis扩展数据服务,实现分片及高可用redis高可用:如果你做主从架构部署,其实就是加上哨兵就可以了,就可以实现,任何一个实例宕机,自动会进行主备切换 。
Redis主从架构高可用的实现方式主要有两种:自动故障迁移和手动切换 。1 自动故障迁移 自动故障迁移是指当主节点出现宕机或者故障时,从节点可以自动接替主节点的职责,继续提供服务 。这种方式需要实现Redis Sentinel监控系统 。
在使用 redis-tri.rb reshard 进行分片重哈希(数据迁移) , 将旧节点上的 slots 分配到新节点上后 , 新节点才能起作用 。缩容时,先要使用 redis-tri.rb reshard 移除的机器上的 slots,然后使用 redis-tri.rb add-del 移除机器 。
Sentinel : redis 自带的主从切换工具 , 我们通过 sentinel 实现集群高可用 。客户端( Smart Client ):客户端通过约定查找 redis 实例在 ZooKeeper 中写入的地址 。
Redis中为了实现高可用(High Availability,简称HA),采用了如下两个方式:Redis中主从节点复制数据有全量复制和部分复制之分 。

    推荐阅读