Redis集群开发

  1. redis安装与开发;redis是一种非关系型数据库,可以永久保存数据在磁盘内存中。一般可以作为保存系统缓存的一种的数据库搭载工具,安打开装完成后启动redis.server。然后打开cmd命令窗口。可以输入redis一系列命令行。

  2. redis服务端端口号:6379。

  3. redis可以储存的数据类型,hash,string,列表,集合,有序集合。

  4. 一般存储是用Jedis jedis=new Jedis(“127.0.0.1”,6379);来创建对象,然后如果要存储字符串直接用jedis .set(“test”,”testString”);后面如果要获取testString的value值,直接用get(“test”)就可以获取testString的value值;

  5. 如果定义集群式redis客户端,需要用到shardedJedis,需要用到多机环境。

  6. 如果需要开发redis集群开发,需要对redis集群开发进行配置。需要创建JedisPoolConfig对象。然后设置最大连接数。JedisPoolConfig.setMaxTotal(50);用jedisPoolConfig设置最大的连接数。

  7. 定义集群信息,用JedisSharedInfo  shards=new JedisSharedInfo();并且定义多个redis端口。定义集群List<JedisSharedInfo> list=new ArrayList<JedisSharedInfo>();list.add(new JedisShredInfo(“127.0.0.1”,6379));创建多个端口信息。JedisSharedInfo是用来设置redis集群端口信息的。

  8. 定义redis连接池pool。定义好端口信息之后,然后把配置的信息及端口的信息端口丢到连接池中。

  9. ShardedJedisPool  pool=new ShardedJedisPool(poolConfig,shards);如果需要存入到redis数据库中,需要拿到Jedis,shardedJedis,或者jediscluster对象才能存储数据。sharededJedis是属于轻量级集群redis对象。Shardedjedis=pool.getResource();可以通过这种方式创建shardedJedis对象。然后执行set方法存储数据到shardedJedis对象中。

  10. 配置完成集群端口之后。可以封装redis作为专门的借口工具,定义set方法和get方法。设置生存时间。及删除键方法,可以根据时间来删除保存在redis里面的数据。

  11. 定义set方法,get方法。Del方法。直接删除键就可以了。

  12. Redis集群代码示例;

  13. //设置连接池的相关配置
            JedisPoolConfig poolConfig = new JedisPoolConfig();
            poolConfig.setMaxTotal(2);
            poolConfig.setMaxIdle(1);
            poolConfig.setMaxWaitMillis(2000);
            poolConfig.setTestOnBorrow(false);
            poolConfig.setTestOnReturn(false);

            //设置Redis信息
            String host = "127.0.0.1";
            JedisShardInfo shardInfo1 = new JedisShardInfo(host, 6379, 500);
            shardInfo1.setPassword("test123");
            JedisShardInfo shardInfo2 = new JedisShardInfo(host, 6380, 500);
            shardInfo2.setPassword("test123");
            JedisShardInfo shardInfo3 = new JedisShardInfo(host, 6381, 500);
            shardInfo3.setPassword("test123");

            //初始化ShardedJedisPool
            List<JedisShardInfo> infoList = Arrays.asList(shardInfo1, shardInfo2, shardInfo3);
            ShardedJedisPool jedisPool = new ShardedJedisPool(poolConfig, infoList);

            //进行查询等其他操作
           ShardedJedis jedis = null;
            try {
                jedis = jedisPool.getResource();
                jedis.set("test", "test");
                jedis.set("test1", "test1");
                String test = jedis.get("test");
                System.out.println(test);
                ......
            } finally {
                 //使用后一定关闭,还给连接池
    if(jedis!=null) {
    jedis.close();
    }
            }               
     

    ShardedJedis jedis = jedisPool.getResource();


            jedis.set("cnblog", "cnblog");
            jedis.set("redis", "redis");
            jedis.set("test", "test");
            jedis.set("123456", "1234567");
            Client client1 = jedis.getShard("cnblog").getClient();////获取端口
            Client client2 = jedis.getShard("redis").getClient();
            Client client3 = jedis.getShard("test").getClient();
            Client client4 = jedis.getShard("123456").getClient();
           
            ////打印key在哪个server中
            System.out.println("cnblog in server:" + client1.getHost() + " and port is:" + client1.getPort());
            System.out.println("redis  in server:" + client2.getHost() + " and port is:" + client2.getPort());
            System.out.println("test   in server:" + client3.getHost() + " and port is:" + client3.getPort());
            System.out.println("123456 in server:" + client4.getHost() + " and port is:" + client4.getPort()); 

转载于:https://my.oschina.net/zhanggc/blog/1605156

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值