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

Redis-使用java代码操作Redis

目录

一.Java连接上redis

 1.导入依赖

二.Java操作redis的常见类型数据存储

1.设置值

​编辑 2.哈希

1.1设置哈希值

​编辑

1.2.封装工具类 

1.3列表

三redis中的项目应用


一.Java连接上redis

redis与Mysql都市数据库,Java操作redis其实跟操作mysql的过程是一样的

 1.导入依赖

在pom文件中导入依赖

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

 

建立一个redis目录在目录下建立一个Demo1测试是否连接上 

 

如果连接上了则输出PONG 

 

二.Java操作redis的常见类型数据存储

1.设置值

 2.哈希

1.1设置哈希值

输出结果 

 

1.2.封装工具类 

 

package com.zking.ssm.redis;import redis.clients.jedis.Jedis;import java.util.Map;
import java.util.Set;/*** @author bing人* @site* @company xy集团* @create 2023-11-05 22:57* 封装工具类*/
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));}}}
}

把上面的数据更换为封装后的数据   (插入/修改)

 

测试结果 

查询 

 

删除

 

删除所有 

 

1.3列表

设置数据 

 

查询数据 

 

三redis中的项目应用

1. redis一般用在哪?

存储基本不会变化的数据,然后这些数据又被多个表使用

2.redis怎么用?

将存储的数据转成json串,进行存储

缓存系统:

Redis 最常见的用途之一是作为缓存系统。它可以存储热门或频繁访问的数据,从而加快读取速度,减轻后端数据库的负担。这对于网站、应用程序和服务的性能优化非常重要。
会话存储:

Redis 可以用于存储会话信息,特别是在分布式系统中。通过将会话数据存储在 Redis 中,可以实现负载均衡、容错和扩展性,同时保证会话数据的快速访问。
消息队列:

Redis 的列表数据结构非常适合作为消息队列的基础。发布者可以将消息推送到列表中,而订阅者可以从列表中获取消息,从而实现异步通信、任务队列等功能。
实时分析和计数:

Redis 提供了各种数据结构(如 HyperLogLog、Bitmaps 等)和操作,可以用于实时分析和计数,例如统计网站的访问次数、用户在线状态等。
地理信息系统(Geospatial):

Redis 支持地理信息数据结构,可以用于存储位置坐标和距离计算。这使得 Redis 在构建位置服务和地理信息系统方面非常有用。
推荐系统:

Redis 可以用于构建推荐系统,通过存储用户喜好和商品信息,以及实时计算相似度等信息,从而为用户提供个性化的推荐。
实时分布式锁:

Redis 提供了基于 SETNX(set if not exists)命令和 Lua 脚本等方法,可以实现分布式系统中的实时锁定机制,用于协调多个节点的操作。
实时排行榜:

利用 Redis 的有序集合(Sorted Sets)结构,可以实现实时排行榜功能,例如游戏中的积分排名、热门商品排名等。
持久化和数据备份:

Redis 支持数据的持久化,可以将内存中的数据定期保存到磁盘上,以保证数据的安全性。这对于关键业务数据非常重要。
分布式锁与分布式限流:

Redis 提供了基于 Lua 脚本的原子操作,可以实现分布式锁和限流,保证在分布式环境下的数据一致性和流量控制。
 

 

相关文章:

  • LangChain+LLM实战---向量数据库介绍
  • Langchain-Chatchat-win10本地安装部署成功笔记(CPU)
  • 基于.NET、Uni-App开发支持多平台的小程序商城系统 - CoreShop
  • Mybatis-Plus自动填充功能配置和使用 [MyBatis-Plus系列] - 第494篇
  • 设计模式之策略模式(Strategy)
  • hdlbits系列verilog解答(always块case语句2)-34
  • Kotlin 进阶函数式编程技巧
  • Node.js、Chrome V8 引擎、非阻塞式I/O介绍
  • 面试问题?
  • Mac苹果电脑分辨率修改管理 安装SwitchResX 完美解决
  • RISC-V处理器设计(四)—— Verilog 代码设计
  • leetcode做题笔记215. 数组中的第K个最大元素
  • 软件开发必备神器!一文读懂10款热门看板工具推荐!
  • [尚硅谷React笔记]——第9章 ReactRouter6
  • 轻量封装WebGPU渲染系统示例<18>- 材质多pass实现GPU Compute计算(源码)
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • [Vue CLI 3] 配置解析之 css.extract
  • C语言笔记(第一章:C语言编程)
  • JavaScript 一些 DOM 的知识点
  • k8s 面向应用开发者的基础命令
  • PaddlePaddle-GitHub的正确打开姿势
  • Redux 中间件分析
  • Spring核心 Bean的高级装配
  • WebSocket使用
  • 初探 Vue 生命周期和钩子函数
  • 大数据与云计算学习:数据分析(二)
  • 工作手记之html2canvas使用概述
  • 机器学习中为什么要做归一化normalization
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • # Apache SeaTunnel 究竟是什么?
  • ###C语言程序设计-----C语言学习(6)#
  • (C#)获取字符编码的类
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (理论篇)httpmoudle和httphandler一览
  • (论文阅读11/100)Fast R-CNN
  • (转)http-server应用
  • (转)linux下的时间函数使用
  • .NET Core Web APi类库如何内嵌运行?
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET 事件模型教程(二)
  • .NET 中 GetProcess 相关方法的性能
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • /3GB和/USERVA开关
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • [ Algorithm ] N次方算法 N Square 动态规划解决
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • [ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429
  • [.NET]桃源网络硬盘 v7.4
  • [1127]图形打印 sdutOJ
  • [android] 看博客学习hashCode()和equals()
  • [Android实例] 保持屏幕长亮的两种方法 [转]