forked from fanruan/demo-tabledata-redis
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
3.7 KiB
103 lines
3.7 KiB
6 years ago
|
package com.fr.plugin.db.redis.help;
|
||
|
|
||
|
import com.eclipsesource.v8.V8;
|
||
|
import com.eclipsesource.v8.V8Array;
|
||
|
import com.eclipsesource.v8.V8Object;
|
||
|
import com.eclipsesource.v8.utils.V8ObjectUtils;
|
||
|
import com.fr.log.FineLoggerFactory;
|
||
|
import com.fr.third.redis.clients.jedis.Jedis;
|
||
|
|
||
|
import java.util.ArrayList;
|
||
|
import java.util.List;
|
||
|
import java.util.Map;
|
||
|
import java.util.Set;
|
||
|
|
||
|
/**
|
||
|
* @author richie
|
||
|
* @version 10.0
|
||
|
* Created by richie on 2019-03-18
|
||
|
*/
|
||
|
public class RedisClient {
|
||
|
|
||
|
private Jedis jedis;
|
||
|
private V8 v8;
|
||
|
|
||
|
public RedisClient(V8 v8, Jedis jedis) {
|
||
|
this.jedis = jedis;
|
||
|
this.v8 = v8;
|
||
|
}
|
||
|
|
||
|
public String get(String key) {
|
||
|
long start = System.currentTimeMillis();
|
||
|
try {
|
||
|
return jedis.get(key);
|
||
|
} finally {
|
||
|
FineLoggerFactory.getLogger().info("Fetch data from redis spend time {} ms.", System.currentTimeMillis() - start);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public String hget(String key, String field) {
|
||
|
long start = System.currentTimeMillis();
|
||
|
try {
|
||
|
return jedis.hget(key, field);
|
||
|
} finally {
|
||
|
FineLoggerFactory.getLogger().info("Fetch data from redis spend time {} ms.", System.currentTimeMillis() - start);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public V8Array hkeys(String key) {
|
||
|
long start = System.currentTimeMillis();
|
||
|
Set<String> set = jedis.keys(key);
|
||
|
FineLoggerFactory.getLogger().info("Fetch data from redis spend time {} ms.", System.currentTimeMillis() - start);
|
||
|
return V8ObjectUtils.toV8Array(v8, new ArrayList<String>(set));
|
||
|
}
|
||
|
|
||
|
public V8Array hmget(String key, String... fields) {
|
||
|
long start = System.currentTimeMillis();
|
||
|
List<String> list = jedis.hmget(key, fields);
|
||
|
FineLoggerFactory.getLogger().info("Fetch data from redis spend time {} ms.", System.currentTimeMillis() - start);
|
||
|
return V8ObjectUtils.toV8Array(v8, list);
|
||
|
}
|
||
|
|
||
|
public V8Object hgetAll(String key) {
|
||
|
long start = System.currentTimeMillis();
|
||
|
Map<String, String> map = jedis.hgetAll(key);
|
||
|
FineLoggerFactory.getLogger().info("Fetch data from redis spend time {} ms.", System.currentTimeMillis() - start);
|
||
|
return V8ObjectUtils.toV8Object(v8, map);
|
||
|
}
|
||
|
|
||
|
public V8Array keys(String pattern) {
|
||
|
long start = System.currentTimeMillis();
|
||
|
Set<String> set = jedis.keys(pattern);
|
||
|
FineLoggerFactory.getLogger().info("Fetch data from redis spend time {} ms.", System.currentTimeMillis() - start);
|
||
|
return V8ObjectUtils.toV8Array(v8, new ArrayList<String>(set));
|
||
|
}
|
||
|
|
||
|
public V8Array lrange(String key, long start, long end) {
|
||
|
long start0 = System.currentTimeMillis();
|
||
|
List<String> list = jedis.lrange(key, start, end);
|
||
|
FineLoggerFactory.getLogger().info("Fetch data from redis spend time {} ms.", System.currentTimeMillis() - start0);
|
||
|
return V8ObjectUtils.toV8Array(v8, list);
|
||
|
}
|
||
|
|
||
|
public V8Array mget(V8Array keys) {
|
||
|
long start = System.currentTimeMillis();
|
||
|
int len = keys.length();
|
||
|
String[] parameters = new String[len];
|
||
|
for (int i = 0; i < len; i ++) {
|
||
|
parameters[i] = keys.getString(i);
|
||
|
}
|
||
|
List<String> list = jedis.mget(parameters);
|
||
|
FineLoggerFactory.getLogger().info("Fetch data from redis spend time {} ms.", System.currentTimeMillis() - start);
|
||
|
keys.release();
|
||
|
return V8ObjectUtils.toV8Array(v8, list);
|
||
|
}
|
||
|
|
||
|
public V8Array smembers(String key) {
|
||
|
long start = System.currentTimeMillis();
|
||
|
Set<String> set = jedis.smembers(key);
|
||
|
FineLoggerFactory.getLogger().info("Fetch data from redis spend time {} ms.", System.currentTimeMillis() - start);
|
||
|
return V8ObjectUtils.toV8Array(v8, new ArrayList<String>(set));
|
||
|
}
|
||
|
}
|