首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis写入速度较慢

Redis写入速度较慢
EN

Stack Overflow用户
提问于 2018-09-27 11:18:45
回答 2查看 630关注 0票数 1

我有一个6个Redis集群实例在2个虚拟机(3个主服务器和3个从服务器)上运行。我试着每天晚上加载我所有的密钥,大约是.5十亿个密钥对10亿个密钥。web应用程序每晚执行计算并加载这些值。我的抓取速度更快,因为写入需要很长时间。更新10000个密钥需要6-10秒。对于早上登录的用户,我担心每晚的加载将不会按时完成。

下面是我的集群配置。

启用群集是

群集配置文件nodes.conf

cluster-node-timeout 5000

集群-从-有效性-因子1

日志文件redis.log

日志级别通知

慢日志-日志-慢-比10000

slowlog-max-len 64

延迟监视器阈值100

最大内存2048mb

maxmemory-policy volatile-ttl

slave-只读是

节省900 %1

节省300 10

节省60 10000

stop-writes on-bgsave-error yes rdbchecksum yes dbfilename dump.rdb

appendonly no daemonize yes

EN

回答 2

Stack Overflow用户

发布于 2018-09-30 04:20:37

写得很慢的原因可能与你的Redis持久化配置有关。使用当前设置,Redis将每分钟为您的数据集创建一个快照。我会尝试在没有"save Y X“配置行的测试集群上测试相同的导入,并对其进行比较。

票数 0
EN

Stack Overflow用户

发布于 2018-11-03 03:30:32

我使用了流水线命令,这有助于更好地提高性能。我粘贴了下面的代码,以便在一次执行中处理10000个命令。

代码语言:javascript
复制
private void saveMulti(Map<String, String> cacheableMap){   this.redisResultTemplate.executePipelined(new RedisCallback<Object>(){
    @Override
    public Object doInRedis(RedisConnection connection)
            throws DataAccessException {
         StringRedisConnection stringRedisConn = 
                         (StringRedisConnection)connection;
        for(String key: cacheableMap.keySet()){     
            stringRedisConn.set(key, cacheableMap.get(key));
        }
    return null;
      }
   });
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52528925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档