标签: nosql

我可以使用MongoDB在Symfony 2中存储会话吗?

是否可以使用MongoDB在Symfony 2中存储会话?如果是这样,怎么样?

php session mongodb nosql symfony

3
推荐指数
1
解决办法
1967
查看次数

用于php程序的快速大规模键值存储

我正在为我的项目开发一个全文索引系统.作为索引页面的过程的一部分,它将数据分成非常大量的非常小的部分.

我已经将这些部分的大小设置为低至20-30字节的常量,并且可能更小,它基本上是2个8字节的整数和构成实际数据的浮点数.

由于我正在寻找的规模和创建的数量,我正在寻找一个替代mysql的替代品,它在价值集上显示出远远低于我的目标的重大问题.

我目前的想法是,键值存储将是最好的选择,我已相应地调整了我的代码.

我试过一个数字,但由于某种原因,它们似乎都比mysql更小.

我希望存储数亿或数十亿或更多键值对的顺序,所以我需要的东西不会有大的性能下降.

我已经尝试了memcachedb,membase和mongo,虽然它们都很容易设置,但是没有一个能够很好地适应我.

由于所需的密钥数量和可用的内存有限,membase的问题最多.写入速度在这里非常重要,因为这是一个非常接近均匀的工作负载,我写了一次,然后读了几次并存储它以便最终更新.

我不需要在删除方面有太多性能,我更喜欢可以集群的东西,因为我希望最终能够跨机器扩展,但它现在需要在一台机器上工作.

我也希望这个项目易于部署,因此简单的设置会更好.该项目是用PHP编写的,因此需要从php轻松访问.

我不需要有行或其他更高级别的抽象,在这种情况下它们通常是无用的,我已经从我的其他一些测试中得到了代码,以便进入一个键值存储,这似乎可能是最快的,因为我只有2个东西可以从一行键入第三个,所以几乎没有额外的工作来使用键值存储.有谁知道任何易于使用的项目可以像这样扩展?

我正在使用这个商店来存储三个数字的单个集合(大小基于它们在mysql中的存储方式,在其他存储位置可能不正确)2个8字节整数,一个用于文档的ID和一个对于单词的ID和该单词的文档比例的浮动表示(工作出现的次数除以文档中的单词数).此数据的索引是单词id和文档id所属的范围,每次我需要检索此数据时,它将是给定单词id的所有结果.我目前将单词id,范围和该单词/范围组合的计数器转换为数字的二进制表示形式,并将它们连接起来形成键以及一个2位数字来表示我存储的键的值,文档ID或浮点值.

性能测量在某种程度上主观地看待将数据放入存储器或从存储器中取出数据的过程的输出,并查看处理文档的速度以及快速刷新我的统计计数器,以便跟踪系统工作速度的更准确统计数据并在查看使用每种存储方法时的差异.

php key-value nosql key-value-store

3
推荐指数
1
解决办法
1921
查看次数

Redis Set中成员占用的字节数

我使用Redis作为内存中的hashset.在我将一个1M 8字节密钥(二进制)插入一个Set后,我发现Redis USED_MEMORY达到约100M,这意味着一个成员需要100个字节?为什么?

或者我如何配置Redis以节省内存使用量.

c++ memory hashset nosql redis

3
推荐指数
1
解决办法
1632
查看次数

在mongodb中使用$ not

我正在尝试做这样的事情:

select * from table where not (a=3 and b=4 and c=3 or x=4)
Run Code Online (Sandbox Code Playgroud)

我希望这可行:

db.table.find({
  $not: {
    $or: [
      {
        $and: [
          { a: 3 },
          { b: 4 },
          { c: 3 }
        ]
      },
      { x: 4 }
    ]
  }
})
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误:

 error: { "$err" : "invalid operator: $and", "code" : 10068 }
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以在mongodb中表达它?

mongodb nosql

3
推荐指数
1
解决办法
4434
查看次数

通过BookSleeve使用Redis.参数未知

我正在尝试通过C#使用redis.为此,我选择了BookSleeve.但我感兴趣的是大多数方法(读/写)需要一个参数:int db.该参数的描述是"要操作的数据库".当我设置db=0,然后我可以使用redis-cli.exe键入命令KEYS查看键.如果db != 0,键不显示.

问题是 - 这个参数究竟是什么意思?我没有在网上找到任何信息.

c# nosql redis booksleeve

3
推荐指数
1
解决办法
704
查看次数

使用PHP客户端使用Riak存储图像

我已经使用Basho Riak几周了.我只需要存储字符串数据.

但是,我正在使用它来存储图像,我想知道如何使用PHP客户端执行此操作.

以下是存储数据的基本代码:

require_once('riak-php-client/riak.php');

# Connect to Riak
$client = new RiakClient('127.0.0.1', 8098);

# Choose a bucket name
$bucket = $client->bucket('test');

# Supply a key under which to store your data
$person = $bucket->newObject('string_key', 'string_data');

# Save the object to Riak
$person->store();
Run Code Online (Sandbox Code Playgroud)

我只是对图像进行base64_encode,然后存储结果字符串吗?!或者,还有更好的方法?!

