zoukankan      html  css  js  c++  java
  • redis-scala链接redis集群

    代码: 

    package com.wenbronk.sparkstreaming.scala.commons
    
    import java.time.Duration
    
    import io.lettuce.core.RedisURI
    import io.lettuce.core.cluster.api.StatefulRedisClusterConnection
    import io.lettuce.core.cluster.{ClusterClientOptions, ClusterTopologyRefreshOptions, RedisClusterClient}
    
    import scala.collection.immutable
    
    
    object RedisUtils {
    
      val ip = "10.110.122.172"
      val ports = Array(7000, 7001, 7002, 7003, 7004, 7005)
    
      def getRediceConnect: StatefulRedisClusterConnection[String, String] = {
        val uris: immutable.Seq[RedisURI] = ports.map(port => {
          RedisURI.builder().withHost(ip).withPort(port).build()
        }).toList
        import scala.collection.JavaConverters._
        val redisClusterClient = RedisClusterClient.create(uris.asJava)
        val topologyRefreshOptions = ClusterTopologyRefreshOptions.builder.enablePeriodicRefresh(Duration.ofMinutes(10)).enableAllAdaptiveRefreshTriggers.build
        redisClusterClient.setOptions(ClusterClientOptions.builder.autoReconnect(true).pingBeforeActivateConnection(true).topologyRefreshOptions(topologyRefreshOptions).build)
        redisClusterClient.connect()
      }
    
    
    }

    测试: 

    package com.wenbronk.sparkstreaming.test
    
    import com.wenbronk.sparkstreaming.scala.commons.RedisUtils
    import org.scalatest.FunSuite
    
    class RedisTests extends FunSuite{
    
      test("redisSet") {
        val utils = RedisUtils
        val connect = utils.getRediceConnect
        connect.async().set("abc", "1234")
        println("hello")
      }
    
      test("redisGet") {
        val utils = RedisUtils
        val connect = utils.getRediceConnect
        val value = connect.async().get("abc")
        println(value.get())
      }
    
      test("flushdb") {
        val utils = RedisUtils
        val connect = utils.getRediceConnect
        val value = connect.async().flushdb()
        println(value.get())
      }
    
    
    }

    scala测试可见: 

  • 相关阅读:
    SQLSERVER调用DLL程序
    RAISERROR语句
    SQLSERVER表联结(INNER JOIN,LEFT JOIN,RIGHT JOIN,FULL JOIN,CROSS JOIN,CROSS APPLY,OUTER APPLY)
    SQL Server在存储过程中编写事务处理代码的三种方法
    找出表中缺失的连续数据(如:2,4,7,9;需要找出:1,3,5,6,8的数据)
    sqlserver用于统计表索引情况
    你需要了解的HTTP协议
    自己实现一个类似 jQuery 的函数库
    JS 函数 学习笔记
    JS 数组 学习笔记
  • 原文地址:https://www.cnblogs.com/wenbronk/p/9592969.html
Copyright © 2011-2022 走看看