- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我目前有一个场景,我们使用 REDIS 在 散列集 HSET
中存储字符串 field-value
对。
使用散列集而不是集合的最初原因是在 GUI 搜索栏中使用 HSCAN
检索记录比仅仅使用 SCAN
更容易,因为它更容易获取要在 COUNT
字段中使用的散列长度。
我在 Redis 文档中读到,GET
和 HGET
命令的执行时间复杂度为 O(1),但我的团队成员认为,如果我存储所有单个键中的值,然后它基本上在 HGET
期间返回整个哈希,而不是我需要的单个 field-value
。
所以对于一个虚构但相似的例子:
users
的哈希集。 field:value
对 username:email
如果当我执行 hget users coolguy
时,返回的是整个哈希还是用户 coolguy
的电子邮件?
最佳答案
首先,HSET不是哈希集,它创建的是哈希表。 redis中的hash table和set(其实就是hash set)背后的机制是一样的,区别主要在于hash table是有值的。
回答你的问题:
If when I execute hget users coolguy, is the entire hash getting returned or just the email for user coolguy?
只是该用户的电子邮件。您还可以使用 HMGET 一次获取多个用户的电子邮件。对于您获取的每个用户,它是 O(1),对于 n 个用户,它是 O(n)。
关于performance - 从 Redis SETS 获取数据是否比 HSETS 更快或更高效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55052043/
我正在使用 Redis 2.8 key 空间 Pub/Sub 通知,我想知道是否有可能在 HSET 命令后通知哪个字段发生变化? 目前,由于HSET 命令,但我最好知道哪个字段已设置 - 我知道我可以
给定代码的输出是什么?Jedis 可以在数据库中保存两个不同类型但名称相同的数据集吗?如果不是,在打印线上,j.get 会返回什么? j.set 是否转换为 j.hset? 我是 Redis 数据库的
我在redis中有几个用户的数据,例如 hset - user111;字段 - dayssincelogin ..... 我想为所有用户定期更新 dayssincelogin,一种方法是 KEYS u
我有一个 json 对象,例如一个包含大约 10 个键/值对的用户对象,我目前将其存储在集合中以用于各种分组。 我将对象字符串化,然后在输出时对其进行解析。更新有时很痛苦,因为我必须获取数据然后重置它
这个问题在这里已经有了答案: How can I borrow from a HashMap to read and write at the same time? (2 个回答) 2年前关闭。 我想
http://search.cpan.org/dist/Redis/lib/Redis.pm#hset $r->hset('hashname', $key => $value); ## returns
我正在使用 spring,它是缓存抽象。使用@Cacheable 注解非常方便。但据我所知,这种抽象在 redis 上使用 get/set/del 操作。有什么方法可以使用hset/hget/hdel
我需要使 redis 散列中超过 1 个月的所有键过期。 最佳答案 This is not possible , 为了 keeping Redis simple . Quoth Antirez,Red
如果我有两个排序集,具有不同分数的不同成员集: ZADD set1 10 "player1" ZADD set1 15 "player2" ZADD set1 5 "player3" ZADD set
Redis 不支持仅当键存在时才支持 HSET。 http://redis.io/commands#hash在客户端中实现该功能的最佳方式是什么? 最佳答案 使用事务在客户端很容易实现。 WATCH
我需要使 redis 散列中超过 1 个月的所有键过期。 最佳答案 This is not possible , 为了 keeping Redis simple . Quoth Antirez,Red
我正在阅读 this article其中提到在 redis 中存储 100 万个 key 将使用 17GB 的内存。然而,当切换到散列时,将它们分 block 为 1k(例如:HSET "mediab
我在 redis-py 上设置了一个管道来保存 2 个不同的哈希值 p = self.app.redis.pipeline() key_id = '{}{}'.format(self.prefix,a
我会用点对我的数据进行排序 redis 127.0.0.1:6379[4]> hset player1 point 2 (integer) 1 redis 127.0.0.1:6379[4]> hse
我正在处理的当前项目中有一个 DAO(数据访问对象),它是 redis 数据库的抽象。以下是与我即将提出的问题相关的所有代码: var redis = require("redis"); var _
我正在使用 Redis 在 NodeJS 和 MongoDB 中实现一个缓存层。我是 Redis 的新手。所以我在尝试在给定时间后自动清除缓存时遇到了麻烦。我得到的错误 ReplyError: ERR
我正在使用 rredis 将散列存储到键值,如下所示: library(rredis) redishost HGET simulatorinput asdf "X\n\x00\x00\x00\x02\
我在 Redis 缓存方面走投无路。我想在启动 key 时设置 TTL。 key 将由 hSet($hash, $key, $data) 设置 expire($key, '3600') 好像不行。有没
我正在使用 Redis 使用 HSET 存储一些数值。这是我正在使用的示例命令 HSET "abc" "field" 123 我希望它存储一个整数,但是当我执行 HGETALL 时,结果是一个字符串:
一个HSET是这样的: HSET myhash field1 "Hello" 有没有办法在“field1”键上设置过期时间/TTL。在 myhash tmk 上设置过期时间很简单,但我不知道如何将 T
我是一名优秀的程序员,十分优秀!