zoukankan      html  css  js  c++  java
  • Redis(八)

    Redis集群

    author:QYX

    问题:

    容量不够?redis如何进行扩容?

    并发写操作,redis如何分摊?

    什么是集群?

    Redis集群实现了对Redis的水平扩容,即启动N个redis节点,将整个数据库分布存储在这个N个节点中,每个节点存储总数据的1/N

    Redis集群通过分区(partition)来提供一定程度的可用性(availbility):即使集群中有一部分节点失效或者无法进行通讯,集群也可以继续处理命令请求

     

     

     

     

    注意不要使用127.0.0.1,要使用真实的IP地址

    我们可以发现集群启动了

    然后以集群的方式进入客户端

    redis-cli -c(cluster) -p 端口号

    测试一下

    可以使用cluster nodes命令查看集群信息

     

     我们可以使用{}来指定相关组,相同组之间的数据必定在同一个插槽中

     何为slot?

     

     

    回答:

    1 从节点会变为主节点

    2 主节点会变成从节点

    3 不能继续

    Redis集群提供了以下好处:

    1 实现扩容

    2 分摊压力

    3 无中心配置相对简单

    Redis集群的不足

    1 多键操作是不被支持的

    2 多键的Redis事务是不被支持的,lua脚本也不被支持

    3 由于集群方案出现较晚,很多公司已经采用了其他的集群方案,而代理或者客户端分片的方案想要迁移至redis cluster,需要整体迁移而不是逐步过度,复杂度过度

    Redis集群的java操作

     

    public void testRedis()
    {
        Set<HostAndPort> sets=new HashSet<>();
        sets.add(new HostAndPort("198.162.99.1",6379));
        JedisCluster jedisCluster=new JedisCluster(sets);
        jedisCluster.set("admin","123456");
        String admin = jedisCluster.get("admin");
        System.out.println(admin);
        jedisCluster.close();
    }
  • 相关阅读:
    jsp tag
    加密算法
    webpack4.x 使用
    vue部分知识点
    数据赋值处理
    Promise markdown版
    Promise-github版
    vuex简单介绍-官网
    vue-router-官网
    vue官方实例-分例-14-19
  • 原文地址:https://www.cnblogs.com/qyx66/p/12219828.html
Copyright © 2011-2022 走看看