当前位置: 首页 > news >正文

Redis入门:在Java程序中高效使用Redis

准备工作

下载windows版的Redis(自行查找网络资源)

解压到指定文件夹

 如图所示:Redis的目录结构

  • redis本质上也是一个数据库,只不过经常被用作缓存 。
  • redis分为服务端和客户端,先启动服务器redis-server,在使用redis-cli命令行连接服务器。

 基于配置文件启动redis服务器

如果我们自定义了redis服务器的相关配置,例如最大连接数,数据库总数等,需要以指定配置文件的方式启动redis服务器,可以进行以下配置。

在redis的目录中新建一个文件startup.cmd,用记事本或其他文本编辑工具打开,然后写入以下内容:

redis-servle redis.windows.conf

双击这个cmd文件,启动redis服务器

显示redis服务器的基本信息,如端口(port:6379)等。

 在Java程序中使用Redis

在Java中使用redis工具,要先下载jedis.jar包,把它加载到工厂的路径中,如果使用的maven项目,直接添加对应的依赖坐标即可。

 pom.xml

    <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version></dependency>

在测试类中连接redis测试


/*** Unit test for simple App.*/
public class AppTest{@Testpublic void jedisTest(){Jedis jedis=new Jedis("localhost",6379);int i=0;//记录次数try{long start = System.currentTimeMillis();while (true){long end = System.currentTimeMillis();if (end-start>=1000){break;}i++;jedis.set("test"+i,i+"Jedis");}}finally {jedis.close();}System.out.println("redis每秒操作:"+i+"次");}}

以上代码的含义:

  1. 获取连接redis服务器的Jedis对象
  2. 先获取当前时间的毫秒值
  3. 进行死循环,当时间过去1秒时,停止循环
  4. 在这1秒内向redis服务器中存入数据
  5. 输出redis存入了多少条数据

 运行结果:

每个人的电脑的执行次数都是不同的,我这里显示的是我执行效果最好的一次,通常我的只有3万5千次。其实redis的速度不仅仅如此,比这快的多,这里较慢的原因是我们只是一条条地将命令发送给redis去执行。如果使用流水线技术它的速度回快得多,将可以达到10万次每秒的操作,十分有利于系统性能的提高。

可以看出redis的写数据的速度是非常快的:

本质原因有三点:

  • 它是基于ANSI C语言编写的,接近于汇编语言的机器语言,运行十分快速
  • 它是基于内存读/写,速度比数据库的磁盘读/写要快的多
  • 它的数据库结构只有6种数据类型,数据结构简单,因此规则较少,而数据库则是范式,完整性、规范性需要考虑的规则比较多,处理业务会比较复杂

扩展

向MySQL数据库写数据

 我利用mybatis想mysql数据库插入新的数据,具体代码不给出,主要观察执行效果以及和redis的对比

 测试类

package com.csx;import com.csx.dao.UserDao;
import com.csx.entity.User;
import com.csx.util.SqlSessionFactoryUtil;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.data.redis.core.RedisTemplate;
import redis.clients.jedis.Jedis;/*** Unit test for simple App.*/
public class AppTest{private SqlSession sqlSession= SqlSessionFactoryUtil.getSessionSql();@Testpublic void testMybatis(){UserDao userDao = sqlSession.getMapper(UserDao.class);int i=0;//记录次数long start = System.currentTimeMillis();while (true){long end = System.currentTimeMillis();if (end-start>=1000){break;}i++;User user =new User();user.setName("User"+i+"-vip");user.setAge(i);userDao.insertUser(user);}System.out.println("Mysql每秒操作:"+i+"次");}}

代码逻辑和redis进行的操作一样,这里是向mysql数据库在1秒内插入的数据数量

