草庐IT

database-performance

全部标签

performance - 从 Redis SETS 获取数据是否比 HSETS 更快或更高效?

我目前有一个场景,我们使用REDIS在散列集HSET中存储字符串field-value对。使用散列集而不是集合的最初原因是在GUI搜索栏中使用HSCAN检索记录比仅仅使用SCAN更容易,因为它更容易获取要在COUNT字段中使用的散列长度。我在Redis文档中读到,GET和HGET命令的执行时间复杂度为O(1),但我的团队成员认为,如果我存储所有单个键中的值,然后它基本上在HGET期间返回整个哈希,而不是我需要的单个field-value。所以对于一个虚构但相似的例子:我有一个Redis实例,其中包含一个名为users的哈希集。散列集有150,000个field:value对userna

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年以来就没有更新

performance - 使用 Stackexchange.Redis 的 MGET 调用在负载下变得越来越慢

我有一个在AWSECS的linux容器中运行的ASP.NetCoreWebAPI。此API主要从Redis获取数据,但如果不存在,则会回退到数据库(我们设计了99.99%的数据都在Redis缓存中)。我有一个相当高的负载,大约1-2KRPS(当然对你们中的一些人来说可能是中到小;-)。此API通过MGET(20-60之间的任意位置)为每个请求查找多个键。一切都是异步的,没有同步代码或等待或其他容易发生死锁的代码。RPS上升得越多,事情就会变得越来越慢。我还尝试了PreserveAsyncOrder=false,但情况似乎更糟。我认为我的Redis服务器(位于Elasticache中)不

database - 从关系数据库访问 Redis

有什么方法可以从关系数据库(例如Oracle或SQLServer)访问Redis数据?我想到的一个用例是ETL到数据仓库。 最佳答案 我试图理解这个问题:您在传统的RDBM中有数据,并且您想从这里提取信息并加载到Redis中?还是反过来?无论哪种方式,由于我没有能力谈论RDBMS,我希望创建一个程序(在我的例子中是Java),它可以从Redis中提取信息,并将其上传到Oracle。有使用Java客户端库与Redis交互的选项(JDBCRedis和JRedis是示例)如果您能详细说明您的问题,您可能会从社区获得更好的答案。

database - 图数据库返回社交网络中两个人的共同 friend 列表

是否有任何具有内置功能的图形数据库可以返回2人或多人之间的共同friend列表-就像在Facebook这样的社交网络中一样?结果应尽可能快地返回,而不需要执行复杂的计算或遍历数据库。如果不能,有哪些实现方式?OriendDB呢?结合使用图数据库和Redis怎么样? 最佳答案 不确定特定的图形数据库(我是通过在Redis之上构建自己的图形数据库来解决这个问题的)但是假设friend意味着直接连接,找到共同的friend相当简单-只需从每个人和计算交点。Redis有一个命令可以非常快速地本地执行此操作。它的SQL查询也相当简单。获取单个

database - 我如何在 Redis 中组织汽车的制造商、型号和生成

我需要在DB(Redis)汽车中存储它的品牌、型号和世代,以及下一个要求:我需要能够获取所有确切制造商、制造商和型号或制造商、型号和代数的汽车(例如所有BMW-M3-E30,或者只是所有BMW-M3等等)我需要存储汽车评级,以便我可以获取顶级XBMW或顶级XBMWE30...我设计了一些结构,但它似乎太大了。我有4种对象类型:汽车、品牌、型号、世代。它们以树结构分组。树的顶部(根)是制造,下一层是模型,下一代,底部是汽车。因此makes、models和generations已排序集合,分别包含models、generations和cars,cars、generations和models

database - Redis 不保存数据

我在redis.conf中启用了'appendonly'值,但Redis仍然无法将数据保存到磁盘上。我想在数据库发生变化时保存数据。即使我杀死Redis服务器,我也不会丢失数据。请给我一些建议。 最佳答案 我遇到了同样的问题,无论是谁,当您“configsetappendonlyyes”时,它只会更改正在运行的实例。当您启动rdis-server.exe时,它​​会启动一个新实例,因为没有指定配置文件。要解决这个问题显然是使用CMD:"C:\ProgramFiles\Redis\redis-server.execonf/redis.

database - Windows平台下的Redis

我可以在需要在windows平台上运行的应用程序中使用REDIS吗?我很担心官方的说法siteTheRedisprojectdoesnotdirectlysupportWindows,howevertheMicrosoftOpenTechgroupdevelopsandmaintainsanexperimentalWindowsporttargetingWin32/64.CurrentlytheportisnotproductionqualitybutcanbeusedfordevelopmentpurposesonWindowsenvironments.Welookforwardfo

database - Redis 高效创建键

我正在尝试将一些数据存储在redis中。考虑以下示例。一个人在不同的年份拥有不同的汽车。目前我正在存储这样的key-cars:johndoe:1991:mercedesmodels1enginev1cars:johndoe:1992:mercedesmodels1enginev1cars:jane:1992:BMWmodels2enginev2cars:foobar:1991:hondamodels3enginev3这样做的好处是-我可以使用带键的通配符来获取不同的数据。例如1.allcarsboughtin1991keyscars:*:1991:*2.allcarsownedbyjo

javascript - Node Redis : Multiple queries in different redis databases with same client

我对Nodejs及其异步方式不是很熟悉。我正在尝试查询不同的redis数据库。我有一个简单的函数可以从redis数据库中获取key:functionget_key(client,key,db,callback){if(key){client.select(db,function(e,s){if(e){console.log('client.selecterr:'+e);}elseif(s){client.get(key,function(e,s){callback(e,s);returns;});}});}return我正在使用它来查询多个数据库,如下所示:get_key(client