java - 如何从 Redis 缓存中获取自定义值?
问题描述
我正在使用 Spring Boot 开发 Redis。我是 Redis 的新手。我遇到了一个问题,我需要来自 Redis 缓存的自定义数据。
例如key为1,Redis中存储的对象为
{
name,
age,
DOB,
...
}
我只想从 Redis 中检索其中的两个,例如 name 和 age 但是对于给定的键 Redis 返回完整的对象。但我只需要该对象的自定义字段。
我不知道如何解决这个问题,我不能只缓存 2 个必填字段。其他目的需要缓存整个对象。
请帮忙。提前致谢。
解决方案
您可以使用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"
但是,如果您需要将一个对象的键与值相关联,则更优雅的将是哈希数据结构
推荐阅读
- wcf - 在WCF中,自定义Authentication,Validate方法,抛出错误异常时如何在不停止服务的情况下处理异常?
- ruby-on-rails - 如何正确书写<%= t('.title_#{Time.now.wday}') %>?
- vim - 如何在 vim 中的文件名开头添加“#”?
- methods - 返回值的 Rust Lifetime 应该等于 struct 的生命周期
- c++ - 尝试构建 torchscript 扩展会导致 INVALID TYPE: Only int64_t and bool is supported as an integer argument type 错误
- vb.net - For i = StartIndex To 1 Step -1(索引超出了数组的边界(i-1)
- embedded - 为什么 SPI 序列与 MSB 顺序 EFR32 不匹配
- vim - 如何恢复被位置列表取代的文件的内容?
- php - 如何在 apache2 - ubuntu 上托管 .php 文件?
- go - 检查是否需要迁移