redis初级

当前redis版本(2.4.8)并不支持集群,但是jedis通过内置路由树的模式,对redis进行了简单的sharding,此时池内每个连接对象对应多个redis实例连接,示例代码如下:

package com.suning.framework.sample.jedis.shardedpool;
 
import java.util.ArrayList;
 
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;
 
/**
 *
 * 功能描述: jedis中的ShardedJedisPool为ShardeJedis的池实现
 * 每个ShardedJedis中内置了路由树,可针对多个Redis实例进行路由
 *
 */
 
public class ShardedJedisPoolTester {
    public static void main(String[] args) {
        // 配置jedis连接池的基本属性
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxActive(50);//设置最大连接数
        jedisPoolConfig.setMaxIdle(10);//设置池中最大空闲连接数
        jedisPoolConfig.setMaxWait(2000);//设置获取连接最大等待时长
        jedisPoolConfig.setTestOnBorrow(true);//设置获取连接前是否进行连接测试
        //配置sharding服务器信息
        ArrayList<JedisShardInfo> shardInfoList = new ArrayList<JedisShardInfo>();
        shardInfoList.add( new JedisShardInfo("localhost",6379,"server_6379"));
        shardInfoList.add( new JedisShardInfo("localhost",6380,"server_6380"));
        //根据连接池基本配置信息及sharding服务器信息列表,生成切片连接池
        ShardedJedisPool jedisPool = new ShardedJedisPool(jedisPoolConfig, shardInfoList);
        ShardedJedis jedis = null;
        try {
            // 从连接池中获取连接
            jedis = jedisPool.getResource();
            // 执行redis操作
            jedis.set("name", "xiexu");
            // 执行redis操作
            String value = jedis.get("name");
            System.out.println(value);
        } catch (Exception ex) {
        } finally {
            // 释放jedis连接,而非断开连接
            jedisPool.returnResource(jedis);}
}}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值