Memcontinuationed

Memcached的Scala客户端
授权协议 Apache
开发语言 Scala
所属分类 数据库相关、 数据库驱动程序
软件类型 开源软件
地区 国产
投 递 者 牟子真
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

MemcontinuationedScala的异步memcached客户端。Memcontinuationed是JVM上最快的Memcached客户端,比spymemcached或 Whalin的客户端要快得多。

示例代码:

import com.dongxiguo.memcontinuationed.Memcontinuationed
import com.dongxiguo.memcontinuationed.StorageAccessor
import java.io._
import java.net._
import java.nio.channels.AsynchronousChannelGroup
import java.util.concurrent.Executors
import scala.util.continuations.reset
import scala.util.control.Exception.Catcher

object Sample {

  def main(args: Array[String]) {
    val threadPool = Executors.newCachedThreadPool()
    val channelGroup = AsynchronousChannelGroup.withThreadPool(threadPool)

    // The locator decide where the memcached server is.
    // You may want to implement ketama hashing here.
    def locator(accessor: StorageAccessor[_]) = {
      new InetSocketAddress("localhost", 1978)
    }

    val memcontinuationed = new Memcontinuationed(channelGroup, locator)

    // The error handler
    implicit def catcher:Catcher[Unit] = {
      case e: Exception =>
        scala.Console.err.print(e)
        sys.exit(-1)
    }

    reset {
      memcontinuationed.set(MyKey("hello"), "Hello, World!")
      val result = memcontinuationed.require(MyKey("hello"))
      assert(result == "Hello, World!")
      println(result)
      sys.exit()
    }
  }
}

/**
 * `MyKey` specifies how to serialize the data of key/value pair.
 */
case class MyKey(override val key: String) extends StorageAccessor[String] {

  override def encode(output: OutputStream, data: String, flags: Int) {
    output.write(data.getBytes("UTF-8"))
  }

  override def decode(input: InputStream, flags: Int): String = {
    val result = new Array[Byte](input.available)
    input.read(result)
    new String(result, "UTF-8")
  }
}

 

 相关资料
  • 简介 由于Scala也是JVM语言,可以直接调用Java实现的gRPC客户端,因此使用Scala或者Spark调用ModelService服务也是比较简单。 使用示例 之前我们提供了 https://github.com/tobegit3hub/deep_recommend_system 的Java客户端例子,这里直接引入Java实现的客户端,然后实现Scala客户端。 object ScalaD

  • 我刚开始使用Kafka,它听起来对微服务非常好,但我基本上是在Scala中工作的。 我将kafka添加到我的sbt项目中: 然后我这样做: 我这里的问题是,当我调用,它是Java的未来。我不知道Java Futures是如何工作的,我更愿意跳过这个学习曲线。这次是未来,但我指的是Java。 所以我想知道是否有完整的Scala api可以和Kafka一起使用。因为Kafka是用Scala写的,所以通

  • 问题内容: 我正在计划使用Scala的Redis实例进行一些工作,并且正在寻找有关要使用的客户端库的建议。理想的情况是,如果有一个好的库,我想为Scala(而不是Java)设计一个库,但是如果现在使用Java客户机,那不是更好的选择。 在官方客户端列表显示斯卡拉- Redis的作为唯一的斯卡拉特定选项,但它是相当过时,它有许多与各种改进和提高叉…所以现在还不清楚哪些(如果有的话)是一个使用。 目前

  • 我试图在我的本地机器上设置Hazelcast服务器和客户端。我还试图通过scala客户端连接到本地Hazelcast服务器。 对于我在下面代码中使用的服务器, Hazelcast的客户是, 在我build.sbt, 我在错误之下陷入依赖问题。 我查阅了hazelcast的文档。我找不到任何好的hazelcast scala示例来理解设置并开始使用。如果有人能帮助解决这个问题,或者分享非常好的sca

  • 这些其他问题暗示了一个解决方案,但我一直无法实现这一点: 无法解析的绑定http://schemas.xmlsoap.org/wsdl/soap/ ServiceConstructionException在创建CXF web服务客户端时 如何使用Maven“shade”插件将Apache CXF应用程序打包到单片JAR中 当我通过执行启动我的应用程序时,我会得到一个

  • 我想在一些计算机之间建立点对点连接,这样用户就可以在没有外部服务器的情况下聊天和交换文件。我最初的想法如下: 我在服务器上制作了一个中央服务器插座,所有应用程序都可以连接到该插座。此ServerSocket跟踪已连接的套接字(客户端),并将新连接的客户端的IP和端口提供给所有其他客户端。每个客户端都会创建一个新的ServerSocket,所有客户端都可以连接到它。 换句话说:每个客户端都有一个Se

  • 我注意到Rest客户端上有两个指南:MicroProfile和Vertx。既然微文件支持异步,那么使用基于Vertx的Rest客户端有什么好处?