redis 保存是否可以更快?

news2024/11/30 5:40:01

redis 常见用法之保存

           在java项目很多人都喜欢用spring-boot-starter-data-redis下的StringRedisTemplate操作redis,大多项目也用作为缓存,他们最常见的保存key value代码,如下:

stringRedisTemplate.opsForValue().set(key, value);

大家都知道redis上面的代码执行保存是同步的,速度并不是想像中的快。请看以下的测试:

redis测试环境

直连线上真实环境redis数据库 

redis当前版本及状态如下图:

1 测试1000条数据更新测试: 

同步是花了60.783秒,而使用异步时0.003秒,如下图:

2 测试10000条数据更新测试: 

同步是花了663.915秒,而使用异步时0.005秒,如下图:

从上面的测试结果可以看得出,redis同步与异步保存差距是多么的大。某些合适的环境可以建议使用异步保存,也算是提升项目整体性能一个技巧。

测试代码 

 @Test
    public  void testRedis() {


        long start= System.currentTimeMillis();
        System.out.println("test redis -----------begin");

        for(int i=0;i<10000;i++){
            redisService.set("test_key1","aa"+i);
        }
        System.out.println("test redis-----------end");

        long end= System.currentTimeMillis()-start;
        System.out.println("time = "+end);



         start= System.currentTimeMillis();
        System.out.println("test redis async-----------begin");

        for(int i=0;i<1000;i++){
            redisService.asyncSet("test_key1","aa"+i);
        }
        System.out.println("test redis async-----------end");

         end= System.currentTimeMillis()-start;
        System.out.println("async time = "+end);



    }


//同步更新
public void set(String key, String value) {
        stringRedisTemplate.opsForValue().set(key, value);

    }

//异步更新
    public CompletableFuture<Void> asyncSet(String key, String value) {
        return CompletableFuture.supplyAsync(() -> {
            stringRedisTemplate.execute((RedisCallback<Object>) connection -> {
                connection.set(key.getBytes(), value.getBytes());
                return null;
            });
            return null;
        });
    }

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1555902.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥杯算法题练习

1、20世纪有多少个星期一 &#xff08;1901、1、1——2000、12、31&#xff09; 方法一&#xff1a;python代码 方法二&#xff1a;excel工具(设置单元格格式&#xff0c;把日期换成周几的形式) 2、100个数相乘&#xff0c;结果有几个0 3、切面条 找规律:对折次数n 弯2^n-1 面…

springboot准妈妈孕期交流平台

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;准妈妈孕期交流平台当然也不能排除在外。准妈妈孕期交流平台是以实际运用为开发背景&#xff0c;运用软件工程原理和开发…

【数据结构】堆、堆排序(包你学会的)

文章目录 前言堆&#xff08;Heap&#xff09;1、堆的概念及结构2、堆的分类2.1、小堆的结构2.2、大堆的结构2.3、找到规律并证明 3、堆的实现&#xff08;小堆&#xff09;3.1、堆的结构以及接口3.2、初始化、销毁3.3、交换父子结点&#xff08;后续需要&#xff09;3.4、插入…

基于STC12C5A60S2系列1T 8051单片机通过单个按键长按次数实现开关机应用

基于STC12C5A60S2系列1T 8051单片机通过单个按键长按次数实现开关机应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍基于STC12C5A60S2系列1T 8051单片机通过单个按…

【宝塔部署】RocketMQ+可视化面板

第一步下载需要的资源文件文件 RocketMQ的官网地址&#xff1a;https://rocketmq.apache.org/ Github地址&#xff1a;https://github.com/apache/rocketmq 下载地址&#xff1a;https://rocketmq.apache.org/zh/download/第二步创建可视化面板 这样用IP:7070就可以登录进去 …

武汉星起航:领航亚马逊跨境电商,开启全新运营时代

在全球化浪潮的推动下&#xff0c;跨境电商行业正迎来前所未有的发展机遇。作为国家鼓励发展的新兴产业&#xff0c;跨境电商不仅促进了国际贸易的繁荣&#xff0c;更为众多中小企业和个人创业者开辟了新的市场天地。在这个充满机遇与挑战的行业中&#xff0c;武汉星起航电子商…

进程知识点

引用的文章&#xff1a;操作系统——进程通信&#xff08;IPC&#xff09;_系统ipc-CSDN博客 面试汇总(五)&#xff1a;操作系统常见面试总结(一)&#xff1a;进程与线程的相关知识点 - 知乎 (zhihu.com) 二、进程的定义、组成、组成方式及特征_进程的组成部分必须包含-CSDN博…

SpringBoot2.6.3 + knife4j-openapi3

