Redis之Java操作连接操作Redis

news2024/11/26 1:48:50

前言

Java是一种强大的编程语言,而Redis是一个快速且具有高可扩展性的开源键值数据存储系统。使用Java操作Redis可以提高效率和性能,并且能够满足大规模数据存储和处理的需求。在本篇文章中,我们将介绍如何使用Java连接Redis,以及如何在Java中使用Redis的API来进行数据操作。 

一.Java连接Redis

1.导入依赖

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

2.启动Redis服务

win+r打开命令行窗口,输入以下代码

cd redis安装的路径
redis-server.exe redis.windows.conf

3.Java创建连接 

public static void main(String[] args) {
        //建立连接
        Jedis jedis = new Jedis("localhost", 6379);
        //设置密码
        jedis.auth("123456");
        //测试连接(ping)
        System.out.println(jedis.ping());
    }

4.运行测试结果

 

二.Java代码操作Redis常见数据类型

1.String类型

1.1 存储数据

//存储数据
jedis.set("test","YU");

1.2 切换数据库

jedis.select(2);

1.3 存储数据时同时设置过期时间

//设置key过期时间
jedis.setex("time",15,"过期时间");

2.Hash类型

2.1 存储数据

jedis.hset("user","name","YU");
jedis.hset("user","hobby","Java");
jedis.hset("user","age","18");

2.2 利用工具类以map的形式存储数据

(1)RedisUtils工具类

package com.zking.ssm.util;

import redis.clients.jedis.Jedis;

import java.util.Map;
import java.util.Set;

/**
 * @author YU
 * @create 2023-11-06 10:35
 */
public class RedisUtils {
    public static void setHashMap(Jedis jedis, String key, Map<String,String> map){
        if(map!=null && map.size()>0){
            Set<String> keys = map.keySet();
            for(String k:keys){
                jedis.hset(key,k,map.get(k));
            }
        }

    }
}

(2)应用

Map map = new HashMap();
        map.put("name","YU");
        map.put("hobby","Java");
        map.put("age","18");
        RedisUtils.setHashMap(jedis,"user",map);

我们通过将map集合及键以参数的形式传递到工具类方法中,并遍历依次进行存储

 2.3 查询数据

(1)查询单个

System.out.println(jedis.hget("user","hobby"));

(2)查询所有

System.out.println(jedis.hgetAll("user"));

2.4 删除数据

(1)删除单个

Long hdel = jedis.hdel("user", "sex");

(2)删除所有

jedis.del("user");

3.列表

3.1 存储

//指定数据库        
jedis.select(2);
//插入多项值
jedis.lpush("List_hobby", "KK", "run", "cash", "LL");

3.2 获取长度

// 获取列表的长度   
System.out.println(jedis.llen("List_hobby"));

3.3 查找元素

 //根据索引获取列表中的元素  
System.out.println(jedis.lindex("List_hobby", 2));
//查看指定范围内的元素   
System.out.println(jedis.lrange("List_hobby", 0, 3));

三.应用场景

  1. 缓存:Redis常用作缓存存储,可以帮助加速应用程序的响应时间。Java应用程序可以使用Redis来缓存经常访问的数据,如数据库查询结果、计算结果或其他资源,从而减轻数据库服务器的负载并提高性能。

  2. 会话管理:Java Web应用程序可以使用Redis来存储会话数据。这可以提供分布式会话支持,允许多个应用服务器之间共享会话信息,从而增加应用程序的可伸缩性和可用性。

  3. 消息队列:Redis的发布/订阅机制和列表数据结构可用于实现消息队列。Java应用程序可以使用Redis来进行异步通信,处理任务队列、事件通知等。

  4. 计数器和排行榜:Redis提供了原子操作,可以用于实现计数器和排行榜功能。Java应用程序可以使用Redis来跟踪用户行为、计算分数和排名,如社交媒体的点赞、转发、评论等。

  5. 数据缓存:Java应用程序可以使用Redis作为数据缓存层,存储热门数据,以减少对数据库的频繁访问,提高性能。

  6. 分布式锁:Redis可以用于实现分布式锁,Java应用程序可以使用这些锁来协调多个实例的并发操作,确保数据的一致性和可靠性。

  7. 实时分析和监控:Redis的数据结构和快速读写能力使其成为实时分析和监控数据的理想存储引擎。Java应用程序可以将关键指标和日志数据存储在Redis中,以进行实时分析和监控。

  8. 地理位置服务:Redis的地理位置数据类型(Geospatial)可用于构建地理位置服务,如查找附近的商店、用户位置跟踪等。

  9. 缓存清理和过期策略:Redis支持设置数据的过期时间,Java应用程序可以使用这一特性来管理缓存数据的自动清理。

  10. 队列管理:Java应用程序可以使用Redis来管理任务队列,处理后台任务,如图像处理、数据导入、邮件发送等

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

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

