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