1.引入项目依赖&#xff1a; <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi3-spring-boot-starter</artifactId><version>4.5.0</version> </dependency> 2.新增配置文件 import io.swag…

【Git项目部署到本地仓库】

1. 下载安装Git 根据您的操作系统&#xff0c;访问Git的官方网站&#xff1a;https://git-scm.com/download/win 具体安装教程请访问其他博客&#xff0c;例如&#xff1a;http://t.csdnimg.cn/I28VO 安装完成后&#xff0c;您可以通过在winR键输入cmd打开命令行输入 git -…

XXII Open Cup, Grand Prix of Daejeon C. AND PLUS OR(思维 结论)

题目 给定n(n<20)&#xff0c;再输入2^n个数&#xff0c;分别代表a[0]到a[2^n-1]&#xff0c;第i个数ai(0<ai<1e7) 问是否存在一对下标i、j满足a[i]a[j]<a[i&j]a[i|j] 如果不存在&#xff0c;输出-1&#xff0c;否则输出任意一对(i,j)即可 思路来源 官方题…

python爬虫之selenium4使用(万字讲解)

文章目录 一、前言二、selenium的介绍1、优点&#xff1a;2、缺点&#xff1a; 三、selenium环境搭建1、安装python模块2、selenium4新特性3、安装驱动WebDriver驱动选择驱动安装和测试 基础操作1、属性和方法2、单个元素定位通过id定位通过class_name定位一个元素通过xpath定位…

SQL82 返回 2020 年 1 月的所有订单的订单号和订单日期(like)

select order_num,order_date from Orders where order_date like "2020-01%" order by order_date;使用like来匹配

武汉星起航:助力跨境电商新手,打造高质量亚马逊产品评价新策略

在今日全球化与数字化浪潮的推动下&#xff0c;跨境电商已成为推动国际贸易发展的新动力。然而&#xff0c;随着市场竞争的日益激烈&#xff0c;如何让自己的产品在亚马逊平台上脱颖而出&#xff0c;成为了众多跨境电商新手面临的重要问题。武汉星起航电子商务有限公司&#xf…

WP Rocket v3.15.10最新版强大的WordPress缓存插件

WP Rocket v3.15.10是一款强大的WordPress缓存插件&#xff0c;它通过一系列优化措施来提高网站的速度和性能。 WP Rocket与免费缓存插件相比&#xff0c;提供了更丰富和高级的自定义设置功能。这些包括媒体优化、预加载、延迟加载和数据库优化等。特别是对于没有任何缓存技术…

MySQL Innodb 引擎中预防 Update 操作上升为表锁

一、MySQL 如何预防 Update 上升为表锁 在 MySQL 中&#xff0c;进行任何数据的 修改 操作都会进行一定的锁操作&#xff0c;而锁的不同直接导致性能的差异。例如 MyISAM 引擎&#xff0c;更新时采用表锁&#xff0c;并发性较差。而 Innodb 引擎支持事务&#xff0c;更新时采用…

Cocos Creator 常见问题记录

目录 问题1、精灵图九宫格&#xff0c;角度不拉伸 问题2、BlockInputEvents 防止透屏 问题1、精灵图九宫格&#xff0c;角度不拉伸 点击编辑&#xff0c;拖拽到可变区域 问题2、BlockInputEvents 防止透屏

真实sql注入以及小xss--BurpSuite联动sqlmap篇

前几天漏洞检测的时候无意发现一个sql注入 首先我先去网站的robots.txt去看了看无意间发现很多资产 而我意外发现admin就是后台 之后我通过基础的万能账号密码测试or ‘1‘’1也根本没有效果 而当我注入列的时候情况出现了 出现了报错&#xff0c;有报错必有注入点 因此我…

【c 语言 】malloc函数详解

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;C语言 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步&…

密码学基础-对称密码/公钥密码/混合密码系统 详解

密码学基础-对称密码/公钥密码 加解密说明1.加密解密必要因素加密安全性说明 什么是对称密码图示说明对称密码详解什么是DES?举例说明 什么是3DES什么是AES? 公钥密码什么是RSA? 对称密钥和公钥密码优缺点对比对称密码对称密码算法总结对称密码存在的问题? 公钥密码公钥密码…

真实工作中的编程,与在校coder有哪些不同?

工作中的编程和学校里最大的不同在于&#xff1a;在完整的流程规范下&#xff0c;同事间协同开发&#xff0c;按时按量交付&#xff0c;并不断测试迭代优化&#xff0c;最终能稳定的用于生产。 有人说这是软件开发&#xff0c;并不是编程啊。对这就是工作编程和学校编程的差异…