Jedis的了解和使用、Jedis使用Redis事务
我们要使用java来操作redis
什么是Jedis?
什么是Jedis 是Redis官方推荐的java连接开发工具!使用Java操作Redis 中间件!(就是一个jar包)如果你要使用java操作redis,那么一定要对Jedis十分的熟悉!
测试
1、导入对应的依赖
<!-- 导入jedis的包 --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.2.2</version></dependency><!-- fastjson--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.50</version></dependency>
2、编码测试
- 连接redis数据库
- 操作命令
- 断开连接!
public class TestPing {public static void main(String[] args) {//1、new Jedis对象即可Jedis jedis = new Jedis("127.0.0.1",6379);//Jedis所有的命令就是我们之前学习的指令!System.out.println(jedis.ping());;}
}
输出:说明连接成功
PONG
jedis所有方法和redis里的所有命令一模一样,没有任何改变,在redis上能操作的,使用jedis同样可以操作
String
执行结果:
string的其他方法:
list
执行结果:
set
执行结果:
hash
执行结果:
zset
也是一样,在linux上执行的命令就是jedis的方法
所有的api命令,就是我们学习的指令,一一对应,一个都没有变化!
事务
1、在java中使用redis的事务:
package com.uno;import com.alibaba.fastjson.JSONObject;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;public class TestTx {public static void main(String[] args) {Jedis jedis = new Jedis("127.0.0.1", 6379);JSONObject jsonObject = new JSONObject();jsonObject.put("hello","world");jsonObject.put("name", "UNO");String result = jsonObject.toJSONString();//1、开启事务Transaction multi = jedis.multi();//jedis.watch(result); //加乐观锁,监视try {//2、命令入队multi.set("user1", result);multi.set("user2",result);//3、执行,这三个步骤也都是和linux中操作redis命令一模一样multi.exec();} catch (Exception e) {//当出现错误,放弃事务multi.discard();throw new RuntimeException(e);} finally {System.out.println(jedis.get("user1"));System.out.println(jedis.get("user2"));//关闭连接jedis.close();}}
}
执行结果:成功
{"name":"UNO","hello":"world"}
{"name":"UNO","hello":"world"}
2、如果出现错误:
package com.uno;import com.alibaba.fastjson.JSONObject;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;public class TestTx {public static void main(String[] args) {Jedis jedis = new Jedis("127.0.0.1", 6379);jedis.flushDB(); //先清理一下数据库,免得被上面的代码在redis设置的值影响JSONObject jsonObject = new JSONObject();jsonObject.put("hello","world");jsonObject.put("name", "UNO");String result = jsonObject.toJSONString();//1、开启事务Transaction multi = jedis.multi();
// jedis.watch(result); //加乐观锁,监视try {//2、命令入队multi.set("user1", result);multi.set("user2",result);int i = 1/0; //手动设置一个运行时异常,看是不是会出现运行时异常,然后被catch捕获//3、执行,这三个步骤也都是和linux中操作redis命令一模一样multi.exec();} catch (Exception e) {//放弃事务multi.discard();throw new RuntimeException(e);} finally {System.out.println(jedis.get("user1"));System.out.println(jedis.get("user2"));//关闭连接jedis.close();}}
}
执行结果:出现运行时异常,被catch捕获,在catch中放弃事务,就是都不执行
null
null
Exception in thread "main" java.lang.RuntimeException: java.lang.ArithmeticException: / by zeroat com.uno.TestTx.main(TestTx.java:28)
Caused by: java.lang.ArithmeticException: / by zeroat com.uno.TestTx.main(TestTx.java:22)
注意事项:jedis连不上远程服务器
注意jedis连接不上远程服务器:
用Jedis连接阿里云等服务器上的redis
一. 配置redis.conf1.设置访问redis的密码:requirepass 要设置密码2.注释bind 127.0.0.1(重启redis-server服务,进入redis后要先验证密码,用这个命令:auth 密码 ,然后ping一下看有没有配置成功)
二 . idea访问时添加auth密码Jedis jedis = new Jedis("服务器的外网ip",6379);jedis.auth("redis的密码");System.out.println(jedis.ping());
(输出PONG的话就成功了)
题外话:为什么事务transaction简称为TX
transaction的读法是/træn’zækʃən/
x的读法是/ɛks/
所以tx分别代表:t - tran; x-saction
Jedis的了解和使用、Jedis使用Redis事务相关推荐
- jedis操作set_Java中使用Jedis操作Redis的示例代码
使用java操作Redis需要jedis-2.1.0.jar,下载地址:jedis-2.1.0.jar 如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar,下载地址:c ...
- java jedis使用_Java中使用Jedis操作Redis
Java中使用Jedis操作Redis 使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0 ...
- Redis基本使用|基本命令|redis事务|Jedis|持久化|订阅|集群|
文章目录 Redis ! 一.概述 二.安装 三.实操 1.性能测试 2.基础知识 3.基本key命令 4.基本数据类型 1.String 2.List 3.Set 4.Hash 5.Zset 5.特 ...
- Jedis+JedisPool+JedisPoolConfig:完美“掌控“Redis
目录 一.背景介绍 二.Redis相关 2.1 Redis基本概念 2.2 Redis下载安装 2.3 启动Redis服务(Windows本地) 2.4 启动Redis客户端(Windows本地) 2 ...
- jedis set集合 java,使用Jedis操作String、List、Set、Map等常见数据 | zifangsky的个人博客...
Jedis属于Java连接Redis的一种客户端.其操作方式跟原生的redis客户端命令类似.关于redis操作的基本命令可以参考这个文档:http://www.runoob.com/redis/re ...
- jedis使用_Redis --Java客户端 Jedis
Redis --Java客户端 Jedis 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 简介 Jedis: 一款java操作 ...
- 图解Redis事务机制
来自:Java中文社群 作为关系型数据库中一项非常重要的基础功能--事务,在 Redis 中是如何处理并使用的? 1.前言 事务指的是提供一种将多个命令打包,一次性按顺序地执行的机制,并且保证服务器只 ...
- Redis:事务、管道、Lua脚本
1. Redis事务定义 Redis中的事务(transaction)是一组命令的集合.事务同命令一样都是Redis的最小执行单位,一个事务中的命令要么都执行,要么都不执行. 事务的原理是先将属于一个 ...
- redis事务原理,使用,详解
声明:本博客内容来自<Redis深度历险>一书 为了确保连续多个操作的原子性,一个成熟的数据库通常都会有事务支持,Redis 也不例外.Redis 的事务使用非常简单,不同于 ...
最新文章
- 零基础参加java培训哪家机构好
- 张芯译老师 实战销售管理专家
- 专题 12 IPC之消息队列
- HTML5地区自转代码
- 对11位手机号进行3-4-4格式化
- 热传递物理模型matlab,简单传热学计算机分析MatlabPDE二维不稳态焊接热传导求解.PPT...
- 苹果鼓励美国员工赴中国出差 一天500美元奖金
- IOS 学习笔记(3) 视图UITabbarController
- css12个技巧,12个CSS高级技巧汇总
- 常用的3dsmax插件(批处理模型的插件)
- Java数组的三种打印方式
- 密西根州立大学计算机qs分数,密歇根州立大学2021年QS世界大学排名第157
- 神器 | 百度云资源搜索
- Windows 去除桌面烦人的小箭头
- uni-app获取设备序列号SERIAL
- 史上最全数据集网站汇总
- ubuntu源换成清华源_Ubuntu替换国内源(清华源)
- 阿里云账号如何个人实名?
- vuetify图标大全
- 有用AI应用网站【​All Things AI: https://allthingsai.com/​】