草庐IT

Redis-Commands

全部标签

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

database - 如何在不丢失redis数据的情况下将redis rdb数据加载到正在运行的redis服务器中?

我有2个redis服务器。如果我有一个redis服务器(example.rdb)的备份,那么如何在不丢失当前内存数据的情况下将此数据加载到另一个正在运行的redis服务器? 最佳答案 您可以使用rdbcommandfromredis-rdb-tools使用-c协议(protocol)选项到outputrediscommands表示RDB文件中的数据,并使用netcat、socat或类似工具将它们通过管道传输到redis实例。不幸的是,这个python包是为现在不受支持的python2.7和3.5构建的,并且自2020年以来就没有更新

c# - 如何查看 Redis-Commands RESP 表示

你好,有没有办法根据RESP协议(protocol)找出Redis命令的字符串表示形式?例如,我正在尝试使用Keys*命令从数据库中获取所有key。但是我不知道这个命令是简单字符串还是批量字符串或批量字符串数组:简单字符串表示:+Keys*\r\n批量字符串表示:$6\r\nKeys*\r\n批量字符串数组表示:*1\r\n$6\r\nKeys*\r\n有什么方法可以查看Redis服务器知道如何响应的bytes/string吗?有没有查找表?根据REDIS文档,对于Keys命令,未说明应如何构造请求消息:Returnsallkeysmatchingpattern.Whilethetim

node.js - 如何等到 Node 中的 redis 收到响应?

我是node和redis的新手。我在我的node应用程序中使用redis。我想检索以同步方式从Redis获取数据。这是我尝试过的。varredis=require("redis"),client=redis.createClient();client.set('key',10,redis.print);functiongetfn1(key){client.get(key,function(err,reply){if(err){console.log('Responsefromgetfn1:-');console.log(err);return;}console.log('Respons