forked from fanruan/demo-tabledata-redis
richie
5 years ago
29 changed files with 427 additions and 80 deletions
@ -0,0 +1,40 @@ |
|||||||
|
package com.fr.plugin.db.redis.core.accessor; |
||||||
|
|
||||||
|
import redis.clients.jedis.Tuple; |
||||||
|
|
||||||
|
import java.io.Closeable; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
import java.util.Set; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019-09-18 |
||||||
|
*/ |
||||||
|
public interface EmbedRedis extends Closeable { |
||||||
|
|
||||||
|
Set<String> keys(String pattern); |
||||||
|
|
||||||
|
String get(String key); |
||||||
|
|
||||||
|
String hget(String key, String field); |
||||||
|
|
||||||
|
List<String> hmget(String key, String... fields); |
||||||
|
|
||||||
|
Map<String, String> hgetAll(String key); |
||||||
|
|
||||||
|
Set<String> hkeys(String key); |
||||||
|
|
||||||
|
List<String> lrange(String key, long start, long end); |
||||||
|
|
||||||
|
List<String> mget(String... keys); |
||||||
|
|
||||||
|
Set<String> smembers(String key); |
||||||
|
|
||||||
|
Set<Tuple> zrangeWithScores(final String key, final long start, final long end); |
||||||
|
|
||||||
|
void select(int index); |
||||||
|
|
||||||
|
String ping(); |
||||||
|
} |
@ -0,0 +1,118 @@ |
|||||||
|
package com.fr.plugin.db.redis.core.accessor.category; |
||||||
|
|
||||||
|
import com.fanruan.api.log.LogKit; |
||||||
|
import com.fr.plugin.db.redis.core.accessor.EmbedRedis; |
||||||
|
import redis.clients.jedis.Jedis; |
||||||
|
import redis.clients.jedis.JedisCluster; |
||||||
|
import redis.clients.jedis.JedisPool; |
||||||
|
import redis.clients.jedis.Tuple; |
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
import java.util.Set; |
||||||
|
import java.util.TreeSet; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019-09-18 |
||||||
|
*/ |
||||||
|
public class ClusterRedisClient implements EmbedRedis { |
||||||
|
|
||||||
|
private JedisCluster jedisCluster; |
||||||
|
|
||||||
|
public ClusterRedisClient(JedisCluster jedisCluster) { |
||||||
|
this.jedisCluster = jedisCluster; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Set<String> keys(String pattern) { |
||||||
|
TreeSet<String> keys = new TreeSet<String>(); |
||||||
|
Map<String, JedisPool> clusterNodes = jedisCluster.getClusterNodes(); |
||||||
|
for (String k : clusterNodes.keySet()) { |
||||||
|
JedisPool jp = clusterNodes.get(k); |
||||||
|
Jedis connection = jp.getResource(); |
||||||
|
try { |
||||||
|
keys.addAll(connection.keys(pattern)); |
||||||
|
} catch (Exception e) { |
||||||
|
LogKit.error(e.getMessage(), e); |
||||||
|
} finally { |
||||||
|
connection.close(); |
||||||
|
} |
||||||
|
} |
||||||
|
return keys; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String get(String key) { |
||||||
|
return jedisCluster.get(key); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String hget(String key, String field) { |
||||||
|
return jedisCluster.hget(key, field); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<String> hmget(String key, String... fields) { |
||||||
|
return jedisCluster.hmget(key, fields); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Map<String, String> hgetAll(String key) { |
||||||
|
return jedisCluster.hgetAll(key); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Set<String> hkeys(String key) { |
||||||
|
return jedisCluster.hkeys(key); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<String> lrange(String key, long start, long end) { |
||||||
|
return jedisCluster.lrange(key, start, end); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<String> mget(String... keys) { |
||||||
|
return jedisCluster.mget(keys); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Set<String> smembers(String key) { |
||||||
|
return jedisCluster.smembers(key); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Set<Tuple> zrangeWithScores(String key, long start, long end) { |
||||||
|
return jedisCluster.zrangeWithScores(key, start, end); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void select(int index) { |
||||||
|
jedisCluster.select(index); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String ping() { |
||||||
|
Map<String, JedisPool> clusterNodes = jedisCluster.getClusterNodes(); |
||||||
|
for (String k : clusterNodes.keySet()) { |
||||||
|
JedisPool jp = clusterNodes.get(k); |
||||||
|
Jedis connection = jp.getResource(); |
||||||
|
try { |
||||||
|
return connection.ping(); |
||||||
|
} catch (Exception e) { |
||||||
|
LogKit.error(e.getMessage(), e); |
||||||
|
} finally { |
||||||
|
connection.close(); |
||||||
|
} |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void close() throws IOException { |
||||||
|
jedisCluster.close(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,89 @@ |
|||||||
|
package com.fr.plugin.db.redis.core.accessor.category; |
||||||
|
|
||||||
|
import com.fr.plugin.db.redis.core.accessor.EmbedRedis; |
||||||
|
import redis.clients.jedis.Jedis; |
||||||
|
import redis.clients.jedis.Tuple; |
||||||
|
|
||||||
|
import java.io.IOException; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
import java.util.Set; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author richie |
||||||
|
* @version 10.0 |
||||||
|
* Created by richie on 2019-09-18 |
||||||
|
*/ |
||||||
|
public class StandaloneRedisClient implements EmbedRedis { |
||||||
|
|
||||||
|
private Jedis jedis; |
||||||
|
|
||||||
|
public StandaloneRedisClient(Jedis jedis) { |
||||||
|
this.jedis = jedis; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Set<String> keys(String pattern) { |
||||||
|
return jedis.keys(pattern); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String get(String key) { |
||||||
|
return jedis.get(key); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String hget(String key, String field) { |
||||||
|
return jedis.hget(key, field); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<String> hmget(String key, String... fields) { |
||||||
|
return jedis.hmget(key, fields); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Map<String, String> hgetAll(String key) { |
||||||
|
return jedis.hgetAll(key); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Set<String> hkeys(String key) { |
||||||
|
return jedis.hkeys(key); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<String> lrange(String key, long start, long end) { |
||||||
|
return jedis.lrange(key, start, end); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public List<String> mget(String... keys) { |
||||||
|
return jedis.mget(keys); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Set<String> smembers(String key) { |
||||||
|
return jedis.smembers(key); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public Set<Tuple> zrangeWithScores(String key, long start, long end) { |
||||||
|
return jedis.zrangeWithScores(key, start, end); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void select(int index) { |
||||||
|
jedis.select(index); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public String ping() { |
||||||
|
return jedis.ping(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void close() throws IOException { |
||||||
|
jedis.close(); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue