当前位置: 首页 > 知识库问答 >
问题:

Redis数据检索

叶嘉颖
2023-03-14

缓存项:map >

内部映射可以有多达25000个元素/桶。redis中有没有一种方法可以根据密钥(redis密钥、外部映射的密钥和内部映射的密钥)从内部映射中检索特定的值,而不必在访问这个redis缓存的Java方法中获取整个redis条目?

当前,如果我必须从内部映射中删除一个特定的键,我会以以下方式进行:

Map<String, Map<String, String>> mapFromRedis = redis.get("myRediscacheKey");
Map<String, String> innerMap = new HashMap<>();
if (!mapFromRedis.isEmpty()) {
    innerMap = mapFromRedis.get("key");
}
if (innerMap.containsKey("keyToBeDeleted")) {
    innerMap.remove("keyToBeDeleted");
    mapFromRedis.put("key", innerMap);
}
redis.set("myRediscacheKey", mapFromRedis);

共有1个答案

谷梁淇
2023-03-14

您的数据结构有三级映射:Redis键、外部映射键和内部映射键。从您的示例中,我们可以得到以下映射:MyRedisCacheKey->Key->KeyTobeDeleted->Value

而Redis最多只能有2级映射,即哈希。为了达到您的目标,您必须将3级映射压缩为2级映射,甚至1级映射。

压缩为2级映射

// set inner map key
hset myRediscacheKey:key keyToBeDeleted value
// remove inner map key
hdel myRediscacheKey:key keyToBeDeleted
// set inner map key
set myRediscacheKey:key:keyToBeDeleted value
// remove inner map key
del myRediscacheKey:key:keyToBeDeleted
 类似资料:
  • 问题内容: 一台服务器上的应用程序查询在另一台服务器上运行的redis。来自查询的结果数据集大约为25万,在应用服务器上似乎需要40秒。 在redis服务器或app服务器上使用命令执行命令时,在两种情况下,它们都需要大约40秒才能完成,如所述。 在查询期间,redis服务器使用大约15%的CPU。 问题: 花费40秒检索250k记录是否很慢?是否有可能将其加速到几秒钟? 问题答案: 首先,它取决于

  • 我正在使用Spring data redis和jedis与aspectJ进行日志记录。但是得到以下错误。请帮助解决此错误。我在这上面花了很多时间,但无法解决它。 我使用的是Spring数据redis 1.4.1,jedis-2.6.1和Redis-2.8 错误详情:- 下面是使用spring data redis的redis Sentinel配置的Java配置文件 下面是用于日志记录的Aspect

  • Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 目录结构CentOS /etc/redis.conf: 配置文件,用来配置 Redis 端口、数据存储、以及优化参数 /etc/redis-sentinel.conf: 哨兵配置文件,用来

  • 问题内容: 反正是有创建的Redis数据库,在那里密钥 必须 在一定时间后会过期吗?我知道我可以使用命令来使单个密钥失效,但是由于无论如何我都会在一定时间后使每个密钥失效,因此最好在Redis配置文件中指定此行为。 问题答案: 不可以,Redis(v3.2及更高版本)不提供自动设置新创建键的TTL的方法。您必须为创建的每个键显式设置它。

  • 主要内容:string字符串,hash散列,list列表,set集合,zset有序集合经过前面介绍,我们知道 Redis 是 Key-Value 类型缓存型数据库,Redis 为了存储不同类型的数据,提供了五种常用数据类型,如下所示: string(字符串) hash(哈希散列) list(列表) set(集合) zset(sorted set:有序集合) 注意:这里指的数据类型是 Value(值) 的数据类型,而非 key。 string字符串 String 是 Redis 最基

  • 15.1 Redis简介 Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启后可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型(hash)的数据,同时还提供包括string(字符串)、list(链表)、set