簡體   English   中英

使用Redisson獲取Redis需要時間

[英]Redis fetch takes time using redisson

我有一個場景,其中應用程序需要從每個請求的Redis獲取操作大約80次。 當我在該應用程序上命中1個請求時,它會在不到1秒的時間內給出響應,但是當請求大小增加到100時,redissonClient開始表現緩慢,大約需要13秒來獲取250條記錄。

我是Redis的新手,不確定這是否是默認值。 盡管我在一篇文章中發現說Redis可以在1個節點上的1秒內處理數百萬次操作。 我們的Redis服務器當前在1個節點上運行。

以下是redis配置:

{
"singleServerConfig": {
    "idleConnectionTimeout": 10000,
    "pingTimeout": 1000,
    "connectTimeout": 10000,
    "timeout": 2000,
    "retryAttempts": 3,
    "retryInterval": 1500,
    "reconnectionTimeout": 2000,
    "failedAttempts": 3,
    "password": null,
    "subscriptionsPerConnection": 5,
    "clientName": null,
    "address": "redis://172.18.17.207:6379",
    "subscriptionConnectionMinimumIdleSize": 1,
    "subscriptionConnectionPoolSize": 50,
    "connectionMinimumIdleSize": 32,
    "connectionPoolSize": 100,
    "database": 0,
    "dnsMonitoringInterval": 5000
},
"threads": 128,
"nettyThreads": 128,
"codec": null,
"useLinuxNativeEpoll": false
}

以下是我在啟動時實例化Redisson Client的方式:

try {
        Config config = Config.fromJSON(CommonConstants.REDIS_SINGLE_CONFIG_JSON_FILE);
        redisClient = Redisson.create(config);
    } catch (IOException e) {
        log.error(null, "Error establishing connection to Redis Cluster!", e);
    }

下面是我如何獲取記錄:

public List<Map<String, String>> fetch(List<String> ids) {
    return ids.stream().map(id -> {
        Map<String, String> m = redisClient.getMapCache(id);
        return m;
    }).collect(Collectors.toList());
}

我懷疑我錯誤地配置了Redis客戶端,但無法弄清楚那是什么。

任何幫助/光非常感謝。

謝謝

Stream使用RMapCache對象提供的迭代器。 默認情況下,它僅獲取10個元素,我建議您改用RMapCache.readAllMap方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM