Java 将数组或值列表保存到Redis缓存

Java 将数组或值列表保存到Redis缓存,java,redis,lettuce,Java,Redis,Lettuce,我试图使用Redis cloud并使用以下代码推送字符串值数组: import com.lambdaworks.redis.RedisClient; import com.lambdaworks.redis.RedisURI; import com.lambdaworks.redis.api.StatefulRedisConnection; import com.lambdaworks.redis.api.sync.RedisCommands; import org.slf4j.Logger;

我试图使用Redis cloud并使用以下代码推送字符串值数组:

import com.lambdaworks.redis.RedisClient;
import com.lambdaworks.redis.RedisURI;
import com.lambdaworks.redis.api.StatefulRedisConnection;
import com.lambdaworks.redis.api.sync.RedisCommands;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class WriteToRedis {

    private static final Logger logger = LoggerFactory.getLogger(ExchangeCurrencyPairScenario.class);

    public static void main(String[] args) throws JsonProcessingException {

        RedisClient redisClient = new RedisClient(
                RedisURI.create("redis://****@cloud.redislabs.com:15162"));
        StatefulRedisConnection<String, String> connection = redisClient.connect();
        System.out.println("Connected to Redis");
        RedisCommands<String, String> syncCommands = connection.sync();
        syncCommands.rpush("key" , new String[]{"Volvo", "BMW", "Ford", "Mazda"});
        connection.close();
        redisClient.shutdown();
}
我可以保存字符串值并连接到Redis云缓存,而不会出现任何问题。但我似乎没有正确配置与“键”关联的值的格式?如何使用Java将值正确地持久化并数组(或列表)到Redis缓存?

Redis的操作方式是

在代码中使用
rpush
意味着您试图使用属于数据类型的命令

您试图对名为
key
的键进行操作,并出现以下错误:

WRONGTYPE Operation against a key holding the wrong kind of value
这意味着您的Redis实例/DB已经包含
key
key中的数据,并且现有数据的数据类型不是List

如果您想知道密钥中包含的数据的数据类型,可以使用命令。例如,要检查
键:

syncCommands.type("key");
您可以使用命令删除该数据。例如

syncCommands.del("key");

通过“Redis Java List example”搜索,找到了这个可能有帮助的绝地武士示例
syncCommands.del("key");