相关文章

企业文件夹同步,怎样让数据管理更高效?

随着企业数据量的不断增加&#xff0c;如何高效地进行文件夹同步已成为企业提升工作效率、确保数据安全的重要一环。飞驰云联的同步软件作为一款专门针对企业级用户的数据同步解决方案&#xff0c;在实践中表现出色&#xff0c;值得信赖。 飞驰云联的同步软件是一款高效、稳定、…

axios下载csv文件下载-功能实现

须将axios 配置中的responseType设置为arraybuffer text/comma-separated-values, text/csv, application/csv, application/excel, application/vnd.ms-excel, application/vnd.msexcel // 下载文件 async exportConsumeList() {try {let res await exportConsumeList…

ASO优化之为应用创建屏幕截图的技巧(上)

屏幕截图是应用商店中最大的视觉元素之一。它们吸引用户的注意力&#xff0c;让他们对应用程序的外观有一个印象。我们需要改善并优化屏幕截图&#xff0c;来提高应用的转化率。 1、将用户的注意力吸引到正确位置。 显示部分屏幕截图而不是完整的设备。通过将原始资源减半&…

SS928 开发记录一 烧写

1.下载ToolPlatform 1.1设置芯片型号 1.2IP系统会自动根据主机设置 1.3选择烧写方式以及 eMMC分区表 1.4选择烧写文件 .bin、 kernel 、rootfs 2.烧录后通过串口连接 3.连接后写入环境变量 4.reset

『亚马逊云科技产品测评』活动征文|游戏出海云服务器选择

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 Developer Centre, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 缘由 在国内流量红利见顶、版号暂停发放后&#xff0c;海外已经成为国内…

风险管理 相关的(ITTO)输入、工具与技术

信息系统项目管理 之「风险管理」相关的&#xff08;ITTO&#xff09;输入、工具与技术、输出 风险管理是项目管理的十大知识领域之一&#xff0c;包括如下7个过程。 1、规划风险管理 定义 规划风险管理是定义如何实施项目风险管理活动的过。 作用 确保风险管理的水平、…

01-详解静态代理,动态代理(JDK动态代理原理和CGLIB动态代理原理)

GoF之代理模式 概述 代理模式是GoF23种设计模式之一,属于结构型设计模式,本质就是通过引入代理对象间接实现对真实对象的操作 业务场景: 系统中有A、B、C三个模块,使用这些模块的前提是需要用户登录 此时就可以为A、B、C三个模块提供一个代理,代理的逻辑请求来了之后先判断…

vue + axios + mock

参考来源&#xff1a;Vue mock.js模拟数据实现首页导航与左侧菜单功能_vue.js_AB教程网 记录步骤&#xff1a;在参考资料来源添加axios步骤 1、安装mock依赖 npm install mock -D //只在开发环境使用 下载完成后&#xff0c;项目文件package.json中的devDependencies就会加…

【已解决】linux下轻松解决大多数软件依赖问题

【已解决】linux下轻松解决大多数软件依赖问题 通过aptitute安装 sudo apt install aptitudesudo aptitude install 软件包的名字以安装opencv过程中sudo apt-get install libgtk2.0-dev失败为例 先装aptitute sudo apt install aptitude再装libgtk2.0-dev sudo aptitude …

HR如何应用人才测评系统来开展招聘?

