问题标签 [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.
redis - 我应该如何将 Booksleeve 与 protobuf-net 一起使用?
我使用 RedisConnection Set 方法设置字节数组,但我如何获取数据?get返回一个包装的字节数组?
链接:
这有效,但感觉不对:
更多信息:
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 个请求,然后崩溃。虽然我不确定我是否会承受这种负载,但我相信这表明我的代码存在明显缺陷,并且希望有人比我更聪明地指出我做错了什么。
谢谢!
asp.net - 我应该多久打开/关闭 Booksleeve 连接?
我在 C#/ASP.NET 4 应用程序中使用 Booksleeve 库。目前,RedisConnection 对象是我的 MonoLink 类中的静态对象。我应该保持这个连接打开,还是应该在每次查询/交易后打开/关闭它(就像我现在所做的那样)?只是有点糊涂。到目前为止,这是我使用它的方式:
提前感谢您的任何回复/见解。另外,这个库有什么官方文档吗?谢谢你 ^_^。
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
c# - 如何使用 Booksleeve 实现 Redis 流水线请求?
我对 Redis 事务和管道之间的区别以及最终如何将管道与 Booksleeve 一起使用有点混淆。我看到Booksleeve支持 Redis事务功能( MULTI
/ EXEC
),但在其 API/测试中没有提及流水线功能。然而,在其他实现中很明显管道和事务之间存在区别,即原子性,正如下面的 redis-ruby 版本所证明的那样,但在某些地方,这些术语似乎可以互换使用。
redis-ruby 实现:
我只是使用MULTI
/EXEC
代替,但他们似乎会阻止所有其他用户,直到事务完成(在我的情况下不是必需的),所以我担心他们的表现。有没有人在 Booksleeve 中使用过管道,或者对如何实现它们有任何想法?
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 库)。
c# - 通过 BookSleeve 使用 Redis。未知参数
我正在尝试通过 C# 使用 redis。为此,我选择了 BookSleeve。但我感兴趣的是大多数方法(读/写)都需要一个参数:int db
. 该参数的描述是“要操作的数据库”。当我设置db=0
时,我可以看到使用 redis-cli.exe 键入命令 KEYS 的键。如果db != 0
,则不会显示键。
问题是 - 这个参数到底是什么意思?我在网上没有找到任何信息。
redis - 使用 BookSleeve 从 Redis 检索字符串键/值的正确方法是什么
我是 BookSleeve 的新手,即使与网站中记录的内容相比,API 似乎也发生了变化。
正如网站上所指出的:
“请注意,API 到 1.0 时可能会有所改变,但足够稳定以驱动 Stack Exchange..”
因此,该文档似乎不再是最新的。
无论如何,问题是,检索您之前存储的密钥的正确方法是什么。我正在使用“字符串”API。
假设打开的连接是否正确?:
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参数设置为true和false
这是我要执行的代码:
asp.net - 使用 Booksleeve 维护开放的 Redis PubSub 订阅
我正在使用 Redis pubsub 通道将消息从工作进程池发送到我的 ASP.NET 应用程序。收到消息后,我的应用程序使用 SignalR 将消息转发到客户端的浏览器。
我找到了维护与 Redis 的开放连接的解决方案,但它在重新创建连接时不考虑订阅。
我目前正在 Global.asax 文件中处理 Redis pubsub 消息:
当当前的 RedisConnection 出于某种原因关闭时,就会出现问题。问题的最简单解决方案是RedisConnectionGateway
在连接重置后从类中触发一个事件,然后使用新的RedisSubscriberChannel
. 但是,在重置连接时发布到通道的任何消息都将丢失。
是否有处理这种情况的推荐方法示例?