Raven is schema-less LINQ-enabled document data store for .NET/Windows. Raven is yet another NoSQL, non-relational solution that wants to address the performance and scalability needs required by large web applications.
Raven can store all sorts of data as JSON documents without imposing a specific schema on their content. That means data can have arbitrary formats being appropriate for the following scenarios:
•Web Related Data, such as user sessions, shopping cart, etc. - Raven's document based nature means that you can retrieve and store all the data required to process a request in a single remote call.
•Dynamic Entities, such as user-customizable entities, entities with a large number of optional fields, etc. - Raven's schema free nature means that you don't have to fight a relational model to implement it.
•Persisted View Models - Instead of recreating the view model from scratch on every request, you can store it in its final form in Raven. That leads to reduced computation, reduced number of remote calls and improved overall performance.
•Large Data Sets - The underlying storage mechanism for Raven is known to scale in excess of 1 terabyte (on a single machine) and the non relational nature of the database makes it trivial to shard the database across multiple machines, something that Raven can do natively.
The following snippet is an example of a document stored in Raven:
{
"PostTypeId":1,
"Id":2321816,
"Title":"Storing commercial files on the server",
"AcceptedAnswerId":2321854,
"LastActivityDate":"\/Date(1266953391687+0200)\/",
"AnswerCount":3,
"Comments":[
{
"Score":null,
"CreationDate":"\/Date(1266952919510+0200)\/",
"Text":"are they \"sensitive\" information?",
"UserId":"users/203907"
},
{
"Score":null,
"CreationDate":"\/Date(1266953092057+0200)\/",
"Text":"I wouldn't say they are sensitive information...",
"UserId":"users/200145"
}
]
}Each document has a key or a document ID associated with it, the key being “2321816” for the example mentioned above. Beside documents, Raven can store metadata or text/binary attachments attached to documents. To be able to search through and retrieve documents from a data store, Raven employs indexes:
An index is a Linq query that operates over a set of documents, producing a projection out of each document that can be efficiently queried. An index is essentially a Linq query that Raven executes in the background, and whose results are stored in persistent storage. Those results can be efficiently queried at a later date.
An example of an index which organizes posts by Title is:
from post in docs.Posts
where post.AcceptedAnswerId != nullselect new { post.Title };After the index has been created, the user simply queries it to get the document he is looking for.
Raven has an HTTP API and a Client API (C#). The HTTP API provides about the same functionality as the Client API permitting to work only by using JavaScript and HTML. Some of the commands are:
•GET
•PUT
•POST
•DELETE
•PATCH
The HTTP API also supports getting multiple documents in one call or batching requests.
Raven was released with 3 licensing options:
•Raven DB Community – a free edition that can be used only for open source projects with no support
•Raven DB Commercial – a paid-for edition for commercial software with support for a limited number of incidents/year
•Raven DB Enterprise – similar to Commercial but has extra features like sharding, unlimited master/slave replicas, failover, replication to RDBMS, and better support.
Both commercial editions have a monthly subscription or a perpetual license. Raven was created by Hibernating Rhinos, a consultancy founded by Ayende Rahien.
分享到:
相关推荐
剑桥乌鸦Raven的ASP.NET MVC身份验证筛选器。设置将放入您的App_Data文件夹中。 如果修改Web.config并将以下键添加到appSettings部分,也可以将它们放在其他位置: < appSettings> < add xss=removed xss=removed></...
"Raven"在此语境下可能是指一种特定的字体或字体库。Raven字体以其独特的风格和设计特点,被广泛应用于各种设计项目,如网页设计、图形设计、出版物以及品牌标识等。 Raven字体可能具有以下特性: 1. **设计风格**...
OSCP 训练靶机 Raven2 渗透过程详解 OSCP( Offensive Security Certified Professional)是 Offensive Security 公司提供的渗透测试认证,旨在验证个人的渗透测试技能。Raven2 是 OSCP 认证考试中的一个训练靶机,...
在`providers`数组中添加`Raven\Laravel\ServiceProvider::class`,这样Laravel就能知道如何与Raven交互。 然后,我们需要配置Raven客户端。在`config/services.php`文件中添加一个名为`sentry`的新配置项,填写你...
7. **兼容性**:由于是针对特定版本的发布(0.1.5),这个库应该已经测试过并兼容当时的Python版本,可能是Python 2或3,具体要看库的文档。 为了使用这个库,开发者需要先解压文件,然后将源代码导入他们的Lambda...
资源分类:Python库 所属语言:Python 资源全名:raven-4.0.4.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
RavenDB 数据库是 .NET平台下的文档型数据库, License 是社区版的许可证! 可在 About 中输入即可注册未 Community版
Ruby-Raven是面向Ruby开发者的错误处理工具,它是Sentry服务的一个官方客户端。Sentry是一个开源的、自我托管的日志和错误管理平台,用于实时监控和追踪应用中的异常情况,帮助开发者快速定位并修复问题。Raven库为...
Raven-Ruby,Sentry文档的Ruby客户端| 错误跟踪器| 论坛| IRC:irc.freenode.net,#sentry Sentry错误报告API的官方Ruby语言客户端和集成层。 Requi Raven-Ruby,Sentry文档的Ruby客户端| 错误跟踪器| 论坛| IRC:...
RavenDB是一个开源的文档数据库,主要设计用于.NET平台,支持.NET 4.0及更高版本。作为一个NoSQL数据库系统,它提供了高性能、高可用性和易于扩展性的解决方案,特别适合处理非结构化和半结构化数据。在本文中,我们...
Sentry现在建议使用其新的SDK @sentry/browser而不是Raven。 请查看 ,以获取支持新SDK的该库的API兼容分支! 用于Redux的Raven中间件 注意:需要Raven> = 3.9.0。 Raven 3.14.0有此库触发 将每个调度动作的类型记录...
在这个目录下,我们可能会找到项目源代码、配置文件、示例、文档以及用于构建和测试的脚本。 总结来说,这个压缩包包含两个主要部分:一是Log4j的Raven扩展,它可能用于向Sentry发送日志数据;二是JGit-BuildNumber...
解压后,你可以找到名为`raven-1.6.0`的文件夹,里面包含了Raven库的所有源代码、文档、测试和其他相关资源。通过这个库,开发者可以轻松地将他们的Python应用与Sentry服务器连接起来,以便实时监控和管理应用程序的...
Raven是一款桌面新闻阅读器,具有灵活的设置可优化您的体验。无需登录,也不会收集个人数据。只需选择您想要从中策划文章的网站即可享受! Raven去除了原始文章中所有令人分心的内容-烦人的广告,标语和笨拙的布局。...
Raven是一款桌面新闻阅读器,具有灵活的设置可优化您的体验。无需登录,也不会收集个人数据。只需选择您想要从中策划文章的网站即可享受! “一个干净,无干扰的UI。超级易于管理您的RSS feed。” “ ..一个漂亮的,...
渡鸦raven系列惊艳亮相,AI点亮智能家居生活.pdf
在Raven的源代码压缩包"Raven-master"中,通常包含了Raven的源代码文件、编译脚本、配置文件以及相关的文档。开发者或高级用户可以通过编译源代码来安装和定制Raven,以适应特定的Linux环境或需求。 对于那些熟悉...
Python-raven主要用于后端开发,这意味着它在服务器端运行,处理与数据库交互、业务逻辑和API通信等任务。后端开发通常涉及对用户请求的响应,数据处理以及与前端应用的通信,Python-raven在这个过程中扮演着关键的...
**Laravel 开发与 Raven-Laravel** 在 Laravel 开发中,日志管理是至关重要的,它可以帮助开发者追踪和诊断应用程序中的错误和异常。Raven 是 Sentry 的 PHP 客户端,而 Sentry 是一个实时错误跟踪服务,可以帮助...