企业招聘&#xff1a;名额少&#xff0c;应聘者多&#xff0c;这是必然现象&#xff01;如果提高招聘效率&#xff0c;成为企业最为关心的问题。 问题可能有 1、简历多筛选难 每次收到一堆的简历&#xff0c;如何从中筛选出有效的人才&#xff0c;是一件头疼的事&#xff0c…

【文末送书】Python界面开发与PyQt

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

【微服务】一体化智慧工地管理平台源码

智慧工地系统是一种利用人工智能和物联网技术来监测和管理建筑工地的系统。它可以通过感知设备、数据处理和分析、智能控制等技术手段&#xff0c;实现对工地施工、设备状态、人员安全等方面的实时监控和管理。 一、智慧工地让工程施工智能化 1、内容全面&#xff0c;多维度数…

[开源]免费开源MES系统/可视化数字大屏/自动排班系统

开源系统概述&#xff1a; 万界星空科技免费MES、开源MES、商业开源MES、市面上最好的开源MES、MES源代码、免费MES、免费智能制造系统、免费排产系统、免费排班系统、免费质检系统、免费生产计划系统。 万界星空开源MES制造执行系统的Java开源版本。开源mes系统包括系统管理…

回馈电子负载的特点

随着科技的不断发展&#xff0c;制造工厂正逐渐采用先进的设备和技术来提高生产效率。回馈电子负载作为一种新型的电力设备&#xff0c;其独特的特点为制造工厂带来了诸多优势。回馈电子负载是一种能够将多余的电能回馈到电网的电力设备&#xff0c;广泛应用于制造工厂、数据中…

Android 接入ttf字体文件

一、业务实现 一些炫酷的App总会加一些App自己的字体。这时候需要找UI提供ttf字体文件。 然后实现 TTF&#xff08;TrueType Font&#xff09;字体文件并将其应用到 TextView。 二、大致流程 将 TTF 字体文件添加到你的 Android 项目中&#xff1a; 将 TTF 文件复制到 res/f…

【Pytorch】计算机视觉项目——卷积神经网络CNN模型识别图像分类

目录 一、前言二、CNN可视化解释器1. 卷积层工作原理 三、详细步骤说明1. 数据集准备2.DataLoader3. 搭建模型CNN3.1 设置设备3.2 搭建CNN模型3.3 设置loss 和 optimizer3.4 训练和测试循环 4. 模型评估和结果输出 一、前言 在上一篇笔记《【Pytorch】整体工作流程代码详解&am…

mac电脑大旧型文件清理软件CleanMyMac2024

CleanMyMac的大旧文件模块会帮您定位、检查和移除您几个月没有打开过并且不再需要的大型文件和文件夹&#xff0c;这样可以节省更多的磁盘空间。 CleanMyMac X全新版下载如下: https://wm.makeding.com/iclk/?zoneid49983 大型和旧文件模块可以查找和移除大型文件和文件夹&…

香港账户的美金如何打到国内账户

香港账户的美金可以有多种方式打到国内账户&#xff0c;以下是几种常见的方式&#xff1a; 1.银行电汇&#xff1a;将美元转账到中国大陆的银行账户上并进行换汇操作&#xff0c;这是一种稳妥可靠的方式&#xff0c;但手续费相对较高。 2. 支付宝国际汇款&#xff1a;通过支付…

任正非说:我们要在整体上形成海军陆战队和主力作战团队相配合的作战方案。

你好&#xff01;这是华研荟【任正非说】系列的第30篇文章&#xff0c;让我们聆听任正非先生的真知灼见&#xff0c;学习华为的管理思想和管理理念。 一、我们的业务量在增长&#xff0c;因此带来表面上人的效益是增长的。但是我们要看到&#xff0c;我们现在利润不是来自于管理…

C++ Qt 学习(三):无边框窗口设计

1. 无边框窗口 1.1 主窗口实现 MainWidget.h #pragma once#include <QtWidgets/QWidget> #include "CTitleBar.h" #include "CFrameLessWidgetBase.h"// 主窗口 MainWidget 继承自无边框窗口公用类 CFrameLessWidgetBase class MainWidget : publi…