在同一个进程中维护大量的RLocalCachedMap会不会存在问题。如果会,该怎么处理。
Q
[redisson]RLocalCachedMap 有没有数量限制
8
A
回答
2
如果是多个RLocalCachedMap实例都指向同一个redis key的情况,一般是不推荐的,除非你需要不同的实例里缓存不同的内容。使用多个实例的时候需要注意缓存策略的选择,以及内存容量的大小。
8
如果我有大量的RLocalCachedMap,怎么做比较好。每个map中的数据不多。读多写少。现在直接用的RMap。
0
建议逐个分析每个缓存的需求,预估一下内存使用的大小,判断合适的缓存策略,根据结果调整VM的GC和堆的大小。
9
感觉不好处理。还是先用RMap。再问下,在同一个RedissonClient实例下可以访问多个database吗。如果不能,创建多个RedissonClient实例会不会有影响,有什么好的实现方式。
5
用多个DB的情况需要使用多个RedissonClient实例。这种情况下可以考虑共享Executor和EventLoop。
4
好的,再问一个问题: 在使用EpollEventLoop时, 由于Config.addressResolverGroupFactory,默认值是MultiDnsAddressResolverGroupFactory,会无法启动:
java.lang.IllegalStateException: incompatible event loop type: io.netty.channel.epoll.EpollEventLoop
at io.netty.channel.AbstractChannel$AbstractUnsafe.register(AbstractChannel.java:473)
at io.netty.channel.SingleThreadEventLoop.register(SingleThreadEventLoop.java:80)
at io.netty.channel.SingleThreadEventLoop.register(SingleThreadEventLoop.java:74)
at io.netty.bootstrap.AbstractBootstrap.initAndRegister(AbstractBootstrap.java:333)
at io.netty.bootstrap.AbstractBootstrap.register(AbstractBootstrap.java:234)
at io.netty.resolver.dns.DnsNameResolver.<init>(DnsNameResolver.java:395)
at io.netty.resolver.dns.DnsNameResolverBuilder.build(DnsNameResolverBuilder.java:430)
at io.netty.resolver.dns.DnsAddressResolverGroup.newNameResolver(DnsAddressResolverGroup.java:114)
at io.netty.resolver.dns.DnsAddressResolverGroup.newResolver(DnsAddressResolverGroup.java:94)
at io.netty.resolver.dns.DnsAddressResolverGroup.newResolver(DnsAddressResolverGroup.java:79)
at io.netty.resolver.AddressResolverGroup.getResolver(AddressResolverGroup.java:69)
... 20 common frames omitted
需要手动配置为: config.setAddressResolverGroupFactory(new DnsAddressResolverGroupFactory());
.这样配置有没有问题
1
@zhou-hao Epoll的EventLoop只能在Linux下运行
5
@jackygurui 看了下,在3.10.4
已经修复了。