zoukankan      html  css  js  c++  java
  • Redis 非关系性数据库集群的搭建与常用方法

    redis 非关系型数据库,内存型数据库,现在大家都不陌生了,无论大中小型企业,都会将redis应用到自己的项目中,以此来减轻数据库的压力

    安装步骤: 

    1.安装gcc 

    安装c语言的编译环境
    yum install gcc
    -c++

    2.解压缩并且编译

    wget http://download.redis.io/releases/redis-3.2.6.tar.gz

    tar -zxvf redis-3.2.6

    //进入解压缩后的目录执行

    make

    // 将编译后的文件放入/usr/local/redis 下,自己定义
    make install PREFIX=/usr/local/redis

    3.进行redis 后端启动,使用redis-conf 配置文件

    //进入解压缩redis 目录将redis.conf 配置文件 copy 到 make install 后的目录
    cp redis.conf  /usr/local/redis/bin
    //编辑
    redis.conf
    vim  redis.conf

    修改内容 :将no 改为 yes  ,意思就是可以后台启动,不占用前台的端口

    4.启动 redis

     ./redis-server redis.conf

    5.检查是否启动成功

    ps aux|grep redis
    

    6,使用客户端连接

     ./redis-cli

    //连接其他客户端的redis

    ./redis-cli -h 192.168.241.129 -p 6379

    ok ,单台的redis 我们已经配置好了,那么在企业中,redis 集群改怎么搭建呢?

    -------redis 集群搭建,至少需要3个redis 主节点,我们这里搭建伪分布式-------

    1.创建一个集群的文件夹,用于存放我们集群的reids bin文件

    //创建集群的文件夹,用来存放我们的redis 集群

    mkdir redisCluster

    //将 make install 后的redis 文件复制到redisCluster 中先复制一份

    cp -r /usr/local/redis/bin /user/local/redisCluster/redis01

    //修改其IP 端口号(不重复),以及打开cluster-enabled,如下图

     修改端口

    将集群模式打开,将cluster-enabled 的注释去掉

     2,然后复制5份就行我们修改每一份的端口就可以了

    cp -r redis01/ redis02

    3.启动这六个redis 节点

    4.开始安装集群: 需要ruby脚本的运行环境以及redis.gem,直接将红色部分复制运行就好

    //需要安装ruby 脚本编译
    yum install ruby
    
    yum install rubygems
    
    //手工下载redis.gem
    wget --no-check-certificate https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem
    //编译
    gem install -l ./redis-3.2.1.gem

    5.找到redis 解压目录下的src目录  redis-trib.rb 文件

    //复制到我们的redis集群中
    cp redis-trib.rb /usr/local/redisCluster/

    6.运行 redis-trib.rb  脚本:红的部分需要修改为自己设置的6个节点的ip与端口

    ./redis-trib.rb create --replicas 1 127.0.0.1:9001  127.0.0.1:9002 127.0.0.1:9003 127.0.0.1:9004 127.0.0.1:9005 127.0.0.1:9006

     7.集群客户端测试-->连接必须带 -c

    //必须指明端口和 -c
    redis01/redis-cli -p 9002 -c

    java  jedis 测试连接单机版与集群版reids 测试方法

    /**
         * 单机版测试
         */
        @Test
        public void  jedisSign() {
            
            
            JedisPool jedisPool =new JedisPool("127.0.0.1",6379);
            
            //从连接池中获取连接
            Jedis jedis=jedisPool.getResource();
            
            System.out.print(jedis.ping());
            
            jedis.set("bba", "sss");
            jedis.close();
            
        }
        
        
        
        /**
         * 连接集群版redis测试
         * @throws IOException 
         */
        @Test
        public void  jedisCluster() throws IOException {
            
            //jedisCluster连接集群
            
            //所有的集群节点都放在了HostAndPort 对象中
            Set<HostAndPort> pool =new HashSet<>();
    pool.add(
    new HostAndPort("192.168.241.129",9001) ); pool.add(new HostAndPort("192.168.241.129",9002) ); pool.add(new HostAndPort("192.168.241.129",9003) ); pool.add(new HostAndPort("192.168.241.129",9004) ); pool.add(new HostAndPort("192.168.241.129",9005) ); pool.add(new HostAndPort("192.168.241.129",9006) ); JedisCluster jedisCluster =new JedisCluster(pool); jedisCluster.set("testcluster", "jediscluster"); System.out.println(jedisCluster.get("testcluster")); jedisCluster.close(); }

    Redis数据类型

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。有意思的是redis的string包含所有二进制数据,包括图片等。String一个键最大存储512MB 数据

    数据类型 获取 设置
    String Get Set
    Hash Hgetall Hmset
    List Lrange Lpush
    Set Smembers Sadd
    zset Zrangebyscore Zadd

    常用的就是String 与Hash 这两种数据类型

    原创打造,多多指教
  • 相关阅读:
    接口实际上是定义一个规范、标准
    类必须实现接口中的方法,否则其为一抽象类
    JAVA的核心概念:接口(interface)
    子类的方法必须覆盖父类的抽象方法
    Abstract可以将子类的共性最大限度的抽取出来,放在父类中,以提高程序的简洁性
    如果将一个类设置为abstract,则此类必须被继承使用
    在JAVA中利用public static final的组合方式对常量进行标识
    final可以修饰类、属性、方法
    覆盖不适用于静态方法
    静态方法不需要有对象,可以使用类名调用
  • 原文地址:https://www.cnblogs.com/iscys/p/9609465.html
Copyright © 2011-2022 走看看