- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 Redis 在 NodeJS 和 MongoDB 中实现一个缓存层。我是 Redis 的新手。所以我在尝试在给定时间后自动清除缓存时遇到了麻烦。我得到的错误
ReplyError: ERR wrong number of arguments for 'hset' command
这是我的代码块
mongoose.Query.prototype.exec = async function() {
const key = JSON.stringify(
Object.assign({}, this.getQuery(), {collection:
this.mongooseCollection.name})
);
const cachedValue = await client.hget(this.hashKey, key);
if(cachedValue) {
const parsedDoc = JSON.parse(cachedValue);
return Array.isArray(parsedDoc) ? parsedDoc.map(doc => new
this.model(doc)) : new this.model(parsedDoc);
}
const result = await exec.apply(this, arguments);
client.hset(this.hashKey, key, JSON.stringify(result), 'EX', 10);
return result;
}
最佳答案
Redis HSET
只接受 3 个参数。如果你想在一次调用中存储多个 key ,你应该使用 HMSET
。
引用:
https://redis.io/commands/hset
https://redis.io/commands/hmset
client.hmset(this.hashKey, key, JSON.stringify(result), 'EX', 10);
应该可以。
关于javascript - 如何修复 Redis 中 HSET 的参数错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54042517/
我正在使用 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
我是一名优秀的程序员,十分优秀!