001package gu.dtalk.redis; 002 003import java.net.URI; 004import java.net.URISyntaxException; 005 006import redis.clients.util.JedisURIHelper; 007 008import static com.google.common.base.Preconditions.*; 009/** 010 * 公有云配置 011 * @author guyadong 012 * 013 */ 014public class DefaultCloudRedisConfigProvider implements RedisConfigProvider { 015 /** 默认的公有云redis连接 */ 016 public static final URI DEFAULT_CLOUD_REDIS_URI; 017 static{ 018 try { 019 DEFAULT_CLOUD_REDIS_URI = new URI("jedis://:86a1b907d54bf7010394bf316e183e67@dtalk.facelib.net:26416/0"); 020 } catch (URISyntaxException e) { 021 throw new ExceptionInInitializerError(e); 022 } 023 } 024 private static URI uri = DEFAULT_CLOUD_REDIS_URI; 025 @Override 026 public String getHost() { 027 return uri.getHost(); 028 } 029 030 @Override 031 public void setHost(String host) { 032 033 } 034 035 @Override 036 public int getPort() { 037 return uri.getPort(); 038 } 039 040 @Override 041 public void setPort(int port) { 042 043 } 044 045 @Override 046 public String getPassword() { 047 return JedisURIHelper.getPassword(uri); 048 } 049 050 @Override 051 public void setPassword(String password) { 052 053 } 054 055 @Override 056 public int getDatabase() { 057 return JedisURIHelper.getDBIndex(uri); 058 } 059 060 @Override 061 public void setDatabase(int database) { 062 063 } 064 065 @Override 066 public int getTimeout() { 067 return 0; 068 } 069 070 @Override 071 public void setTimeout(int timeout) { 072 073 } 074 075 @Override 076 public URI getURI() { 077 return uri; 078 } 079 080 @Override 081 public void setURI(URI uri) { 082 } 083 084 @Override 085 public final RedisConfigType type(){ 086 return RedisConfigType.CLOUD; 087 } 088 /** 089 * 初始化 uri 090 * @param uri 不可为{@code null} 091 */ 092 public static void initURI(URI uri) { 093 DefaultCloudRedisConfigProvider.uri = checkNotNull(uri,"uri is null"); 094 } 095}