美文网首页
Jedis 访问阿里云redis

Jedis 访问阿里云redis

作者: 朝圣的路上 | 来源:发表于2016-12-10 12:16 被阅读577次

阿里云redis目前不支持公网直接访问,如果需要本地联调阿里云redis。需要在ecs上建立转发。
关于公网访问的阿里云请参考这篇文章:阿里云redis rinetd 配置.
下面给个jedis访问redis的实例:

public class RedisAliyun {
    public static Logger log = LoggerFactory.getLogger(RedisUtil.class);
    //Redis服务器IP
    private static String ADDR = "10.26.201.247";
    //阿里云redis提供的 实例ID:密码
    private static String passwd = "r-XXXXXXX:1qaz2wsx";

    //Redis的端口号
    private static int PORT = 6379;

    //可用连接实例的最大数目,默认值为8;
    //如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。
    private static int MAX_ACTIVE = 1024;

    //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例,默认值也是8。
    private static int MAX_IDLE = 200;

    //等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException;
    private static int MAX_WAIT = 10000;

    private static int TIMEOUT = 10000;

    //在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
    private static boolean TEST_ON_BORROW = true;

    private static JedisPool jedisPool = null;

    /**
     * 初始化Redis连接池
     */
    static {
        try {
            JedisPoolConfig config = new JedisPoolConfig();
            config.setMaxTotal(MAX_ACTIVE);
            config.setMaxIdle(MAX_IDLE);
            config.setMaxWaitMillis(MAX_WAIT);
            config.setTestOnBorrow(TEST_ON_BORROW);
            jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT,passwd);
        } catch (Exception e) {
            //e.printStackTrace();
            log.error("error: " + e.toString());
        }
    }

    /**
     * 获取Jedis实例
     * @return
     */
    public synchronized static Jedis getJedis() {
        try {
            if (jedisPool != null) {
                Jedis resource = jedisPool.getResource();
                return resource;
            } else {
                return null;
            }
        } catch (Exception e) {
            //e.printStackTrace();
            log.error("error: " + e.toString());
            return null;
        }
    }

    /**
     * 释放jedis资源
     * @param jedis
     */
    public static void releaseResource(final Jedis jedis) {
        if (jedis != null) {
            jedis.close();
        }
    }
    
    public static void main(String[] args) {
        Jedis client = RedisAliyun.getJedis();
        if(client == null){
            System.out.println("error to connect a redis");
            return;
        }
        for(int i=0; i<100; i++){
            String key = String.format("test-%d", i);
            client.append(key, key+"key");
        }
        String result = client.get("test-1");
        System.out.println(result);
    }
}

相关文章

  • Jedis 访问阿里云redis

    阿里云redis目前不支持公网直接访问,如果需要本地联调阿里云redis。需要在ecs上建立转发。关于公网访问的阿...

  • 关于Jedis连接ECS

    环境 Java代码 Maven 服务器使用的是阿里云Ecs 问题 jedis访问Ecs的Redis报错 原因分析 ...

  • 阿里云redis外网访问

      阿里云redis外网访问设置步骤主要包括设置白名单、设置阿里云外网访问和通过redis-cli实现连接。具体步...

  • Redis实战

    springboot整合jedis访问Redis jedis是类似于jdbc数据库连接的Redis客户端 POM....

  • 使用Nginx替代rinetd访问阿里云Redis

    服务使用的阿里云的Redis,但是阿里云的Redis不提供公网地址,因此如果公司内网要访问Redis必然需要一个代...

  • 阿里云redis rinetd 配置

    阿里云数据库 Redis 需要通过 ECS 的内网进行连接访问,如果您本地需要通过公网访问云数据库 Redis,可...

  • Jedis连接池的使用方法

      Jedis有直连方式,所谓直连指的是Jedis每次都会新建TCP连接,使用后在断开连接,对于平凡访问Redis...

  • Redis持久化

    1.Jedis连接redis服务器 注意事项:必须要放开redis允许启动主机访问。注释/etc/redis.co...

  • Redis的HelloWorld

    Jedis redis=new Jedis("192.168.4.154",6379);redis.auth("a...

  • redis非切片基本操作

    package com.redis; import redis.clients.jedis.Jedis; impo...

网友评论

      本文标题:Jedis 访问阿里云redis

      本文链接:https://www.haomeiwen.com/subject/pxzymttx.html