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

【Redis】在Java中以及Spring环境下操作Redis

Java环境下:

1.创建maven 项目

2.导入依赖

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

此处使用的是Jedis(提供的api和redis命令高度一致)

3.配置端口转发

防止Redis的端口被黑客攻击     将云服务器的redis端口映射到本地主机中

在xshell中配置:

 此时, 访问本地的 8888, 就相当于访问对应服务器的 6379

此时连接成功

一.基本命令:

    public static void test(Jedis jedis) {System.out.println("set 和 get 使用");//清空数据库jedis.flushAll();jedis.set("key","k1");jedis.set("key2","k2");jedis.set("key3","k3");String key = jedis.get("key");String key2 = jedis.get("key2");String key3 = jedis.get("key3");System.out.println("key: " + key);System.out.println("key2: " + key2);System.out.println("key3: " + key3);System.out.println("exists 和 del 使用");boolean result = jedis.exists("key");System.out.println("result:" + result);result = jedis.exists("key1111");System.out.println("result:" + result);long del = jedis.del("key", "key2");result = jedis.exists("key");System.out.println("result:" + result);System.out.println("keys 使用");jedis.set("key","k1");jedis.set("key2","k2");Set<String> keys = jedis.keys("*");System.out.println("keys: " + keys);System.out.println("expire 和 ttl 使用");jedis.set("key4","k4");jedis.expire("key4",10);//休眠5stry {Thread.sleep(5000);} catch (InterruptedException e) {throw new RuntimeException(e);}long ttl = jedis.ttl("key4");System.out.println("ttl: " + ttl );System.out.println("type 使用");jedis.flushAll();jedis.set("String", "1");String type = jedis.type("String");System.out.println("type: "+type);jedis.lpush("list","111","222","333");type = jedis.type("list");System.out.println("type: "+type);jedis.sadd("set","a","b","c");type = jedis.type("set");System.out.println("type: "+type);jedis.zadd("zset",1.0,"zhangsan");type = jedis.type("zset");System.out.println("type: "+type);jedis.hset("hash","f1 ","v1");type = jedis.type("hash");System.out.println("type: "+type);}

 String :

    public static void test(Jedis jedis) {//清空数据库jedis.flushAll();System.out.println("mset 和 mget 使用");jedis.mset("k1","111","k2","222","k3","333");List<String> mget = jedis.mget("k1", "k2", "k3","k4");System.out.println("mget: " +mget);System.out.println("getrange 和 setrange 使用");jedis.set("k4","abcdefgh");String k4 = jedis.getrange("k4", 0, 4);System.out.println("result: " +k4);jedis.setrange("k4",0,"eeee");System.out.println("k4: " +jedis.get("k4"));System.out.println("append 使用");jedis.append("k4","aaaaaa");System.out.println("k4: " + jedis.get("k4"));System.out.println("incr 和 decr 使用");jedis.set("k5","111");System.out.println( "k5: " + jedis.incr("k5"));System.out.println( "k5: " + jedis.decr("k5"));}

 

list使用:

    public static void  test(Jedis jedis) {jedis.flushAll();System.out.println("lpush 和 lrange 使用");jedis.lpush("key","1","2","3","4","5");System.out.println("key:" + jedis.lrange("key",0,-1));System.out.println("rpuhs ,rpop, lpop 使用 ");jedis.rpush("key2","1","2","3","4","5");System.out.println("key2 :" + jedis.lrange("key2",0,-1));System.out.println("lpop key2:" + jedis.lpop("key2"));System.out.println("rpop key2:" + jedis.rpop("key2"));System.out.println("llen 使用");System.out.println("len key2: " + jedis.llen("key2"));}

hash的使用:

    private static void test(Jedis jedis) {jedis.flushAll();System.out.println("hset 和 hget 使用");HashMap<String,String> hash = new HashMap<>();hash.put("f2","v2");hash.put("f3","v3");hash.put("f4","v4");jedis.hset("key",hash);jedis.hset("key","f1","v1");System.out.println("key f1: " +jedis.hget("key", "f1"));System.out.println("key f5: " +jedis.hget("key", "f5"));System.out.println("hexists 使用");Boolean result = jedis.hexists("key","f1");System.out.println("key f1 result: " + result);result = jedis.hexists("key","f5");System.out.println("key f5 result: " + result);System.out.println("hkeys 和 hvals 使用");Set<String> hkeys = jedis.hkeys("key");System.out.println("hkeys: " + hkeys);List<String> hvals = jedis.hvals("key");System.out.println("hvals: " +hvals);System.out.println("hdel 使用");jedis.hdel("key","f1");result = jedis.hexists("key","f1");System.out.println("key f1 result: " + result);System.out.println("hmset 和 hmget 使用");List<String> hmget = jedis.hmget("key", "f1", "f2", "f3");System.out.println("hmget key: " + hmget);}

set的使用:

    public static void test(Jedis jedis) {jedis.flushAll();System.out.println("sadd 和 smembers 使用");jedis.sadd("key","a","b","c","d");Set<String> smembers = jedis.smembers("key");System.out.println("key: " +smembers);System.out.println("sismember , scard , spop  使用");boolean result = jedis.sismember("key", "a");System.out.println("result: " + result);long len  = jedis.scard("key");System.out.println("key len: " +len);jedis.spop("key");System.out.println("key len: " +jedis.scard("key"));System.out.println("sinter 和 sinterstore");jedis.sadd("key2","1","2","3","4","5");jedis.sadd("key3","3","4","5","6","7");System.out.println("[key2 key3]sinter: "+ jedis.sinter("key2","key3"));long sinterstore = jedis.sinterstore("key4", "key2", "key3");System.out.println("sinterstore: " + sinterstore);System.out.println("key4: " + jedis.smembers("key4"));}

zset的使用:

    public static void test(Jedis jedis) {jedis.flushAll();System.out.println("zadd 和 zrange 使用");jedis.zadd("key",10.0,"zhangsan");Map<String ,Double> hash = new HashMap<>();hash.put("lisi",20.0);hash.put("wangwu",30.0);jedis.zadd("key",hash);List<String> members = jedis.zrange("key", 0, -1);System.out.println("members: "+members);List<Tuple> key = jedis.zrangeWithScores("key", 0, -1);System.out.println("key: " + key);System.out.println("zcard , zscore 使用");long len = jedis.zcard("key");System.out.println("len key: " +len);Double score  =  jedis.zscore("key","zhangsan");System.out.println("score: " + score);System.out.println("zrem , zrank 使用");Long zrank = jedis.zrank("key", "lisi");System.out.println("lisi rank: " + zrank);jedis.zrem("key","zhangsan");System.out.println("lisi rank: " + jedis.zrank("key", "lisi"));}

 

都是一些基本操作,跟在redis操作基本一致,

Spring环境:

创建项目时勾选即可

通过注入的方法拿到StringRedisTemplate操作Redis 相当于刚才的Jedis

 

 将操作Redis的方法分成几个类别,好进一步更好的组织

大体命令基本一致 

相关文章:

【Redis】在Java中以及Spring环境下操作Redis

Java环境下&#xff1a; 1.创建maven 项目 2.导入依赖 <!-- redis --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.3.2</version></dependency> 此处使用的是Jedis&…...

MFC—加法器

1.需要为编辑框添加变量 2.在cpp文件中的按钮中添加代码 void CMFCAddtionDlg::OnBnClickedButton1() {// TODO: 在此添加控件通知处理程序代码UpdateData(true);//把控件里的值更新给变量m_add m_add1 m_add2;//加法UpdateData(false);//把控件相加的值赋值给控件 }...

SpringBoot五:Web开发

精心整理了最新的面试资料&#xff0c;有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 要解决的问题 导入静态资源首页jsp&#xff0c;模板引擎Thymeleaf装配扩展SpringMVC增删改查拦截器国际化&#xff08;非重点&#xff09; 可以使用以下方式处理静态…...

电机控制的空间矢量调制 (SVPWM)

目录 概述 1 电机控制的空间矢量调制 (SVPWM)介绍 2 实现原理 2.1 设计要求 2.2 SVPWM 的实现 3 SVPWM的C语言 3.1 代码文件 3.2 STM32G4平台上验证 4 源代码文件 概述 本文主要介绍电机控制的空间矢量调制 (SVPWM)&#xff0c;空间矢量调制 (SVPWM) 是感应电机和永磁…...

jupyterhub on k8s 配置用户名密码 简单版

如果只是小组内使用 不想共用密码 也不想搞复杂认证方案 那么就直接通过map(用户名,密码md5值)来制定密码 config.yaml部分内容 hub:config:JupyterHub:shutdown_on_logout: true # 用户logout 自动stop jupyter pod,家目录下所有文件会被保存到pvc 即启动后之前家目录下…...

c++笔试准备

一、 输入输出 1.多组数据【while】 cin #include <iostream> using namespace std;int main() {int a, b;while (cin >> a >> b) { // 当读取到EOF时&#xff0c;循环自动终止cout << a b << endl;}return 0; }getline #include <iostrea…...

【Docker】如何在Linux、Windows、MacOS中安装Docker

Linux安装Docker 在终端中执行一键安装脚本命令安装dockersudo curl -fsSL https://gitee.com/tech-shrimp/docker_installer/releases/download/latest/linux.sh | bash -s docker --mirror Aliyun1.1 配置docker镜像源 在终端执行 一行命令,编辑配置文件sudo tee /etc/docke…...

欧拉回路与哈密尔顿回路: Fleury算法与Hierholzer 算法(C++)

图论中的回路是指一个路径, 它从某个顶点开始, 经过所有边恰好一次, 并回到起始顶点. 定义 欧拉回路: 从一个顶点出发, 经过每条边恰好一次, 并且最终回到起始顶点. 哈密尔顿回路: 从一个顶点出发, 经过每个顶点恰好一次, 并且最终回到起始顶点. 欧拉路径: 从一个顶点出发, …...

JavaSE学习笔记26-集合(Collection)

集合 Java 中的集合&#xff08;Collection&#xff09;是 Java 标准库中非常重要的一部分&#xff0c;用于存储和操作一组对象。Java 集合框架&#xff08;Java Collections Framework&#xff09;提供了一套丰富的接口和类&#xff0c;用于处理各种数据结构&#xff0c;如列…...

本地开发用ASP.NET Core Web API项目创建及测试

1. 服务端代码&#xff08;C#&#xff09; 1.1 创建ASP.NET Core Web API项目 打开Visual Studio 2022。 选择“创建新项目”。 选择“ASP.NET Core Web API”模板&#xff0c;点击“下一步”。 输入项目名称&#xff08;如OracleApi&#xff09;&#xff0c;选择项目位置&…...

Redis——用户签到BitMap,UV统计

目录 BitMap 使用场景 1. 用户签到系统 2. 用户行为标记 3. 布隆过滤器&#xff08;Bloom Filter&#xff09; BitMap介绍 Redis中的使用 Redis功能示例 添加&#xff1a; 获取&#xff1a; 批量获取&#xff1a; java中实现 统计本月连续签到次数 UV统计 UV 统计…...

一文详解U盘启动UEFI/Legacy方式以及GPT/MBR关系

对于装系统的老手而说一直想研究一下装系统的原理&#xff0c;以及面对一些问题时的解决思路&#xff0c;故对以前的方法进行原理上的解释&#xff0c;主要想理解其底层原理。 引导模式 MBR分区可以同时支持UEFI和Legacy引导&#xff0c;我们可以看一下微pe制作的启动盘&#…...

Unity Shader 学习13:屏幕后处理 - 使用高斯模糊的Bloom辉光效果

目录 一、基本的后处理流程 - 以将画面转化为灰度图为例 1. C#调用shader 2. Shader实现效果 二、Bloom辉光效果 1. 主要变量 2. Shader效果 &#xff08;1&#xff09;提取较亮区域 - pass1 &#xff08;2&#xff09;高斯模糊 - pass2&3 &#xff08;3&#xff…...

小迪安全-24天-文件管理,显示上传,黑白名单,访问控制

上节课回顾&#xff0c;token问题 没有更新token值&#xff0c;造成了复用 加上这段代码就好了&#xff0c;就不会复用了 文件管理-文件上传 upload.html文件&#xff0c;找ai生成就行 uoload.php接受文件上传的信息 这里在写个临时文件存储换个地方 因为上面临时文件存在c盘…...

java23种设计模式-建造者模式

建造者模式&#xff08;Builder Pattern&#xff09;学习笔记 1. 模式定义 建造者模式是一种创建型设计模式&#xff0c;通过分步构建复杂对象的方式&#xff0c;将对象的构建过程与表示分离。允许使用相同的构建过程创建不同的对象表示。 2. 适用场景 ✅ 需要创建包含多个…...

JMeter 中实现 100 个用户在 3 秒内并发登录

在 JMeter 中实现 100 个用户在 3 秒内并发登录,需要合理配置线程组、定时器和测试逻辑。以下是具体步骤: 1. 创建测试计划 打开 JMeter。右键点击“Test Plan”,选择 Add > Threads (Users) > Thread Group。 : 设置为 100(模拟 100 个用户)。 : 设置为 3...

SOME/IP-SD -- 协议英文原文讲解2

前言 SOME/IP协议越来越多的用于汽车电子行业中&#xff0c;关于协议详细完全的中文资料却没有&#xff0c;所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块&#xff1a; 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 5.1.2.2 S…...

IntelliJ IDEA中Maven配置全指南

一、环境准备与基础配置 1.1 Windows 环境下载并配置 Maven 见此篇博文&#xff1a;环境配置 1.2 IDEA配置步骤 打开设置面板&#xff1a;File → Settings → Build → Build Tools → Maven 关键配置项&#xff1a; Maven home path E:\apache-maven-3.9.9 &#xff08;…...

第438场周赛:判断操作后字符串中的数字是否相等、提取至多 K 个元素的最大总和、判断操作后字符串中的数字是否相等 Ⅱ、正方形上的点之间的最大距离

Q1、判断操作后字符串中的数字是否相等 1、题目描述 给你一个由数字组成的字符串 s 。重复执行以下操作&#xff0c;直到字符串恰好包含 两个 数字&#xff1a; 从第一个数字开始&#xff0c;对于 s 中的每一对连续数字&#xff0c;计算这两个数字的和 模 10。用计算得到的新…...

20-R 绘图 - 饼图

R 绘图 - 饼图 R 语言提供来大量的库来实现绘图功能。 饼图&#xff0c;或称饼状图&#xff0c;是一个划分为几个扇形的圆形统计图表&#xff0c;用于描述量、频率或百分比之间的相对关系。 R 语言使用 pie() 函数来实现饼图&#xff0c;语法格式如下&#xff1a; pie(x, l…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中&#xff0c;电磁频谱已成为继陆、海、空、天之后的 “第五维战场”&#xff0c;雷达作为电磁频谱领域的关键装备&#xff0c;其干扰与抗干扰能力的较量&#xff0c;直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器&#xff0c;凭借数字射…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...