首页 > 解决方案 > 如何从 Redis 缓存中获取自定义值?

问题描述

我正在使用 Spring Boot 开发 Redis。我是 Redis 的新手。我遇到了一个问题,我需要来自 Redis 缓存的自定义数据。

例如key为1,Redis中存储的对象为

{
    name,
    age,
    DOB,
    ...    
}

我只想从 Redis 中检索其中的两个,例如 name 和 age 但是对于给定的键 Redis 返回完整的对象。但我只需要该对象的自定义字段。

我不知道如何解决这个问题,我不能只缓存 2 个必填字段。其他目的需要缓存整个对象。

请帮忙。提前致谢。

标签: javaspring-bootredis

解决方案


您可以使用hmget操作并指定所需的字段。官方文档中的下一个示例:

redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HMGET myhash field1 field2 nofield
1) "Hello"
2) "World"
3) (nil)

编辑: 如果您更喜欢使用列表,它可能如下所示:

RPUSH mylist "name"
(integer) 1
redis> RPUSH mylist "age"
(integer) 2
redis> RPUSH mylist "DOB"
(integer) 3

然后你可以使用

LRANGE mylist 0 1
1) "name"
2) "age"

但是,如果您需要将一个对象的键与值相关联,则更优雅的将是哈希数据结构


推荐阅读