草庐IT

multi-db

全部标签

redis - Redis Multi/Exec 的 IO 成本

我想向Redis发送一个multi/exec命令,如下所示:redis127.0.0.1:6379>MULTIOKredis127.0.0.1:6379>LPUSH"JIMMY""ABC"QUEUEDredis127.0.0.1:6379>LRANGE"JIMMY"0-1QUEUEDredis127.0.0.1:6379>EXEC不过,我想了解一下网络I/O成本。似乎会有4次来回往返,但我认为Redis会保持连接打开?在一个block中发送所有这些命令不是更快吗?甚至可以这样做吗? 最佳答案 是的,这是可能的,这叫做pipelini

windows - 检测 Redis 的 master db 故障转移和自动切换 slave 到 master?

我有一个主Redis数据库,它有2个从属数据库,它们是通过以下方式构建的:实例#1slaveof192.168.1.16379实例#2slaveof192.168.1.16379问题是否有任何设置可以完成:"Whenthemasterhasfailover,promoteinstance#2tobethemaster"? 最佳答案 您需要使用RedisSentinel以及支持Sentinel的Redis客户端。 关于windows-检测Redis的masterdb故障转移和自动切换sla

windows - 检测 Redis 的 master db 故障转移和自动切换 slave 到 master?

我有一个主Redis数据库,它有2个从属数据库,它们是通过以下方式构建的:实例#1slaveof192.168.1.16379实例#2slaveof192.168.1.16379问题是否有任何设置可以完成:"Whenthemasterhasfailover,promoteinstance#2tobethemaster"? 最佳答案 您需要使用RedisSentinel以及支持Sentinel的Redis客户端。 关于windows-检测Redis的masterdb故障转移和自动切换sla

mongodb - 我应该为多用户项目协作应用程序选择什么 NoSQL DB?

我正在尝试通过PHP或Node.js开发iphone应用程序后端(我还没有决定)。该应用类似于多用户项目协作工具。例如,每个iPhone用户都可以创建项目,其他受邀成员可以讨论多少他们希望花费>在这个特定项目上。每个用户都可以累加单笔费用,服务器将处理计算总费用并更新回所有项目成员。所以它不太可能是一个实时应用程序,但仍然有很多更新记录和更新需要由数据库完成。据我谷歌搜索...CouchDB比MongoDB和Radis慢一点。MongoDB速度很快,但有可能丢失旧数据。由于我的项目必须持久化所有数据,我应该依赖MongoDB吗?Radis比这两个快得多,但它对我的项目来说太过分了,需要

mongodb - 我应该为多用户项目协作应用程序选择什么 NoSQL DB?

我正在尝试通过PHP或Node.js开发iphone应用程序后端(我还没有决定)。该应用类似于多用户项目协作工具。例如,每个iPhone用户都可以创建项目,其他受邀成员可以讨论多少他们希望花费>在这个特定项目上。每个用户都可以累加单笔费用,服务器将处理计算总费用并更新回所有项目成员。所以它不太可能是一个实时应用程序,但仍然有很多更新记录和更新需要由数据库完成。据我谷歌搜索...CouchDB比MongoDB和Radis慢一点。MongoDB速度很快,但有可能丢失旧数据。由于我的项目必须持久化所有数据,我应该依赖MongoDB吗?Radis比这两个快得多,但它对我的项目来说太过分了,需要

transactions - 在 Redis 中,当存在没有关联的 EXEC 或 DISCARD 的 MULTI 时会发生什么?

我有一系列在Redis集之间移动元素的脚本。有时这些操作需要是原子的。有时一个脚本会失败,但其他脚本会继续工作。我很好奇如果在一个脚本中我运行MULTI并启动但随后脚本以某种方式失败并且我从不调用EXEC或DISCARD会发生什么-我知道我的数据完整性很好因为事务永远不会发生,但是由于命令在某处排队并且从未执行我担心如果这种情况发生得太频繁(不应该,但谁知道呢?)我需要清理队列吗? 最佳答案 取决于“脚本失败”的确切含义如果与redis服务器的连接丢失,则查询缓冲区将被释放。如果与redis服务器的连接仍然活跃,而你的代码的其他部分

transactions - 在 Redis 中,当存在没有关联的 EXEC 或 DISCARD 的 MULTI 时会发生什么?

我有一系列在Redis集之间移动元素的脚本。有时这些操作需要是原子的。有时一个脚本会失败,但其他脚本会继续工作。我很好奇如果在一个脚本中我运行MULTI并启动但随后脚本以某种方式失败并且我从不调用EXEC或DISCARD会发生什么-我知道我的数据完整性很好因为事务永远不会发生,但是由于命令在某处排队并且从未执行我担心如果这种情况发生得太频繁(不应该,但谁知道呢?)我需要清理队列吗? 最佳答案 取决于“脚本失败”的确切含义如果与redis服务器的连接丢失,则查询缓冲区将被释放。如果与redis服务器的连接仍然活跃,而你的代码的其他部分

node.js - 带有 Bluebird promise 的 Redis multi

您是否知道将redis客户端的多事务命令与bluebirdpromises一起使用的方法?因为,下面的代码永远不会结束。var$redis=require('redis'),$p=require('bluebird'),$r=$p.promisifyAll($redis.multi());$r.setAsync('key','test').then(function(reply,data){//...});$r.exec(function(){$r.quit();process.exit();}); 最佳答案 命令不挂起唯一需要做的

node.js - 带有 Bluebird promise 的 Redis multi

您是否知道将redis客户端的多事务命令与bluebirdpromises一起使用的方法?因为,下面的代码永远不会结束。var$redis=require('redis'),$p=require('bluebird'),$r=$p.promisifyAll($redis.multi());$r.setAsync('key','test').then(function(reply,data){//...});$r.exec(function(){$r.quit();process.exit();}); 最佳答案 命令不挂起唯一需要做的

vector - 用于在向量空间中搜索的 NoSQL DB

我对NoSQLDBS(如Cassandra、Mongo、Redis等)完全陌生,我想创建这种类型的结构:{"item_id":"ABC1","x1":0.55,"x2":-0.29,..."x100":0.17}基本上,我有数百万个项目和100个与每个项目关联的float。我的主要任务是搜索靠近给定float向量(在100维向量空间中)的项目,并获取例如前k个项目或距离小于d的所有项目。是否有特别适合此类任务的NoSQL数据库?感谢您的任何提示,帕特里克 最佳答案 据我所知,目前还没有数据库对非(2|3)D空间索引提供开箱即用的支持