草庐IT

zeromq4-haskell

全部标签

haskell - 从 runRedis conn $ get "hello"获取字符串 - Haskell

从Database.Redis我使用runRedisconn$get"hello",这是runRedisconn$get"hello"::IO(EitherReply(MaybeData.ByteString.Internal.ByteString))在哪里conn但我想将输出转换为String/ByteString,因为我想将它与其他一些String进行比较。我该怎么做? 最佳答案 当您不确定Haskell的工作原理时,一个好的起点是找到他们的文档(Hedisishere)。您应该查看所需的构建block(即函数)及其定义。无论如

haskell - 从 runRedis conn $ get "hello"获取字符串 - Haskell

从Database.Redis我使用runRedisconn$get"hello",这是runRedisconn$get"hello"::IO(EitherReply(MaybeData.ByteString.Internal.ByteString))在哪里conn但我想将输出转换为String/ByteString,因为我想将它与其他一些String进行比较。我该怎么做? 最佳答案 当您不确定Haskell的工作原理时,一个好的起点是找到他们的文档(Hedisishere)。您应该查看所需的构建block(即函数)及其定义。无论如

haskell - 如何在同一个函数中订阅多个 Redis channel ?

运行Redis3.2.1和最新的Hedis库,我有以下发布程序:{-#LANGUAGEOverloadedStrings#-}moduleMainwhereimportDatabase.RedisimportControl.MonadimportControl.ConcurrentimportControl.Monad.TransimportData.ByteStringasBSimportSystem.Posix.ProcessimportData.String.Convmain::IO()main=doconn订阅者看起来像这样:{-#LANGUAGEOverloadedStrin

haskell - 如何在同一个函数中订阅多个 Redis channel ?

运行Redis3.2.1和最新的Hedis库,我有以下发布程序:{-#LANGUAGEOverloadedStrings#-}moduleMainwhereimportDatabase.RedisimportControl.MonadimportControl.ConcurrentimportControl.Monad.TransimportData.ByteStringasBSimportSystem.Posix.ProcessimportData.String.Convmain::IO()main=doconn订阅者看起来像这样:{-#LANGUAGEOverloadedStrin

websocket - 准备重用需要 Redis/ZeroMQ 后端的 WebSocket 连接服务器

我需要水平可扩展的WebSocket连接服务器来实现类似聊天的系统,其中连接到不同WebSocket服务器的浏览器客户端可以在单独的聊天室中交换消息。ClientsHaProxyWebSocketserver1WebSocketserver2Redis/ZeroMQ||||clientA----=------------>o|||||clientB----=-------------|---------------->o|||||这里clientA和clientB通过HaProxy连接到两个不同的WebSocket服务器,它们交换消息通过Redis/ZeroMQ后端,如that和tha

websocket - 准备重用需要 Redis/ZeroMQ 后端的 WebSocket 连接服务器

我需要水平可扩展的WebSocket连接服务器来实现类似聊天的系统,其中连接到不同WebSocket服务器的浏览器客户端可以在单独的聊天室中交换消息。ClientsHaProxyWebSocketserver1WebSocketserver2Redis/ZeroMQ||||clientA----=------------>o|||||clientB----=-------------|---------------->o|||||这里clientA和clientB通过HaProxy连接到两个不同的WebSocket服务器,它们交换消息通过Redis/ZeroMQ后端,如that和tha

redis - Pub/Sub - Redis 和 ZeroMQ 的性能基准测试

我已经使用Redis和ZeroMQ实现了用于进程间通信的发布者-订阅者方法。我应该考虑哪些参数来比较Redis和ZeroMQ的性能?我已阅读此处给出的答案-zmqvsredisforpub-subpattern-但我想在自己的机器上测试性能并编写自己的方法来比较它们的性能。 最佳答案 性能比较涉及以下内容:两个系统应该在相同的条件下工作。这意味着不在相同的硬件堆栈和操作系统、后端数据库(如果需要)等上运行。这也意味着两个系统应该具有兼容的设置:f.e.对于这两个系统,您都必须设置默认设置。或者对于这两个系统,您都必须设置它的最大推荐

redis - Pub/Sub - Redis 和 ZeroMQ 的性能基准测试

我已经使用Redis和ZeroMQ实现了用于进程间通信的发布者-订阅者方法。我应该考虑哪些参数来比较Redis和ZeroMQ的性能?我已阅读此处给出的答案-zmqvsredisforpub-subpattern-但我想在自己的机器上测试性能并编写自己的方法来比较它们的性能。 最佳答案 性能比较涉及以下内容:两个系统应该在相同的条件下工作。这意味着不在相同的硬件堆栈和操作系统、后端数据库(如果需要)等上运行。这也意味着两个系统应该具有兼容的设置:f.e.对于这两个系统,您都必须设置默认设置。或者对于这两个系统,您都必须设置它的最大推荐

haskell - Get Monad 中的 IO

所以我的问题如下。我正在尝试为RDB文件(Redis生成的转储文件)实现流式解析器。我想实现一个类似于mapM_的函数,我可以说打印出转储文件中表示的每个对象,因为它被解析。但是,我似乎无法让它在恒定空间中运行。我发现正在发生的事情是我在Getmonad内部构建一个大的IO()thunk,从Getmonad返回然后执行IO。有没有办法在我的对象被解析打印时流式传输然后丢弃它们?我已经尝试过Enumerators和Conduits,但我没有看到任何真正的收获。这是我目前所拥有的:loadObjs_::(Monadm)=>(MaybeInteger->BL8.ByteString->RDB

haskell - Get Monad 中的 IO

所以我的问题如下。我正在尝试为RDB文件(Redis生成的转储文件)实现流式解析器。我想实现一个类似于mapM_的函数,我可以说打印出转储文件中表示的每个对象,因为它被解析。但是,我似乎无法让它在恒定空间中运行。我发现正在发生的事情是我在Getmonad内部构建一个大的IO()thunk,从Getmonad返回然后执行IO。有没有办法在我的对象被解析打印时流式传输然后丢弃它们?我已经尝试过Enumerators和Conduits,但我没有看到任何真正的收获。这是我目前所拥有的:loadObjs_::(Monadm)=>(MaybeInteger->BL8.ByteString->RDB