草庐IT

redis-test

全部标签

node.js - 在 Redis 中设置键前缀的正确方法是什么?

我正在使用Redis临时存储验证码和移动代码。当我设置验证码时,我使用:Redis.set('captcha'+remoteIP,text);我可以在GUI管理器中看到key是captcha:127.0.0.1。Redis自动将captcha识别为前缀。如果我使用Redis.set('captcha:'+remoteIP,text),key将是captcha::127.0.0.1。但是当我通过Redis.set('code'+mobile,code);set代码时,实际的key是code1xxxxxxxxxx,无前缀。我必须使用Redis.set('code:'+mobile,code

node.js - 使用 redis 作为数据库使用 nodeJS

我在我的应用程序中使用“redis”模块。但这是抛出错误。我的代码如下-//应用程序.jsvarexpress=require('express');varpath=require('path');varfavicon=require('serve-favicon');varlogger=require('morgan');varcookieParser=require('cookie-parser');varbodyParser=require('body-parser');varredis=require('redis');varclient=redis.createClient(

c# - 使用 StackExchange.Redis 时,如何在 RedisValue 之上维护 C# 原始类型

我开始使用StackExchange.Redis用于存储键值对的客户端。我有一个嵌套的动态对象(JObject),我将该对象展平为一个键值结构,如下所示:让我们假设JObject看起来像:"Root":{"Obj1":{"Prop":12,"Prop2":"StringValue"}}我将这个对象展平为Dictionary生成如下所示的键值对:key:"Root.Obj1.Prop"|value:12key:"Root.Obj1.Prop2"|value:"StringValue"我正在使用object而不是string因为我的客户知道如何处理各种原语(并不总是strings)。特定的

parallel-processing - Redis 实例到底是什么?

我是Redis的新手,希望能够尽快从数据库中执行读取操作。我认为如果我可以实现并行性,它应该会提高性能,并且我读到拥有多个Redis实例可能是实现这一目标的方法。虽然我对Redis实例到底是什么感到有点困惑。它是Redis集群中的另一个节点吗?如果是的话,一个实例可以是从属节点还是主节点? 最佳答案 一个Redis实例通常是指Redis软件服务器进程。单个物理/虚拟服务器可以运行多个软件进程,Redis或其他。这使得在其上拥有多个Redis实例的服务器成为可能。每个Redis实例都有一个运行模式和一个角色。可能的运行模式是独立的或集

java - 使用 Redis 在 Spring Boot 中将对象添加到 Http Session 失败

当我尝试将对象添加到session中时,如下所示:HttpSessionsession=....MyObjectobject=....session.setAttribute("my_object",object);然后我得到一个异常:org.springframework.data.redis.serializer.SerializationException:Cannotserialize;nestedexceptionisorg.springframework.core.serializer.support.SerializationFailedException:Failedt

node.js - NodeJS - 安全连接到外部 redis 服务器

在我的主服务器上,我从外部/单独的redis服务器获取数据,该服务器通过apihttps://localhost:7000/api访问/?token=****有效。然而token和api并不安全。并且由于我希望将redis服务器分开,因此该技术不适合我的情况。在我的例子中,我想要2个独立的服务器A和B。A应该在不使用api或url调用的情况下从B加载数据...相反,它应该使用port(例如//server:123)。这样,服务器B只能从A访问。我希望这种方法适用于开发和生产。我相信AWS有“服务器组”,但这只是生产......那么有没有办法和nodejs建立这种联系呢?我还想知道这是否

redis - redis过期的机制是什么?使用回调或服务器保持 ping

我很好奇Redis是如何实现过期的?Redis是否使用回调使key过期或服务器需要不断pingRedis以检查过期。 最佳答案 没有回调,也不需要检查过期。每次访问key时,Redis首先检查它是否已过期。此外,使用内部cron(每100毫秒)执行一次主动到期。在其中,Redis尝试使它在内部数据结构中跟踪的volatile键过期。从您的问题来看,您似乎有兴趣收到有关过期事件的通知。如果是这种情况,您应该阅读有关RedisKeyspaceNotifications的文档页面这解释了如何做到这一点。

redis - 从 Redis 集合或列表中取出多个项目的有效方法是什么,保证收到的数量

我有列表(如果这是唯一的方式,它可以是一个集合)。我连接了多个客户端,列表将一次一个地从外部填充。我需要一种有效的方法来将N个项目作为一个批处理从该列表中提取到一个客户端中。我不在乎它最终出现在哪个客户端上,只是插入列表的前N项最终出现在一个客户端上,而下一个N可能最终出现在另一个(或相同的)。我真的不确定如何使用列表来实现这一点,我可以阻止弹出但一次只能阻止一个。我真的更喜欢从列表中排序。我在想我可以使用集合,让所有客户端都使用SCARD访问Redis。当他们检测到计数为=>时,N的SPOP。这应该让我至少有一个客户端填充N,并且每个接收少于N的客户端将它们返回到集合。我重复SCAR

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上找到一个类似的