提前致谢.

php nosql riak riak-search

3
推荐指数
1
解决办法
1826
查看次数

Mongo DB - 子集合?

我是MongoDb的新手,并且正在将它与nodeJS和本机节点mongodb驱动程序一起使用.我对实施有疑问.我希望你能帮助我:我有这个"架构",其中db.pages包含我网站每个部分的配置:

db.pages = [
   {name: 'contacts', settings:{...}},
   {name: 'blog', settings:{...}, posts: "blogPosts"},
   {name: 'media', settings: {...}, posts: "mediaPosts"}
]

db.blogPosts = [
  {title: 'post1', date: '2011-10-22', author:'me', content: '...'},
  {title: 'post2', date: '2011-11-22', author:'me', content: '...'},
  {...............................................................}
];
Run Code Online (Sandbox Code Playgroud)

我在这里做的是,在每个页面中,我定义我是否有帖子集合,并且在节点中,当我加载页面时,我检查是否page.posts已定义,如果是,则加载适当的集合.

也许我错了,但这种期待太多,因为关系的事情,所以,我的想法,将是把内容blogPosts直接作为道具价值posts的的pages集合,就像这样:

db.pages = [
       {name: 'contacts', settings:{...}},
       { name: 'blog', 
         settings:{...}, 
         posts: [
            {title: 'post1', date: '2011-10-22', author:'me', content: '...'},
            {title: 'post2', date: '2011-11-22', author:'me', content: '...'},
            {...............................................................}
         ]
       },
       {name: 'media', settings: …
Run Code Online (Sandbox Code Playgroud)

mongodb nosql node.js

3
推荐指数
1
解决办法
4061
查看次数

与MySQL相比,MongoDB/NoSQL允许更快的聚合(MapReduce)之间的基本区别是什么?

问候!

我有以下问题.我有一个包含大量行的表,我需要搜索,然后按许多参数对搜索结果进行分组.我们说这个表是

id, big_text, price, country, field1, field2, ..., fieldX
Run Code Online (Sandbox Code Playgroud)

我们运行这样的请求

SELECT .... WHERE 
[use FULLTEXT index to MATCH() big_text] AND 
[use some random clauses that anyway render indexes useless, 
like: country IN (1,2,65,69) and price<100]
Run Code Online (Sandbox Code Playgroud)

我们将其显示为搜索结果,然后我们需要获取这些搜索结果并将其分组为多个字段以生成搜索过滤器

(results) GROUP BY field1
(results) GROUP BY field2
(results) GROUP BY field3
(results) GROUP BY field4
Run Code Online (Sandbox Code Playgroud)

这是我需要的简化案例,手头的实际任务更有问题,例如有时第一个结果查询也会有自己的GROUP BY.这个功能的例子是这个网站 http://www.indeed.com/q-sales-jobs.html (搜索结果加左边的过滤器)

我已经完成并且仍在深入研究MySQL的功能,在这一点上我完全不认为这在MySQL中是可行的.粗略地说,MySQL表只是位于HDD上的一堆行,索引是这些表的微小版本,按索引字段排序并指向实际行.这当然是一个超级过度简化,但重点是我看不出怎么可能解决这个问题,即如何使用多个索引,能够快速完成GROUP BY-s(到查询到达GROUP时)由于范围搜索和其他因素,BY索引完全没用.我知道MySQL(或类似的数据库)有各种有用的东西,如索引合并,松散的索引扫描等等,但这根本不够 - 上面的查询仍然需要永远执行.

有人告诉我,问题可以通过NoSQL解决,NoSQL使用一些全新的存储和处理数据的方式,包括聚合任务.我想知道的是如何做到这一点的快速示意图解释.我的意思是我只想快速一瞥它,以便我能真正看到它这样做,因为目前我无法理解如何做到这一点.我的意思是数据仍然是数据,必须放在内存中,索引仍然是索引,具有所有限制.如果这确实可行,那么我将开始详细研究NoSQL.

PS.请不要告诉我去读一本关于NoSQL的大书.我已经为MySQL做了这个,只是为了发现它在我的情况下不可用:)所以我想在获得一本大书之前对该技术有一些初步的了解.

谢谢!

mongodb nosql mongodb-query

3
推荐指数
1
解决办法
7887
查看次数

试试MongoDB或坚持使用MySQL

我正在编写一个Web门户网站,它存储了大量用户数据,后来又存储了文档.与此同时,我使用MySQL与许多关系.我已经阅读了很多关于NoSQL的内容,并发现这是一个有趣的话题.

MongoDB或CouchDB是否已准备好完全取代MySQL?在我的应用程序中,Doctrine的使用会有什么变化吗?

mysql database doctrine mongodb nosql

3
推荐指数
1
解决办法
502
查看次数

ArangoDB可以像MongoDB或CouchDB一样扩展

我正在阅读ArangoDB,它更有趣但我无法在文档中找到ArangoDB如何扩展的位置.ArangoDB是否可以扩展,是否可以像MongoDB或CouchDB一样使用分片?

nosql arangodb

3
推荐指数
1
解决办法
789
查看次数