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

大体命令基本一致 

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

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

相关文章

橙心同步助手更新,,支持博客园、头条和语雀

文章同步助手v1.5版本开发完成了&#xff0c;新增了博客园、头条和语雀同步支持。 使用方式和前几个版本一致&#xff0c;都需要先登录上对应平台的账号&#xff0c;再进行同步。 语雀因为可以有不同的知识库&#xff0c;所以同步的时候需要指定对应的知识库&#xff0c;才能…

如何把网络ip改为动态:全面指南

在数字化时代&#xff0c;网络IP地址作为设备在网络中的唯一标识&#xff0c;扮演着至关重要的角色。随着网络环境的不断变化&#xff0c;静态IP地址的局限性逐渐显现&#xff0c;而动态IP地址则因其灵活性和安全性受到越来越多用户的青睐。那么&#xff0c;如何把网络IP改为动…

IDEA集成DeepSeek,通过离线安装解决无法安装Proxy AI插件问题

文章目录 引言一、安装Proxy AI1.1 在线安装Proxy AI1.2 离线安装Proxy AI 二、Proxy AI中配置DeepSeek2.1 配置本地部署的DeepSeek&#xff08;Ollama方式&#xff09;2.2 通过第三方服务商提供的API进行配置 三、效果测试 引言 许多开发者尝试通过安装Proxy AI等插件将AI能力…

八. Spring Boot2 整合连接 Redis(超详细剖析)

八. Spring Boot2 整合连接 Redis(超详细剖析) 文章目录 八. Spring Boot2 整合连接 Redis(超详细剖析)2. 注意事项和细节3. 最后&#xff1a; 在 springboot 中 , 整合 redis 可以通过 RedisTemplate 完成对 redis 的操作, 包括设置数据/获取数据 比如添加和读取数据 具体…

easyExcel使用案例有代码

easyExcel 入门,完成web的excel文件创建和导出 easyExcel官网 EasyExcel 的主要特点如下&#xff1a; 1、高性能&#xff1a;EasyExcel 采用了异步导入导出的方式&#xff0c;并且底层使用 NIO 技术实现&#xff0c;使得其在导入导出大数据量时的性能非常高效。 2、易于使…

【网络安全 | 渗透测试】GraphQL精讲二:发现API漏洞

未经许可,不得转载。 推荐阅读:【网络安全 | 渗透测试】GraphQL精讲一:基础知识 文章目录 GraphQL API 漏洞寻找 GraphQL 端点通用查询常见的端点名称请求方法初步测试利用未清理的参数发现模式信息使用 introspection探测 introspection运行完整的 introspection 查询可视化…

ubuntu Linux 正确设置中文环境的方法

在安装ubuntu Linux中文环境时&#xff0c;有不少资料提到要修改一些配置文件&#xff0c;其实完全没必要&#xff0c;以下是正确安装中文环境的方法。 在新安装的ubuntu Linux的基础上&#xff0c;如下&#xff1a; 1. 安装中文语言包 # 更新软件源 sudo apt update# 安装中…

新建菜单项的创建之CmpGetValueListFromCache函数分析

第一部分&#xff1a; PCELL_DATA CmpGetValueListFromCache( IN PHHIVE Hive, IN PCACHED_CHILD_LIST ChildList, OUT BOOLEAN *IndexCached, OUT PHCELL_INDEX ValueListToRelease ) 0: kd> dv KeyControlBlock 0xe1…

物联网坡体斜度监测设备 顶级功能,还想集成CPS 红外 土质监测

坡体斜度监测设备是用于实时监测山坡、堤坝、矿山等坡体结构稳定性的关键工具。顶级功能的坡体斜度监测设备不仅需要高精度和可靠性&#xff0c;还应具备智能化、远程监控和数据分析能力。以下是坡体斜度监测设备的顶级功能设计和实现方案&#xff1a; 一、系统架构 坡体斜度监…

神经网络 - 激活函数(ReLU 函数)

一、ReLU函数&#xff1a; ReLU(Rectified Linear Unit&#xff0c;修正线性单元)&#xff0c;也叫 Rectifier 函数 &#xff0c;是目前深度神经网络中经常使用的激活函数&#xff0c;ReLU 实际上是一个斜坡(ramp)函数&#xff0c;其定义为&#xff1a; 也即&#xff1a; Re…

