使用 Java 从 Rediss 读取 JSON

问题描述 投票:0回答:0

我正在尝试查询 Rediss 并使用 Java 获得响应。我能够连接到 rediss 但是我无法找到合适的命令来查询。我已经尝试过 command.json.get 但我收到错误。如下所示是我的代码示例,我正在尝试获取的数据示例以及我收到的错误

import io.lettuce.core.RedisClient;
import io.lettuce.core.RedisURI;
import io.lettuce.core.api.StatefulRedisConnection;
import io.lettuce.core.api.sync.RedisCommands;
import io.lettuce.core.cluster.ClusterClientOptions;
import io.lettuce.core.cluster.ClusterTopologyRefreshOptions;
import io.lettuce.core.cluster.RedisClusterClient;
import io.lettuce.core.cluster.api.StatefulRedisClusterConnection;
import io.lettuce.core.cluster.api.sync.RedisAdvancedClusterCommands;
import io.lettuce.core.cluster.api.sync.RedisClusterCommands;
import io.lettuce.core.resource.ClientResources;
import io.lettuce.core.resource.DefaultClientResources;
import org.json.JSONObject;
import io.lettuce.core.cluster.ClusterTopologyRefreshOptions.RefreshTrigger;
import java.time.Duration; 
public class redissClass {
     public static void main(String[] args) {
         String name = "name";
            String password = "password";
            String host="host.com";
            String query="1006110582";
            ClientResources clientResources = DefaultClientResources.create();
            RedisClusterClient clusterClient = RedisClusterClient.create(clientResources, RedisURI.builder().redis(host,6379)
                    .withSsl(true)
                    .withAuthentication(name,password)
                    .withVerifyPeer(false).build());
            clusterClient.setOptions(ClusterClientOptions.builder()
                    .topologyRefreshOptions(ClusterTopologyRefreshOptions.builder()
                            .enablePeriodicRefresh(Duration.ofSeconds(5))
                            .build())
                    .build());
            StatefulRedisClusterConnection<String, String> connection = clusterClient.connect();
            RedisClusterCommands<String, String> syncCommands = connection.sync();
            String response = syncCommands.ping();
            System.out.println("Redis response: " + response);
            System.out.println("type"+syncCommands.type(query));
            String jsonString=syncCommands.get(query);
            JSONObject jsonObject = new JSONObject(jsonString);
            String euid=jsonObject.getString("euid");
            System.out.println("euid"+euid);
            connection.close();
            clientResources.shutdown();
        } }

错误:

Redis response: PONG typeReJSON-RL Exception in thread "main" io.lettuce.core.RedisCommandExecutionException: WRONGTYPE Operation against a key holding the wrong kind of value     
at io.lettuce.core.internal.ExceptionFactory.createExecutionException(ExceptionFactory.java:137)     
at io.lettuce.core.internal.Exceptions.bubble(Exceptions.java:72)  
at io.lettuce.core.internal.Futures.awaitOrCancel(Futures.java:250)
at io.lettuce.core.cluster.ClusterFutureSyncInvocationHandler.handleInvocation(ClusterFutureSyncInvocationHandler.java:130)     
at io.lettuce.core.internal.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:80)     
at jdk.proxy1/jdk.proxy1.$Proxy23.get(Unknown Source)     
at redissClass.main(redissClass.java:44)
java jedis lettuce
© www.soinside.com 2019 - 2024. All rights reserved.