如何用java获取redis的info
发布网友
发布时间:2022-05-03 12:25
我来回答
共2个回答
懂视网
时间:2022-05-03 16:46
com.alibaba.fastjson.JSON;
import redis.clients.jedis.Jedis;
import com.alibaba.fastjson.JSONObject;
import java.util.HashMap;
import com.google.gson.*;
import java.util.Map;
import java.util.Set;
public class redis {
public static void getTokens(String ip, int port, String password){
Jedis jedis = new Jedis(ip, port);
// 密码
jedis.auth(password);
System.out.println("连接成功");
// 获取钻石app utoken
// 第几个库表
int index = 0;
jedis.select(index);
// 根据 hash获取值
String va = jedis.hget("VERIFYCODE:SMS","");
// 解析json值
System.out.println(va);
JSONObject jo = JSON.parseObject(new String(va));
System.out.println(va);
String json_value = jo.getString("ttoken");
String clientSide = jo.getString("clientSide");
// 解析字典值
Gson gson = new Gson();
Map map = new HashMap<String, Object>();
map = gson.fromJson(clientSide, map.getClass());
System.out.println(map);
String name = (String) map.get("name");
String version = (String) map.get("version");
String osVersion = (String) map.get("osVersion");
String buildId = (String) map.get("buildId");
// 获取请求头
String head = name + "/" + version + "(build:" + buildId + ":" + osVersion + ")";
System.out.println(head);
// 获取企业后台 msid
int indexse = 0;
jedis.select(indexse);
Set<String> vase = jedis.keys("BACKSTAGE:OAUTH:LOGIN:SESSION:"+"*");
String user = "autotest";
System.out.println(vase);
for (String all_seid : vase){
String seid = jedis.get(all_seid);
if (seid.equals(user)){
System.out.println(all_seid);
String seid_value = all_seid.substring(30, 66);
System.out.println(seid_value);
}
}
// 获取sass后台 msid
String value = jedis.get("SAAS:LOGIN:STK:test");
System.out.println(value);
}
public static void main(String[] args) {
getTokens("ip", port, "password");
}
}
java连接redis数据库获取数据
标签:oid 成功 ali ide fast hashmap 数据库 buildid public
热心网友
时间:2022-05-03 13:54
预备
jedis-2.5.2
commons-pool2-2.2.jar
使用单连接
此方式仅建议用于开发环境做调试用。
// 创建连接
String host = "192.168.56.102";
int port = 6379;
Jedis client = new Jedis(host, port);
// 执行set指令
String result = client.set("key-string", "Hello, Redis!");
System.out.println( String.format("set指令执行结果:%s", result) );
// 执行get指令
String value = client.get("key-string");
System.out.println( String.format("get指令执行结果:%s", value) );
运行上述代码,控制台输出:
set指令执行结果:OK
get指令执行结果:Hello, Redis!
使用连接池
此方式适用于仅使用单个Redis实例的场景。
// 生成连接池配置信息
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(10);
config.setMaxTotal(30);
config.setMaxWaitMillis(3*1000);
// 在应用初始化的时候生成连接池
JedisPool pool = new JedisPool(config, "192.168.56.102", 6379);
// 在业务操作时,从连接池获取连接
Jedis client = pool.getResource();
try {
// 执行指令
String result = client.set("key-string", "Hello, Redis!");
System.out.println( String.format("set指令执行结果:%s", result) );
String value = client.get("key-string");
System.out.println( String.format("get指令执行结果:%s", value) );
} catch (Exception e) {
// TODO: handle exception
} finally {
// 业务操作完成,将连接返回给连接池
if (null != client) {
pool.returnResource(client);
}
} // end of try block
// 应用关闭时,释放连接池资源
pool.destroy();
运行上述代码,控制台输出:
set指令执行结果:OK
get指令执行结果:Hello, Redis!
使用连接池+分布式
在规模较大的系统中,往往会有多个Redis实例做负载均衡。并且还实现主从备份,当主实例发生故障时,切换至从实例提供服务。
类似于Memcached的客户端,Jedis也提供了客户端分布式操作的方式,采用一致性哈希算法。
// 生成多机连接信息列表
List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
shards.add( new JedisShardInfo("127.0.0.1", 6379) );
shards.add( new JedisShardInfo("192.168.56.102", 6379) );
// 生成连接池配置信息
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(10);
config.setMaxTotal(30);
config.setMaxWaitMillis(3*1000);
// 在应用初始化的时候生成连接池
ShardedJedisPool pool = new ShardedJedisPool(config, shards);
// 在业务操作时,从连接池获取连接
ShardedJedis client = pool.getResource();
try {
// 执行指令
String result = client.set("key-string", "Hello, Redis!");
System.out.println( String.format("set指令执行结果:%s", result) );
String value = client.get("key-string");
System.out.println( String.format("get指令执行结果:%s", value) );
} catch (Exception e) {
// TODO: handle exception
} finally {
// 业务操作完成,将连接返回给连接池
if (null != client) {
pool.returnResource(client);
}
} // end of try block
// 应用关闭时,释放连接池资源
pool.destroy();
运行上述代码,控制台输出:
set指令执行结果:OK
get指令执行结果:Hello, Redis!