【问题标题】:Unable to fetch redis nested hash key values from javascript that are stored using spring RedisTemplate无法从使用 spring RedisTemplate 存储的 javascript 中获取 redis 嵌套哈希键值
【发布时间】:2020-07-05 23:05:30
【问题描述】:

redis 值使用 Java spring 包填充:RedisTemplate。现在我需要在快递服务器中使用这些值。我正在使用npm 包:redis

可以检索常规的redis键值。

例如: const redis = require("redis");

const client = redis.createClient();

能够通过client.get获得价值

我无法获取存储的哈希值。 它们使用弹簧存储: redisTemplate.opsForHash().putIfAbsent("key", "hashkey", "hashvalue") 这里key也是加密存储的。

由于密钥已加密,我无法从 javascript 代码中检索此哈希密钥值。 尝试使用:client.hgetclient.hgetall

您能帮我检索使用 java spring 包存储的哈希键值吗?

【问题讨论】:

    标签: javascript java node.js spring redis


    【解决方案1】:

    RedisTemplate 默认会序列化哈希键。如果我们不指定序列化的类型,那么它将使用默认的 RedisSerialization。如果发生这种情况,那么只有带有 RedisTemplate 包的应用才能访问哈希结构。 为了克服这个问题,我们必须在初始化 redisTemplate 对象时指定序列化的类型。例如:

    redisTemplate.setHashKeySerializer(new StringRedisSerializer(StandardCharsets.UTF_8));

    redisTemplate.setKeySerializer(new StringRedisSerializer(StandardCharsets.UTF_8));

    通过上述序列化,我们可以从 redis-cli 以及任何其他 web 应用程序(如 node-js 应用程序)访问哈希结构。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-13
      • 2021-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多