 执行效果

可以看的出来mysql相比于redis,写入数据的效率低太多。因此mysql适合持久化数据,而redis通常用来作为缓存使用 

相关文章:

Redis入门:在Java程序中高效使用Redis

准备工作 下载windows版的Redis&#xff08;自行查找网络资源&#xff09; 解压到指定文件夹 如图所示&#xff1a;Redis的目录结构 redis本质上也是一个数据库&#xff0c;只不过经常被用作缓存 。redis分为服务端和客户端&#xff0c;先启动服务器redis-server&#xff0c;在…...

活着就好20241021

今日提醒&#xff1a;2024年10月21日&#xff0c;星期一&#xff0c;已是开工第247天。早安&#xff0c;摸鱼界的同仁们&#xff01; 健康警钟&#xff1a;即便工作繁忙&#xff0c;也别忘了关爱自己。起身走走&#xff0c;茶水间、厕所、廊道都是好去处&#xff0c;毕竟&…...

阿里字节技术管理岗位面试要求

在阿里巴巴等互联网公司&#xff0c;技术管理岗&#xff08;如技术团队负责人 TL 或 P8/P9 级别的职位&#xff09;面试具有较高的技术要求和管理能力的考核。面试的问题和侧重点通常包括技术深度、架构设计、团队管理、项目推动等多方面。以下是一些常见的面试问题类型、侧重点…...

MySQL !=NULL 与IS NOT NULL

1、! 与<>比较 在MySQL中 ! 和 <> 的功能一致&#xff0c;在sql92规范中建议是&#xff1a;!&#xff0c;新的规范中建议为: <> 2、!NULL 与IS NOT NULL 比较 先说结论&#xff1a;默认情况下做比较条件时使用关键字“IS NULL”和“IS NOT NULL”&#xff1…...

[Unity Demo]从零开始制作空洞骑士Hollow Knight第十六集(上篇):制作更多地图,更多敌人,更多可交互对象

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、第一个代表性场景 1.制作敌人僵尸跳跳虫更多敌人2.制作敌人阿斯匹德更多可交互对象3.制作敌人孵化虫和它的孩子二、第二个代表性场景 1.制作更多敌人2.制作…...

Soap-UI传参

<?xml version"1.0" encoding"UTF-8"?> <soapenv:Envelope xmlns:soapenv"http://schemas.xmlsoap.org/soap/envelope/" xmlns:web"http://webservice.ihosp.jxmns.thirdparty.his.gocent.com/"><soapenv:Header/>…...

Centos7搭建minio对象存储服务器

Centos7搭建minio对象存储服务器 安装二进制程序配置服务文件 安装二进制程序 参考&#xff1a;https://segmentfault.com/q/1010000042181876 minio中国版&#xff1a;https://www.minio.org.cn/download.shtml#/linux # 下载二进制程序 wget https://dl.min.io/server/min…...

递归算法之汉诺塔问题(Tower of Hanoi)详细解读

汉诺塔问题&#xff08;Tower of Hanoi&#xff09;是一个经典的递归问题&#xff0c;由法国数学家 douard Lucas 于1883年提出。问题描述了如何将不同大小的圆盘从一个柱子移到另一个柱子&#xff0c;同时遵循特定规则。它是计算机科学中用来展示递归思想和算法设计的经典案例…...

软件设计模式------工厂方法模式

工厂方法模式&#xff08;Factory Method Pattern&#xff09;&#xff0c;又称工厂模式&#xff0c;也叫虚拟构造器模式&#xff08;Virtual Constructor Pattern&#xff09;或多态工厂模式&#xff08;Polymorphic Pactory Pattern&#xff09;,属于类创建型模式。 我们知道…...

演示:基于WPF的DrawingVisual开发的高刷新率示波器

一、目的&#xff1a;分享一个基于WPF的DrawingVisual开发的高刷新率示波器 二、效果演示 特此说明&#xff1a;由于Gif录制工具帧率不够&#xff0c;渲染60帧用了4.6秒&#xff0c;平均帧率在12Hz左右&#xff0c;所以展示效果不好&#xff0c;想要看好些的效果可以看文章下面…...

git入门操作(2)

文章目录 git入门操作&#xff08;2&#xff09;git diff 查看差异git diff gitignore忽略文件1.在代码仓库创建这个文件2.添加对 log 文件过滤 连接远程仓库与ssh配置远程仓库和本地仓库关联步骤分支基本操作步骤命令&#xff1a; 合并冲突分支合并逻辑1.新建分支 dev&#xf…...

【AI学习】扩散模型学习总结PPT

#1024程序员节&#xff5c;征文# 看了一些文章&#xff0c;大概学习了扩散模型。 《李宏毅 2023 最新 Diffusion Model 原理讲解》&#xff08;文章链接&#xff1a;https://zhuanlan.zhihu.com/p/692430885&#xff09; 《What are Diffusion Models?》 https://lilianwen…...

【Python】相等性比较运算(==, is)的学习笔记

1. 相等性比较运算&#xff1a; & is Python中有两种比较运算符和is&#xff1b; 和 is 的主要区别在于它们比较的对象属性不同&#xff1a; 运算符&#xff1a; 比较对象的值或内容是否相等。调用对象的 __eq__() 方法来进行比较。可以被重载&#xff08;在自定义类中重…...

智慧公厕厂家:智慧公厕建设推动城市公厕智能化变革

随着科技的不断进步&#xff0c;智慧公厕厂家正以创新之力推动着城市公厕的智能化变革。 一、提升用户体验 智慧公厕为使用者带来了前所未有的便利。通过实时显示厕位使用情况&#xff0c;避免了旅客的无效排队&#xff0c;节省了时间。感应式设备如水龙头、洗手液等&#xff…...

大一计算机课程之线性代数

《大一计算机课程之线性代数》 在大一的计算机课程中&#xff0c;线性代数是一门极为重要的基础学科&#xff0c;它就像一把神奇的钥匙&#xff0c;为计算机科学领域的诸多方面开启了智慧之门。 线性代数主要研究线性方程组、向量空间、线性变换等内容。对于计算机专业的学生…...

什么是运动控制器?运动控制器的特点

运动控制器是一种专门用于控制机械系统中运动部件&#xff08;如电机、驱动器和其他运动元件&#xff09;的电子设备。它们在自动化、机器人、数控机床、工业自动化和精密控制系统等领域得到了广泛应用。 运动控制器的功能 运动控制器主要负责以下几个方面的功能&#xff1a;…...

[AWS]RDS数据库版本升级

背景&#xff1a;由于AWS上mysql5.7版本不再支持&#xff0c;需要进行版本升级。 吐槽&#xff1a;每年都要来那么几次&#xff0c;真的有病一样&#xff0c;很烦。 步骤一、升级检查 AWS提供了一个python的升级检测脚本&#xff0c;可以按照一下脚本下载测试&#xff1a; [r…...

(Golang)初识Go语言!!为什么选择Go?如何配置Go的开发环境?VS Code如何配置Go环境?

1. Go能做什么&#xff1f; go的优点&#xff1a;运行速度快、并发能力强 Go的应用领域&#xff1a; 区块链应用&#xff08;BT、分布式账本技术&#xff09; 后端服务应用 例如&#xff1a; 美团后台流量支撑程序 支撑主站的后台流量&#xff08;排序、推荐、搜索等&#xf…...

【人工智能-初级】第15章 TensorFlow 和 PyTorch 的入门:深度学习的利器

文章目录 一、引言二、TensorFlow 简介2.1 什么是 TensorFlow&#xff1f;2.2 TensorFlow 安装2.3 TensorFlow 构建简单的神经网络2.4 TensorBoard 可视化 三、PyTorch 简介3.1 什么是 PyTorch&#xff1f;3.2 PyTorch 安装3.3 PyTorch 构建简单的神经网络 四、TensorFlow 与 P…...

git禁用 SSL 证书验证

命令 git config --global http.sslVerify false注意&#xff1a;禁用 SSL 证书验证是不安全的&#xff0c;可能会使你的 Git 操作面临中间人攻击的风险。因此&#xff0c;只有在你确信网络环境是安全的&#xff0c;且了解禁用 SSL 验证的后果时&#xff0c;才应该使用这个配置…...

猫抓Cat-Catch终极指南:3分钟掌握浏览器资源嗅探完整方案

猫抓Cat-Catch终极指南&#xff1a;3分钟掌握浏览器资源嗅探完整方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否经常遇到这样的困扰&am…...

告别单调终端:250+ Xshell配色方案让你的命令行焕然一新

告别单调终端&#xff1a;250 Xshell配色方案让你的命令行焕然一新 【免费下载链接】Xshell-ColorScheme 250 Xshell Color Schemes 项目地址: https://gitcode.com/gh_mirrors/xs/Xshell-ColorScheme 每天面对单调的黑白终端界面&#xff0c;是否感到视觉疲劳&#xff…...

编写程序统计职场上下级沟通频率,工作执行效果数据,搭建高效沟通模式,减少指令传达偏差工作失误。

构建一个职场上下级沟通频率与工作执行效果分析的商务智能示例项目&#xff0c;去营销化、中立化&#xff0c;仅用于学习与工程实践参考。一、实际应用场景描述在任何组织中&#xff0c;上下级沟通质量直接决定执行效率&#xff1a;- 上级布置任务 → 下级理解并执行 → 反馈结…...

专业无人机日志分析工具:UAV Log Viewer 让飞行数据分析更简单高效

专业无人机日志分析工具&#xff1a;UAV Log Viewer 让飞行数据分析更简单高效 【免费下载链接】UAVLogViewer An online viewer for UAV log files 项目地址: https://gitcode.com/gh_mirrors/ua/UAVLogViewer 无人机飞行日志分析是每个飞手和专业团队必须掌握的技能&a…...

初创公司如何利用Taotoken以可控成本试用多模型

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 初创公司如何利用Taotoken以可控成本试用多模型 对于资源有限的初创团队而言&#xff0c;在产品开发中引入大模型能力是一个充满机…...

RK3568开发板TFTP网络启动:告别烧录,实现内核与设备树秒级更新

1. 项目概述与核心价值作为一名在嵌入式领域摸爬滚打了十来年的老鸟&#xff0c;我深知在项目开发的中后期&#xff0c;那种反复修改、编译、烧录、测试的循环有多磨人。尤其是当你需要频繁调整设备树&#xff08;Device Tree&#xff09;来适配一个新传感器&#xff0c;或者微…...

量子电路反编译与遗传编程在量子计算中的应用

1. 量子电路反编译&#xff1a;从黑箱到透明设计的革命性跨越量子计算正经历着从实验室走向实际应用的关键转型期。在这个被称为"嘈杂中等规模量子"&#xff08;NISQ&#xff09;的时代&#xff0c;量子架构搜索&#xff08;QAS&#xff09;已成为设计高效量子算法的…...

AWS实战|从零搭建高可用Web应用网络架构

1. 为什么需要高可用Web应用架构&#xff1f; 最近帮朋友公司迁移电商平台到AWS时&#xff0c;他们最担心的就是大促期间服务器挂掉。这让我想起三年前自己踩过的坑——当时用单可用区部署的官网&#xff0c;因为一次区域级故障直接宕机8小时。现在回头看&#xff0c;其实只要在…...

Boss直聘职位数据自动化采集:Python爬虫架构设计与工程实践

1. 项目概述与核心价值最近在技术社区里&#xff0c;看到不少朋友在讨论一个叫longsizhuo/BossZhiPin_Job_Search的项目。光看名字&#xff0c;你大概就能猜到&#xff0c;这是一个跟“Boss直聘”和“职位搜索”相关的自动化工具。作为一个在招聘数据分析和自动化领域摸爬滚打了…...

终极指南:如何在Mac上免费备份和导出微信聊天记录

终极指南&#xff1a;如何在Mac上免费备份和导出微信聊天记录 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾因误删重要微信聊天记录而懊恼&#xff1f;或是需要…...