Spring Boot环境配置

一、Java开发环境 确保你的计算机已经安装了Java Development Kit&#xff08;JDK&#xff09;。建议使用JDK 17&#xff0c;可以从Oracle官方网站上下载并安装。 1.下载及配置环境变量 &#xff08;1&#xff09;下载JDK&#xff1a;官网下载 &#xff08;2&#xff09;运…

PyCharm 的使用 + PyCharm快捷键 + 切换中文界面

2025 - 02 - 27 - 第 62 篇 Author: 郑龙浩 / 仟濹 【PyCharm的使用】 文章目录 如何使用Pycharm1 新建工程&#xff0c;新建 .py 文件&#xff0c;运行2 常用快捷键3 其他快捷键 - DeepSeek 总结如下**代码编辑****导航与定位****查找与替换****运行与调试****代码重构****其…

conda env remove与conda remove

在 Conda 中&#xff0c;删除环境的两种常用命令是 conda env remove --name ryu 和 conda remove -n ryu --all。它们的核心功能相同&#xff08;删除指定名称的 Conda 环境&#xff09;&#xff0c;但存在细微差异。以下是详细解释&#xff1a; 1. 命令对比 命令说明conda e…

6.6.5 SQL访问控制

文章目录 GRANT授予权限REVOKE回收权限 GRANT授予权限 GRANT语句可以给用户授予权限&#xff0c;基本格式是GRANT 权限 TO 用户。在授权时&#xff0c;WITH GRANT OPTION是可选项&#xff0c;有此句话&#xff0c;被授予权限的用户还能把权限赋给其他用户。 REVOKE回收权限 RE…

[免费]SpringBoot公益众筹爱心捐赠系统【论文+源码+SQL脚本】

大家好&#xff0c;我是老师&#xff0c;看到一个不错的SpringBoot公益众筹爱心捐赠系统&#xff0c;分享下哈。 项目介绍 公益捐助平台的发展背景可以追溯到几十年前&#xff0c;当时人们已经开始通过各种渠道进行公益捐助。随着互联网的普及&#xff0c;本文旨在探讨公益事业…

玩转python: 几个案例-掌握贪心算法

什么是贪心算法 贪心算法是一种在每一步选择中都采取在当前状态下最好或最优&#xff08;即最有利&#xff09;的选择&#xff0c;从而希望导致结果是全局最好或最优的算法策略。它不从整体最优上加以考虑&#xff0c;只做出在某种意义上的局部最优解。下面我们将通过几个案例…

[Windows] 免费电脑控制手机软件 极限投屏_正式版_3.0.1 (QtScrcpy作者开发)

[Windows] 极限投屏_正式版 链接&#xff1a;https://pan.xunlei.com/s/VOKJf8Z1u5z-cHcTsRpSd89tA1?pwdu5ub# 新增功能(Future)&#xff1a; 支持安卓14(Supports Android 14)提高投屏成功率(Improve the success rate of mirror)加快投屏速度(Accelerate screen mirrorin…

J-LangChain,用Java实现LangChain编排!轻松加载PDF、切分文档、向量化存储,再到智能问答

Java如何玩转大模型编排、RAG、Agent&#xff1f;&#xff1f;&#xff1f; 在自然语言处理&#xff08;NLP&#xff09;的浪潮中&#xff0c;LangChain作为一种强大的模型编排框架&#xff0c;已经在Python社区中广受欢迎。然而&#xff0c;对于Java开发者来说&#xff0c;能…

深度解析Ant Design Pro 6开发实践

深度解析Ant Design Pro 6全栈开发实践&#xff1a;从架构设计到企业级应用落地 一、Ant Design Pro 6核心特性与生态定位&#xff08;技术架构分析&#xff09; 作为Ant Design生态体系的旗舰级企业应用中台框架&#xff0c;Ant Design Pro 6基于以下技术栈实现突破性升级&am…

vite+react+ts如何集成redux状态管理工具,实现持久化缓存

1.安装插件 这里的redux-persist--进行数据的持久化缓存&#xff0c;确保页面刷新数据不会丢失 yarn add react-redux^9.2.0 redux-persist^6.0.0 reduxjs/toolkit^2.5.1 2.创建仓库文件夹 在项目的src文件夹下创建名为store的文件夹&#xff0c;里面的具体文件如下 featur…