草庐IT

refit_keys

全部标签

node.js - 尽管存在 key ,Redis spop 仍返回 null - NodeJS

我有一个问题,尽管数据库中存在一个键/条目,但spopRedis命令返回null。我在本地机器上运行的Redis服务器上从未遇到过这个问题。烦人的是没有错误什么的。我使用Redis桌面管理器检查HerokuRedis数据库中的内容。这是获取数据库中值的NodeJS代码:redis.spop('id',function(err,result){}我可能会做的一件与众不同的事情如下:我最多有6个进程同时从数据库中弹出值。知道什么会导致这种奇怪的行为吗?技术规范:本地Redis:3.0.4Redis远程:Heroku3.0.3NodeJS模块:ioredis 最佳

redis - 为什么 sscan 显示不存在的 key ?

我运行sscanA0,列表中的第一个键是X。但是X不存在。ttlX给出-2,existsX给出0,getX给出(nil),但是当我运行sscan时它仍然显示在列表中。更多,infokeyspace表示总共有594620个键。但是,scardA表示有1211593。那么,集合中的键数是整个数据库中键数的两倍?这是如何工作的???如何获取集合中键的准确数量? 最佳答案 您将集合的成员与数据库中的键混淆了。这里唯一的键是A。A的成员不是键。现在,您可能正在使用键的名称作为A的字符串值成员,但它们不是键。p>

redis - Redis 是否曾在其数据库(持久数据)中搜索过 key ?

我知道redis可以持久化数据,但是在操作过程中,当你在redis服务器上查找一个键时,它是否需要去持久化数据(文件)中寻找那个键,或者它只是寻找它在内存缓存中?如果在缓存中找不到key怎么办,它会自动尝试在磁盘上查找吗?缓存过大如何处理,如果写入缓存到内存,是否清空缓存? 最佳答案 Redis中的所有键总是在内存中。保存在磁盘上的数据仅在引导过程中出于恢复目的访问。 关于redis-Redis是否曾在其数据库(持久数据)中搜索过key?,我们在StackOverflow上找到一个类似的

redis - 我的 redis 服务器每隔几分钟就丢失一次 key

我的Redis服务器每隔几分钟就会丢失key。这太有线了,我找不到这个问题的原因。我试图用expireat选项保留我的key,但几分钟后expire和expireat选项被忽略,所有key都消失了,并添加了两个有线key,“weaponsZ”,“weaponsX”。我不知道我的redis中是如何存在这些有线key的。请帮忙,我想我要疯了。这是我的环境。[操作系统:Ubuntu16.04.564位,Redis:4.0.10,GPU:Nvidia1080Ti,Tensorflow1.0,CUDA8]127.0.0.1:6379>设置'a'1好的127.0.0.1:6379>expireat

redis - Redis如何处理一个hash key的并行更新操作?

我在redis中有一个key(hash类型)关键是service_status:cluster_1值如下{service_1:normal,service_2:normal,service_3:normal,service_4:normal,service_5:down...}该系统是一个监控系统。此数据用于存储一个集群的服务状态。集群中有上千个服务,因此可能有上千个更新请求同时命中redis更新同一个key。我关心的是redis如何处理这个?由于这些更新指向相同的数据,是否会有一些锁定? 最佳答案 Redis是单线程的,因此没有“

php - ZF2 Redis : how to set expiration time for a key

我必须在服务器上设置一个Redis来存储来自ZendFramework2的信息。现在,我可以存储信息,但我不能给它们一个过期时间,因为它们会在一段时间后自然更新。我还没有找到关于这一步的一些文档,在我看来它相当晦涩。我的代码:页面:config/autoload/cache.global.phpreturnarray('caches'=>array('redis'=>array('adapter'=>array('name'=>'redis','lifetime'=>60,//doesn'twork'options'=>array('server'=>array('host'=>'x.

redis - Redis "EXPIRE"命令是否刷新 key 的当前生命周期?

假设我们有现有的键,比如key1Redis中的非空值。考虑它已经设置了到期时间。如果我们再次对该key调用EXPIRE命令,在此有效期内,比如EXPIREkey110,它会刷新该key的当前生命周期吗?“生命周期”我的意思不是有效期,而是这个特定key在内存中已经存在多长时间的当前计数器准确地说,例如:上午10:00我们打电话:SETkey1"Blabla"EXPIREkey1600上午10:05我们打电话EXPIREkey1600key1将在什么时间到期-上午10:10还是上午10:15? 最佳答案 是的,它确实冲洗了它。可以直接

caching - Redis内存管理-基于key、数据库或实例清除

我是Redis的新手。我已经在我们的应用程序中实现了缓存,并且运行良好。我想存储两种主要数据类型:目录列表和文件内容。它并不是真正相关,但这将缓存通过WebDAV提供的文件。我希望文件结构几乎永远保留。文件内容只需要缓存很短的时间。我已经设置了我的到期时间/TTL来反射(reflect)这一点。当服务器达到内存容量时,是否可以将某些缓存项优先于其他项?即刷新key、刷新整个数据库或刷新整个Redis实例。我想保留我的目录列表并在内存开始成为问题时刷新文件内容。编辑:阅读thisarticle似乎是我需要的。我想我需要使用volatile-ttl。我的文件内容将有一个更短的TTL集,所以

php - 仅前缀 redis session key

有没有办法在整个应用程序中使用一个Predis客户端连接,但只为sessionkey添加前缀?Predis库只允许通过设置选项参数wheninstantiatingaclientobject来定义键前缀:$sessionClient=newPredis\Client($config,array('prefix'=>'session-'));我在一个Redis实例中存储的不仅仅是session。因此,要存储不带前缀的其他值,我认为这会起作用:$client=newPredis\Client($config);但是键仍然有前缀。我假设Predis正在跨客户端实例共享连接和选项。那么一个前缀

python - 基于值组合的安全散列 key

我在MongoDB中有大量记录/文档,我需要通过每个文档列表中的值组合来限制对项目的访问。想象一下安全的可能的单个值是[1,2,3]。记录可以是这些的任意组合,即:()(1,)(​​2,)(3,)(1,2)(1,3)(2,3)(1,2,3)有权访问[1]的用户只能看到包含()&(1)的记录有权访问[2]的用户只能看到包含()&(2)的记录有权访问[1,2]的用户只能看到具有(),(1),(2),(1,2)的记录只有可以访问[1,2,3]的用户才能看到所有记录现在在数据库的入口点,我知道用户的访问权限是什么,例如[1,2,3]。但我不能轻易地(尤其是索引)查看记录以检索用户有权访问的所有