问题标签 [booksleeve]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3620 浏览

redis - 我应该如何将 Booksleeve 与 protobuf-net 一起使用?

我使用 RedisConnection Set 方法设置字节数组,但我如何获取数据?get返回一个包装的字节数组?

链接:

这有效,但感觉不对:

更多信息:

0 投票
1 回答
590 浏览

asp.net - 基准测试时 Razor 页面中的 BookSleeve Wait() 超时

我刚刚开始在 Windows 上使用 BookSleeve(和 redis),只是想看看我是否可以就我在这里可能做错的事情获得一些指导。使用以下代码,然后针对它运行 ab,我可以在 w3wsvc.exe 崩溃之前处理大约 500 个请求。当我附加到进程进行调试时,我看到对 redis 服务器的请求正在超时。

我还没有安装 .NET async/await CTP。

现在,只需点击一个网页就可以了,效果很好。我只是想在托管这个的服务器上猛击,所以我做了......

ab -n 1000 -c 5 http://server/page.cshtml

它将处理 500-700 个请求,然后崩溃。虽然我不确定我是否会承受这种负载,但我相信这表明我的代码存在明显缺陷,并且希望有人比我更聪明地指出我做错了什么。

谢谢!

0 投票
3 回答
2859 浏览

asp.net - 我应该多久打开/关闭 Booksleeve 连接?

我在 C#/ASP.NET 4 应用程序中使用 Booksleeve 库。目前,RedisConnection 对象是我的 MonoLink 类中的静态对象。我应该保持这个连接打开,还是应该在每次查询/交易后打开/关闭它(就像我现在所做的那样)?只是有点糊涂。到目前为止,这是我使用它的方式:

提前感谢您的任何回复/见解。另外,这个库有什么官方文档吗?谢谢你 ^_^。

0 投票
2 回答
10794 浏览

asp.net - Redis 支持的 ASP.NET SessionState 提供程序

我目前正在开发一个由 Redis 使用 Booksleeve 支持的 ASP.NET SessionState 自定义提供程序。Redis 似乎非常适合 SessionState(如果您必须使用它),因为:

  • Redis 可以像 RDBMS 一样持久存储,但速度要快得多。
  • Key/Value 数据存储更适合 SessionState 的接口。
  • 由于数据没有存储在进程中(如默认的 Session 提供程序),SessionState 可以在 Web 服务器重启、崩溃等情况下存活。
  • 如果需要,Redis 很容易水平分片。

所以,我想知道这是否对任何人有用,因为我们(我的公司)正在考虑在 GitHub 上开源它。想法?

更新:


我昨天确实发布了这个的第一个版本:https ://github.com/angieslist/AL-Redis/blob/master/AngiesList.Redis/RedisSessionStateStore.cs

0 投票
3 回答
3506 浏览

c# - 如何使用 Booksleeve 实现 Redis 流水线请求?

我对 Redis 事务和管道之间的区别以及最终如何将管道与 Booksleeve 一起使用有点混淆。我看到Booksleeve支持 Redis事务功能( MULTI/ EXEC),但在其 API/测试中没有提及流水线功能。然而,在其他实现中很明显管道和事务之间存在区别,即原子性,正如下面的 redis-ruby 版本所证明的那样,但在某些地方,这些术语似乎可以互换使用。

redis-ruby 实现:

我只是使用MULTI/EXEC代替,但他们似乎会阻止所有其他用户,直到事务完成(在我的情况下不是必需的),所以我担心他们的表现。有没有人在 Booksleeve 中使用过管道,或者对如何实现它们有任何想法?

0 投票
3 回答
8771 浏览

c# - 使用 BookSleeve 维护打开的 Redis 连接

有没有人有通过BookSleeve库获取 Redis 的可靠模式?

我是说:

BookSleeve 的作者@MarcGravell建议不要每次都打开和关闭连接,而是在整个应用程序中保持一个连接。但是如何处理网络中断?即连接可能首先成功打开,但是当某些代码尝试读取/写入 Redis 时,连接可能已断开,您必须重新打开它(如果它无法打开,则优雅地失败 - 但是这取决于您的设计需求。)

