zoukankan      html  css  js  c++  java
  • Redis 集群版

    1.# yum install ruby -y

    1.1 后面需要用到ruby脚本

    2.# yum install rubygems -y

    1.1 安装ruby包管理器

    3.# gem install redis-3.0.0.gem

    3.1 脚本需要ruby其他包,所以安装这个redis.gem

    4.# mkdir reids-cluster

    4.1 在/usr/local中新建redis-cluster文件夹

    5.# cp -r bin ../redis-cluster/redis01

    5.1 把之前安装好的redis/bin复制到redis-cluster中并起名为redis01

    6.# rm -rf dump.rdb

    6.1 删除掉redis01 中dump.rdb数据库文件

    7.# vi redis.conf

    7.1 修改redis01中端口号为7001, 找到port 后面修改为7001

    7.2 去掉cluster-enabled yes前面的注释

    7.3 如果之前设置过密码,注释掉密码.如果没有设置过过略7.3这步骤

    8.# cp -r redis01 redis02

    cp -r redis01 redis03

    cp -r redis01 redis04

    cp -r redis01 redis05

    cp -r redis01 redis06

    8.1 把redis01文件夹在复制5份,分别起名为redis02,redis03,redis04,redis05,redis06

    9# vi redis02/redis.conf

    9.1 此命令需要在redis-cluster下执行

    9.2 把其他5个文件夹中redis.conf中port修改成不同的值,分别为7002,7003,7004,7005,7006

    9.2 设置cluster-config-file nodes-700*.conf用于节点之间的连接

    9.3 设置 appendonly yes

    10.# cp *.rb /usr/local/redis-cluster/

    10.1 去redis解压目录中src下执行此命令

    10.2 把redis-trib.rb复制到reids-cluster中.

    11.# vi startall.sh

    11.1 创建一个批量启动文件

    11.2 把下面内容粘贴到文件中

          cd redis01

          ./redis-server redis.conf

          cd ..

          cd redis02

          ./redis-server redis.conf

          cd ..

          cd redis03

          ./redis-server redis.conf

          cd ..

          cd redis04

          ./redis-server redis.conf

          cd ..

          cd redis05

          ./redis-server redis.conf

          cd ..

          cd redis06

          ./redis-server redis.conf

          cd ..

    12.# chmod +x startall.sh

    12.1 给脚本设置一个可启动权限

    13.# ./startall.sh

    13.1 执行脚本,启动所有redis服务

    14.# ps aux|grep redis

    14.1 查看所有服务是否启动成功

    15.# ./src/redis-cli --cluster create 192.168.48.136:7001 192.168.48.136:7002 192.168.48.136:7003 192.168.48.136:7004 192.168.48.136:7005 192.168.48.136:7006 --cluster-replicas 1

    15.1 创建集群

    15.2 在执行时按照提示输入’yes’

    16.# ./redis01/redis-cli -h 192.168.10.128 -p 7001 -c(-h表示ip,-p表示端口,-c表示集群模式连接)

    16.1 进入任意节点测试

    17.# redis01/redis-cli -p 7001 shutdown

    17.1 关闭其中一个redis

    18.# vi shutdown.sh

    18.1 在redis-cluster中创建文件,并添加下面内容

          ./redis01/redis-cli -p 7001 shutdown

          ./redis02/redis-cli -p 7002 shutdown

          ./redis03/redis-cli -p 7003 shutdown

          ./redis04/redis-cli -p 7004 shutdown

          ./redis05/redis-cli -p 7005 shutdown

          ./redis06/redis-cli -p 7006 shutdown

     

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xsi:schemaLocation="
                http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
        <context:property-placeholder location="classpath:redis-cluster.properties" />
        <context:component-scan base-package="com">
        </context:component-scan>
        <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
            <property name="maxIdle" value="${redis.maxIdle}" />
        </bean>
    
        <bean id="hostport1" class="redis.clients.jedis.HostAndPort">
            <constructor-arg name="host" value="${redis.host1}" />
            <constructor-arg name="port" value="${redis.port1}" />
        </bean>
        <bean id="hostport2" class="redis.clients.jedis.HostAndPort">
            <constructor-arg name="host" value="${redis.host2}" />
            <constructor-arg name="port" value="${redis.port2}" />
        </bean>
        <bean id="hostport3" class="redis.clients.jedis.HostAndPort">
            <constructor-arg name="host" value="${redis.host3}" />
            <constructor-arg name="port" value="${redis.port3}" />
        </bean>
        <bean id="hostport4" class="redis.clients.jedis.HostAndPort">
            <constructor-arg name="host" value="${redis.host4}" />
            <constructor-arg name="port" value="${redis.port4}" />
        </bean>
        <bean id="hostport5" class="redis.clients.jedis.HostAndPort">
            <constructor-arg name="host" value="${redis.host5}" />
            <constructor-arg name="port" value="${redis.port5}" />
        </bean>
        <bean id="hostport6" class="redis.clients.jedis.HostAndPort">
            <constructor-arg name="host" value="${redis.host6}" />
            <constructor-arg name="port" value="${redis.port6}" />
        </bean>
    
        <bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
            <constructor-arg name="nodes">
                <set>
                    <ref bean="hostport1" />
                    <ref bean="hostport2" />
                    <ref bean="hostport3" />
                    <ref bean="hostport4" />
                    <ref bean="hostport5" />
                    <ref bean="hostport6" />
                </set>
            </constructor-arg>
            <constructor-arg name="timeout" value="6000" />
            <constructor-arg name="poolConfig">
                <ref bean="jedisPoolConfig" />
            </constructor-arg>
        </bean>
    </beans>
    

      

        @Test
        public void testcluster() {
    
    //        ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:/applicationContext-redis-cluster.xml");
    //        JedisCluster = (JedisCluster) ac.getBean("redisCluster");
    //        ValueOperations<String, Object> valueOperations = redisTemplate.opsForValue();
    
            for (int i=0; i<100; i++) {
                jedisCluster.set("name"+i+i,"value"+i);
            }
    
            System.out.println(jedisCluster.get("name4"));
        }
  • 相关阅读:
    Eclipse 快捷键
    计算机网络之读Internet网发展史 读后感
    计算机网络之读Internet网发展史 读后感
    动态加载布局的技巧
    二、JSP的3个编译指令,7个动作指令,9个内置对象
    【杭电】[2050]折线分割平面
    【杭电】[2050]折线分割平面
    【杭电】[2068]RPG的错排
    【杭电】[2068]RPG的错排
    【杭电】[4500]小Q系列故事——屌丝的逆袭
  • 原文地址:https://www.cnblogs.com/erfsfj-dbc/p/10660424.html
Copyright © 2011-2022 走看看