草庐IT

lua - 在 EVALSHA 中生成新 key

Documentation声明key必须显式传递,因此如果使用Redis集群,命令可以转发到适当的节点。但是,这是否也适用于新key?例如,如果我有一个脚本来注册一个新实体,并且这样的脚本正在动态创建一个由INCR的结果和文字组成的全新key,这对Redis集群来说会是一个问题吗?另一种方法是在单独的操作中调用INCR,并将key作为KEY[1]传递给脚本。 最佳答案 如果您仔细确保您的新key与其他key散列到同一台服务器,我认为您会没事的。也就是说,Cluster的重要之处不仅仅是预先声明您的key,而是要确保您的脚本操作的所有

用于将 redis key 读取为流的 node.js 模块

我在Node.js上读取Redis中的键时遇到问题,它们将数据保存到mongodb。因为键的数量很大(130万),这会导致JavaScript堆内存不足。任何人都可以建议我一些Node.js模块来将Rediskey读取为流或解决此问题的其他一些解决方案,这样我就可以避免此问题。非常感谢! 最佳答案 ioredis(https://github.com/luin/ioredis)确实支持流。SCAN来自自述文件的示例。varredis=newRedis();//Createareadablestream(objectmode)vars

postgresql - Key - 支持按值搜索的值存储

我正在开发一个ASP.NETWebApi项目。对于我系统的一部分,我需要一个键值存储来存储字符串。键和值都是字符串(尽管它们可以是长字符串)。键和值都是唯一的。最初,我开始使用Redis,问题是我需要在store中不仅通过key而且通过value进行搜索(判断value是否存在,不需要返回keyin这个情况)。基本上,我有两个选择,第一个是为我的项目使用默认数据库-PostgreSQL。否则我应该选择另一个支持上述操作的键值存储。你会建议哪个选项?如果是第二个,哪家店支持这样的操作?哪个选项在性能方面更好? 最佳答案 您需要的不是另

雷迪斯 : Querying based on matching key pattren

我是Redis的新手,我试图通过Redis文档找出这个问题,但没有成功。这是详细信息。假设我插入了如下字符串。Setcategory:1"Men"Setcategory:2"Women"Setcategory:3"Kids"Setcategory:4"Home"Setcategory:5"shoes"...在这种情况下,我想通过查询遵循特定模式的键来获取所有值category:*。Getcategory:*有没有办法像这样获取所有类别? 最佳答案 使用SCAN.SCAN是遍历Redis数据库中的键的唯一安全方法。SCAN将分块键空间

phpRedis - 如何从另一个命名空间推送/获取 key ?

我有一个数据库(db0)和2个命名空间:space1、space2。对于我的代码,我使用的是phpRedis(https://github.com/phpredis/phpredis)库。示例“字符串”:space1_:main_site_products:77-005_expire。我怎样才能从space2得到这个key?或者我怎样才能把key放到另一个空间? 最佳答案 可能您必须使用选项(第二个参数)prefix设置为space1_创建到服务器的新连接,然后通过$redisSpace1->get获取您的key('main_sit

redis - 仅当 key 存在时如何重新分配hset

我使用redis来缓存我的网络博客。我的文章有一个字段“checked”,如果这个字段在数据库中发生变化,我也需要将新值设置为redis,这是代码ifredis_conn.exists("article"):redis_conn.hset("article","checked",1)看起来还可以,但是如果articlekey在exists之后hset之前过期,就会出现一些问题。articlekey只会有一个字段被选中,其他字段如title,content等...都会消失。如何仅当key存在时才进行hset,如果key已过期则什么也不做。 最佳答案

ruby-on-rails - 如何使用 ruby​​ on rails 从 redis 获取所有匹配的 key

如何使用Rubyonrails从存储在redis中的键列表中获取所有匹配的键。我使用的是Ruby2.5.1版本。我使用SCAN来查询匹配的键,但它总是返回2个值而不是5个值。当我通过计数时它返回所有值。那么如何在RubyOnRails代码中传递计数?没有计数返回2值:127.0.0.1:6379>SCAN100match*sa*1)"sasikala(6965)"2)"Zupaensasi(6961)"使用计数返回所有(5)个值:127.0.0.1:6379>SCAN100match*sa*count1001)"Sasai(6965)"2)"Zupaensasi(6961)"3)"Ro

redis - 回收 Redis 中的过期 key

我正在尝试解决Redis中的以下问题。我有一个包含各种可用键的列表:ListMASTER:111A222B333C444D555E我希望能够从列表中弹出一个元素并将其用作具有过期时间的键。到期后,我希望能够将此号码推回MASTER以供将来使用。我没有看到任何明显的方法来做到这一点,所以我正在征求一种有创意的方法。 最佳答案 最好的方法是在key过期的时候让Redis回调,然后采取行动。但是,回调支持仍有待添加(http://code.google.com/p/redis/issues/detail?id=360)。您可以使用包含自定

redis - 增加默认内存和hash,设置redis的key limit

我正在编写一个JAR文件,它从Oracle数据库中获取大量数据并存储在Redis中。详细信息已正确存储,但我在jar中定义的setkey和hashkey在redisdb中受到限制。应该有近200个Hash和300个setkey。但是,在redis中提供键*时,我只得到29个键。请帮助增加redis内存或哈希的限制或设置key存储大小。注意:我改变了哈希最大zipmap条目1024哈希最大zipmap值64手动在redis.conf文件中。但是,它没有反射(reflect)。哪里需要改? 最佳答案 除了内存大小(检查maxmemory

session - express:session store,查询session key redis

app.use(express.session({store:newRedisStore({host:'localhost',port:6379,db:0,pass:'RedisPASS'}),secret:'1234567890QWERTY'}));上面在redis中创建了一个sessionstore。但是session数据的条目是在一些随secret钥中,例如:sess:0t-8-qJG5s0e3w4oGhBjxgAH。获取sessionkey的最佳方法是什么? 最佳答案 这应该可以解决问题:varkey=req.session