所有分类
  • 所有分类
  • 未分类

Redis集群–使用/注意事项

简介

本文介绍使用Redis集群时需要注意的问题。

集群功能限制

  1. key批量操作支持有限。
    1. 例如:mset、mget不支持。目前只支持具有相同slot值的key执行批量操作。
    2. 对于映射为不同slot值的key由于执行mget、mget等操作可能存在于多个节点上因此不被支持。
  2. key事务操作支持有限。
    1. 只支持多key在同一节点同一slot的事务操作,当多个key分布在不同的slot上时无法使用事务功能。
  3. key作为数据分区的最小粒度,因此不能将一个大的键值对象如hash、list等映射到不同的节点。
  4. 不支持多数据库空间。
    1. 单机下的Redis可以支持16个数据库, 集群模式下只能使用一个数据库空间, 即db0。
  5. 复制结构只支持一层, 从节点只能复制主节点, 不支持嵌套树状复制结构。

集群扩展 

见:Redis集群–伸缩的过程(原理) – 自学精灵

集群事务

简介

Redis只支持多key在同一节点同一slot上的事务操作, 当多个key分布在不同的节点上时无法使用事务功能。

解决方案

Redis Cluster 提供了一个 hash tag 的机制,可以让我们把一组 key 映射到同一个 slot。

例如:user1000.following 这个 key 保存用户 user1000 关注的用户;user1000.followers 保存用户 user1000 的粉丝。

这两个 key 有一个共同的部分 user1000,可以指定对这个共同的部分做 slot 映射计算,这样他们就可以在同一个槽中了。

使用方式:

{user1000}.following 和 {user1000}.followers

就是把共同的部分使用 { } 包起来,计算 slot 值时,如果发现了花括号,就会只对其中的部分进行计算。

1

评论0

请先

显示验证码
没有账号?注册  忘记密码?

社交账号快速登录