• 2.3. 常用设置
    • codec(编码)
    • threads(线程池数量)
    • nettyThreads (Netty线程池数量)
    • executor(线程池)
    • eventLoopGroup
    • transportMode(传输模式)
    • lockWatchdogTimeout(监控锁的看门狗超时,单位:毫秒)
    • keepPubSubOrder(保持订阅发布顺序)
    • performanceMode(高性能模式)

    2.3. 常用设置

    以下是关于org.redisson.Config类的配置参数,它适用于所有Redis组态模式(单机,集群和哨兵)

    codec(编码)

    默认值: org.redisson.codec.JsonJacksonCodec

    Redisson的对象编码类是用于将对象进行序列化和反序列化,以实现对该对象在Redis里的读取和存储。Redisson提供了以下几种的对象编码应用,以供大家选择:

    编码类名称 说明
    org.redisson.codec.JsonJacksonCodec Jackson JSON 编码 默认编码
    org.redisson.codec.AvroJacksonCodec Avro 一个二进制的JSON编码
    org.redisson.codec.SmileJacksonCodec Smile 另一个二进制的JSON编码
    org.redisson.codec.CborJacksonCodec CBOR 又一个二进制的JSON编码
    org.redisson.codec.MsgPackJacksonCodec MsgPack 再来一个二进制的JSON编码
    org.redisson.codec.IonJacksonCodec Amazon Ion 亚马逊的Ion编码,格式与JSON类似
    org.redisson.codec.KryoCodec Kryo 二进制对象序列化编码
    org.redisson.codec.SerializationCodec JDK序列化编码
    org.redisson.codec.FstCodec FST 10倍于JDK序列化性能而且100%兼容的编码
    org.redisson.codec.LZ4Codec LZ4 压缩型序列化对象编码
    org.redisson.codec.SnappyCodec Snappy 另一个压缩型序列化对象编码
    org.redisson.client.codec.JsonJacksonMapCodec 基于Jackson的映射类使用的编码。可用于避免序列化类的信息,以及用于解决使用byte[]遇到的问题。
    org.redisson.client.codec.StringCodec 纯字符串编码(无转换)
    org.redisson.client.codec.LongCodec 纯整长型数字编码(无转换)
    org.redisson.client.codec.ByteArrayCodec 字节数组编码
    org.redisson.codec.CompositeCodec 用来组合多种不同编码在一起

    threads(线程池数量)

    默认值: 当前处理核数量 * 2

    这个线程池数量被所有RTopic对象监听器,RRemoteService调用者和RExecutorService任务共同共享。

    nettyThreads (Netty线程池数量)

    默认值: 当前处理核数量 * 2

    这个线程池数量是在一个Redisson实例内,被其创建的所有分布式数据类型和服务,以及底层客户端所一同共享的线程池里保存的线程数量。

    executor(线程池)

    单独提供一个用来执行所有RTopic对象监听器,RRemoteService调用者和RExecutorService任务的线程池(ExecutorService)实例。

    eventLoopGroup

    用于特别指定一个EventLoopGroup. EventLoopGroup是用来处理所有通过Netty与Redis服务之间的连接发送和接受的消息。每一个Redisson都会在默认情况下自己创建管理一个EventLoopGroup实例。因此,如果在同一个JVM里面可能存在多个Redisson实例的情况下,采取这个配置实现多个Redisson实例共享一个EventLoopGroup的目的。

    只有io.netty.channel.epoll.EpollEventLoopGroupio.netty.channel.nio.NioEventLoopGroup才是允许的类型。

    transportMode(传输模式)

    默认值:TransportMode.NIO

    可选参数:TransportMode.NIO,TransportMode.EPOLL - 需要依赖里有netty-transport-native-epoll包(Linux)TransportMode.KQUEUE - 需要依赖里有 netty-transport-native-kqueue包(macOS)

    lockWatchdogTimeout(监控锁的看门狗超时,单位:毫秒)

    默认值:30000

    监控锁的看门狗超时时间单位为毫秒。该参数只适用于分布式锁的加锁请求中未明确使用leaseTimeout参数的情况。如果该看门口未使用lockWatchdogTimeout去重新调整一个分布式锁的lockWatchdogTimeout超时,那么这个锁将变为失效状态。这个参数可以用来避免由Redisson客户端节点宕机或其他原因造成死锁的情况。

    keepPubSubOrder(保持订阅发布顺序)

    默认值:true

    通过该参数来修改是否按订阅发布消息的接收顺序出来消息,如果选否将对消息实行并行处理,该参数只适用于订阅发布消息的情况。

    performanceMode(高性能模式)

    默认值:HIGHER_THROUGHPUT

    用来指定高性能引擎的行为。由于该变量值的选用与使用场景息息相关(NORMAL除外)我们建议对每个参数值都进行尝试。

    该参数仅限于Redisson PRO版本。

    可选模式:HIGHER_THROUGHPUT - 将高性能引擎切换到 高通量 模式。LOWER_LATENCY_AUTO - 将高性能引擎切换到 低延时 模式并自动探测最佳设定。LOWER_LATENCY_MODE_1 - 将高性能引擎切换到 低延时 模式并调整到预设模式1。LOWER_LATENCY_MODE_2 - 将高性能引擎切换到 低延时 模式并调整到预设模式2。NORMAL - 将高性能引擎切换到 普通 模式