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

server/2025/3/1 0:13:48/

Java环境下:

1.创建maven 项目

2.导入依赖

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

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

3.配置端口转发

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

在xshell中配置:

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

此时连接成功

一.基本命令:

java">    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 :

java">    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使用:

java">    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的使用:

java">    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的使用:

java">    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的使用:

java">    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的方法分成几个类别,好进一步更好的组织

大体命令基本一致 


http://www.ppmy.cn/server/171421.html

相关文章

Buildroot 添加自定义模块-内置文件到文件系统

目录 概述实现步骤1. 创建包目录和文件结构2. 配置 Config.in3. 定义 cp_bin_files.mk4. 添加源文件install.shmy.conf 5. 配置与编译 概述 Buildroot 是一个高度可定制和模块化的嵌入式 Linux 构建系统&#xff0c;适用于从简单到复杂的各种嵌入式项目. buildroot的源码中bui…

五、AIGC大模型_04LLaMA-Factory基础知识与SFT实战

1、LLaMA-Factory 基本介绍 1.1 定义 LLaMA-Factory 是一个开源的大型语言模型&#xff08;LLM&#xff09;微调框架&#xff0c;旨在帮助开发者和研究人员轻松地对预训练语言模型进行定制化训练和优化 1.2 功能特点 支持多种预训练模型 LLaMA Factory 支持超过 100 种主流的…

2025年信息科学与工程学院科协机器学习介绍——机器学习基本模型介绍

机器学习 目录 机器学习一.安装基本环境conda/miniconda环境 二.数据操作数据预处理一维数组二维数组以及多维数组的认识访问元素的方法torch中tenson的应用张量的运算张量的广播 三.线性代数相关知识四.线性回归SoftMax回归问题&#xff08;分类问题&#xff09;什么是分类问题…

面试问题——如何解决移动端1px 边框问题?

面试问题——如何解决移动端1px 边框问题&#xff1f; 最近&#xff0c;不少小伙伴向我反映&#xff0c;他们在面试中频繁被问到关于1px边框的问题。这个看似老生常谈的话题&#xff0c;没想到在面试中的出现率依然这么高&#xff0c;着实让我有些意外。对于那些对这个问题感到…

Kubernetes (K8S) 核心原理深度剖析:从架构设计到运行机制

Kubernetes(K8S)作为容器编排领域的“操作系统”,其设计和实现原理是开发者进阶的必修课。本文将从架构设计、核心组件协作、关键机制实现三个维度,结合源码逻辑与实战场景,分享 K8S 的底层运行原理。 一、Kubernetes 架构设计 1. 声明式 API 与控制器模式 K8S 的核心设…

DaoCloud 亮相 2025 GDC丨开源赋能 AI 更多可能

2025 年 2 月 21 日至 23 日&#xff0c;上海徐汇西岸&#xff0c;2025 全球开发者先锋大会以 “模塑全球&#xff0c;无限可能” 的主题&#xff0c;围绕云计算、机器人、元宇宙等多元领域&#xff0c;探讨前沿技术创新、应用场景拓展和产业生态赋能&#xff0c;各类专业论坛、…

python-leetcode-最长公共子序列

1143. 最长公共子序列 - 力扣&#xff08;LeetCode&#xff09; class Solution:def longestCommonSubsequence(self, text1: str, text2: str) -> int:m, n len(text1), len(text2)dp [[0] * (n 1) for _ in range(m 1)]for i in range(1, m 1):for j in range(1, n …

低空经济火热,校企合作无人机低空产业技术详解

低空经济是以低空空域为依托&#xff0c;以通用航空飞行活动为核心&#xff0c;涵盖通用航空器研发制造、市场运营、综合保障以及延伸服务等全产业链的经济形态。近年来&#xff0c;随着无人机技术的快速发展和广泛应用&#xff0c;低空经济已成为备受瞩目的新兴领域。以下是对…