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.
102 lines
3.7 KiB
102 lines
3.7 KiB
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)); |
|
} |
|
}
|
|
|