我寻找涵盖一般 Redis 连接打开的代码片段,以及在每次读/写之前将使用的一般“活动”检查(+ 可选唤醒,如果不活动)。

这个问题表明对这个问题的态度很好,但它只是部分的(例如,它不会恢复丢失的连接),并且该问题的公认答案是正确的方法,但没有展示具体的代码。

我希望这个线程能得到可靠的答案,并最终成为一个关于 BookSleeve 在 .Net 应用程序中使用的 Wiki。

-----------------------------------------

重要更新(21/3/2014):

-----------------------------------------

Marc Gravell (@MarcGravell) / Stack Exchange最近发布StackExchange.Redis库,最终取代了 Booksleeve。除其他外,这个新库在内部处理重新连接并使我的问题变得多余(也就是说,它对于 Booksleeve 和我下面的答案都不是多余的,但我想最好的方法是开始使用新的 StackExchange.Redis 库)。

0 投票
1 回答
708 浏览

c# - 通过 BookSleeve 使用 Redis。未知参数

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

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

0 投票
1 回答
1417 浏览

redis - 使用 BookSleeve 从 Redis 检索字符串键/值的正确方法是什么

我是 BookSleeve 的新手,即使与网站中记录的内容相比,API 似乎也发生了变化。

正如网站上所指出的:

“请注意,API 到 1.0 时可能会有所改变,但足够稳定以驱动 Stack Exchange..”

因此,该文档似乎不再是最新的。

无论如何,问题是,检索您之前存储的密钥的正确方法是什么。我正在使用“字符串”API。

假设打开的连接是否正确?:

0 投票
1 回答
1049 浏览

booksleeve - 如何使用单例存储带有 Booksleeve 的 RedisConnection?

我正在使用 Booksleeve 1.1.0.6(最新的 nuget 包)。

我想为我的整个 Web 应用程序使用一个连接,所以我将它存储在一个单例中:

RedisConfig.GetUnsecuredConnection方法与 BookSleeve 测试中使用的方法相同。

当我尝试执行操作时,我得到一个InvalidOperationException: The queue is closed异常:

[InvalidOperationException: 队列已关闭] C:\Dev\BookSleeve\BookSleeve\MessageQueue.cs:73 BookSleeve.RedisConnectionBase.ExecuteVoid(RedisMessage message, Boolean queueJump) 中的 BookSleeve.MessageQueue.Enqueue(RedisMessage item, Boolean highPri) C: \Dev\BookSleeve\BookSleeve\RedisConnectionBase.cs:794 ASP.welisten_booksleevetests_aspx.SaveDictionaryToRedis(Dictionary`2 字典) +173 ASP.welisten_booksleevetests_aspx.Page_Load(Object sender, EventArgs e) +67 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, 对象 o, 对象 t, EventArgs e) +25 System.Web.UI.Control.LoadRecursive() +71 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3064

我尝试将waitForOpen参数设置为truefalse

这是我要执行的代码:

0 投票
1 回答
4400 浏览

asp.net - 使用 Booksleeve 维护开放的 Redis PubSub 订阅

我正在使用 Redis pubsub 通道将消息从工作进程池发送到我的 ASP.NET 应用程序。收到消息后,我的应用程序使用 SignalR 将消息转发到客户端的浏览器。

我找到了维护与 Redis 的开放连接的解决方案,但它在重新创建连接时不考虑订阅。

我目前正在 Global.asax 文件中处理 Redis pubsub 消息:

当当前的 RedisConnection 出于某种原因关闭时,就会出现问题。问题的最简单解决方案是RedisConnectionGateway在连接重置后从类中触发一个事件,然后使用新的RedisSubscriberChannel. 但是,在重置连接时发布到通道的任何消息都将丢失。

是否有处理这种情况的推荐方法示例?