文章目录

  • 1. Jedis -- Jedis(Java程序操作Redis的工具)
    • 1.1 Jedis简介
    • 1.2 HelloWorld(Jedis版)
      • 1.2.1 准备工作
      • 1.2.2 编写Java程序
      • 1.2.3 说明
    • 1.3 Jedis读写redis数据,Jedis简易工具类的开发
      • 1.3.1 测试用例
      • 1.3.2 具体案例
    • 1.4 Redis可视化客户端(Redis Desktop Manager)

1. Jedis – Jedis(Java程序操作Redis的工具)

需要掌握的东西


1.1 Jedis简介


1.2 HelloWorld(Jedis版)

1.2.1 准备工作

导入相关依赖:

jar包导入:下载地址

基于maven:

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

启动redis服务:


1.2.2 编写Java程序

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.tian</groupId><artifactId>jedis</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version></dependency></dependencies></project>

JedisTest.java

import redis.clients.jedis.Jedis;/*** ClassName: JedisTest* Description: 利用Jedis操作Redis数据库** @author Tianjiao* @date 2022/1/25 15:50*/
public class JedisTest {public static void main(String[] args) {// 1. 连接Redis 127.0.0.1是本机的地址 6379是redis默认的端口号Jedis jedis = new Jedis("127.0.0.1", 6379);// 2. 操作Redisjedis.set("myStr", "HelloWorld");System.out.println(jedis.get("myStr"));// 3. 关闭连接jedis.close();}
}

运行结果:


1.2.3 说明

jedis里面的方法名和redis的指令是一致的,只要你熟悉Redis的常用指令,那么你在操作Jedis的时候一定是得心应手的。在Jedis取出来的数据都会展示称为Java程序相对应的格式来进行展示。

补充:

Jedis API文档


1.3 Jedis读写redis数据,Jedis简易工具类的开发

说明:为了方便测试,我在pom.xml文件新加了一个单元测试的依赖

        <!--        这里我新加了一个单元测试的依赖--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency>

1.3.1 测试用例

测试程序:

import org.junit.Test;
import redis.clients.jedis.Jedis;import java.util.List;
import java.util.Map;public class JedisTest {/*** 测试List类型数据*/@Testpublic void testList() {//1.连接redisJedis jedis = new Jedis("127.0.0.1", 6379);//2.操作redisjedis.lpush("list1", "a", "b", "c");jedis.rpush("list1", "x");List<String> list1 = jedis.lrange("list1", 0, -1);for (String s : list1) {System.out.println(s);}System.out.println(jedis.llen("list1"));System.out.println();//3.关闭连接jedis.close();}/*** 测试Hash类型数据*/@Testpublic void testHash() {//1.连接redisJedis jedis = new Jedis("127.0.0.1", 6379);//2.操作redisjedis.hset("hash1", "a1", "b1");jedis.hset("hash1", "a2", "a2");jedis.hset("hash1", "a3", "b3");Map<String, String> hash1 = jedis.hgetAll("hash1");System.out.println(hash1);System.out.println(jedis.hlen("hash1"));System.out.println(); //3.关闭连接 jedis.close();}
}

运行结果:


1.3.2 具体案例

案例说明

实现思路

  1. 设定一个服务方法,用于模拟实际业务调用的服务,内部采用打印模拟调用。
  2. 在业务调用前服务调用控制单元,内部使用redis进行控制,参照之前的方案。
  3. 对调用超限使用异常进行控制,异常处理设定为打印提示信息。
  4. 主程序启动3个线程,分别表示3种不同用户的调用。

具体实现


redis.properties

这是redis的配置文件,可以减少系统的耦合度。

# redis主机地址
redis.host=127.0.0.1
# redis端口号
redis.port=6379
# 高级用户的下载上限
redis.maxTotal=30
# 初级用户的下载上限
redis.maxIdle=10

Jedis简易工具类的开发


JedisUtils.java

package util;import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;import java.util.ResourceBundle;public class JedisUtils {private static final JedisPool jp;private static final String host;private static final int port;private static final int maxTotal;private static final int maxIdle;// 静态代码块初始化资源static {//读取配置文件 获得参数值ResourceBundle rb = ResourceBundle.getBundle("redis");host = rb.getString("redis.host");port = Integer.parseInt(rb.getString("redis.port"));maxTotal = Integer.parseInt(rb.getString("redis.maxTotal"));maxIdle = Integer.parseInt(rb.getString("redis.maxIdle"));JedisPoolConfig jpc = new JedisPoolConfig();jpc.setMaxTotal(maxTotal);jpc.setMaxIdle(maxIdle);jp = new JedisPool(jpc, host, port);}/*** 对外访问接口,提供jedis连接对象,连接从连接池获取*/public static Jedis getJedis() {return jp.getResource();}
}

业务类

Service.java

import redis.clients.jedis.Jedis;
import redis.clients.jedis.exceptions.JedisDataException;
import util.JedisUtils;public class Service {private final String id;private final int num;public Service(String id, int num) {this.id = id;this.num = num;}//控制单元public void service() {Jedis jedis = JedisUtils.getJedis();String value = jedis.get("compid:" + id);//判断该值是否存在try {if (value == null) {//不存在,创建该值jedis.setex("compid:" + id, 5, Long.MAX_VALUE - num + "");} else {//存在,自增,调用业务Long val = jedis.incr("compid:" + id);business(id, num - (Long.MAX_VALUE - val));}} catch (JedisDataException e) {System.out.println("使用已经到达次数上限,请升级会员级别");} finally {jedis.close();}}//业务操作public void business(String id, Long val) {System.out.println("用户:" + id + " 业务操作执行第" + val + "次");}
}class MyThread extends Thread {Service sc;public MyThread(String id, int num) {sc = new Service(id, num);}public void run() {while (true) {sc.service();try {Thread.sleep(300L);} catch (InterruptedException e) {e.printStackTrace();}}}
}class Main {public static void main(String[] args) {MyThread mt1 = new MyThread("初级用户", 10);MyThread mt2 = new MyThread("高级用户", 30);mt1.start();mt2.start();}
}

运行结果


1.4 Redis可视化客户端(Redis Desktop Manager)

Redis可视化客户端(Redis Desktop Manager)



Redis 基础 Jedis -- Jedis(Java程序操作Redis的工具)相关推荐

  1. Redis进阶-Jedis以及Spring Boot操作 Redis 5.x Cluster

    文章目录 Pre Jedis操作Redis Cluster 添加依赖 Code Spring Boot 操作Redis Cluster 引入 依赖 application.yml Code Pre R ...

  2. Redis介绍 Java客户端操作Redis

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow Redis介绍 & ...

  3. redis基础转自黑马程序员

    今日内容 1. redis1. 概念2. 下载安装3. 命令操作1. 数据结构4. 持久化操作5. 使用Java客户端操作redis Redis 1. 概念: redis是一款高性能的NOSQL系列的 ...

  4. Redis介绍 Java客户端操作Redis

    Redis介绍 && Java客户端操作Redis 本文内容 redis介绍 redis的 shell 客户端简介 redis的 java 客户端简介 环境配置 redis 2.8.1 ...

  5. 阿里云 java程序 链接redis 报错 : IO Error: Connection reset

    阿里云 java程序 链接redis 报错 : IO Error: Connection reset 报错内容 2018-03-07 17:33:41.224 ERROR [main][Worker. ...

  6. java制作oracle程序,Java程序操作Oracle两种方式之简单实现

    Java程序操作Oracle两种方式之简单实现 1.通过JDBC-ODBC桥连接Oracle数据库 (1)创建odbc源,在控制面板->管理工具->数据源(odbc)中添加DSN,比如取名 ...

  7. java jedis_Java操作Redis之Jedis用法详解

    Redis(Remote Dictionary Server,远程数据字典服务器)是一个开源的高性能内存数据库,常用作缓存缓存服务器使用,也已做消息队列使用.因其高性能.丰富的数据类型.可扩展等特性受 ...

  8. java day47【redis概念 、下载安装 、 命令操作 、持久化操作 、使用Java客户端操作redis】...

    第一章  Redis 1. 概念: redis是一款高性能的NOSQL系列的非关系型数据库 1.1.什么是NOSQL NoSQL(NoSQL = Not Only SQL),意即"不仅仅是S ...

  9. 【转】Java代码操作Redis的sentinel和Redis的集群Cluster操作

    总共四台机器,crxy99,crxy98分别是主节点和从节点.   crxy97和crxy96是两个监控此主从架构的sentinel节点. 直接看代码: 1 import org.junit.Test ...

最新文章

  1. Tomcat 处理 HTTP 请求源码分析(上)【转】
  2. 项目: 用封装的方法实现飞机大战游戏
  3. CAN协议,系统结构和帧结构
  4. Android---自定义Toast
  5. mysql元数据死锁日志,MySQL 实战笔记 第02期:MySQL 元数据锁
  6. JavaOne 2012:使用HTML5和Java构建移动应用程序
  7. 142.4. Gearman
  8. JS对象 数组排序sort() sort()方法使数组中的元素按照一定的顺序排列。 语法: arrayObject.sort(方法函数)...
  9. 活动目录(Active Directory)域故障解决实例(转载)
  10. GIS案例练习-----------第十天
  11. excel 直接查询企查查数据_EXCEL在多表中查询数据(函数中引用工作表的办法)...
  12. pmp 资料_1年 = 15300订阅 + 超100万次收听 (感恩有您,这些PMP备考资料您值得拥有!)...
  13. mysql repair table_mysql下优化表和修复表命令使用说明(REPAIR TABLE和OPTIMIZE TABLE)
  14. android jpeg图片变圆,Android 将一张图片变为圆形图片
  15. 自建网站对接微信公众号
  16. unity 2D动画控制一些小技巧
  17. win10共享计算机win7,Win7系统和win10系统设置共享打印机的方法
  18. 进入外包公司之后…………
  19. iOS闪退的原因和方案总结
  20. ctP2ISP:使用卷积和数据增强的转换器预测蛋白质-蛋白质相互作用位点

热门文章

  1. 录音怎么转文字,我有三种办法教会你录音转文字
  2. 块元素,行内元素,行内块元素及其元素转换
  3. web前端入门学习 css(6)(定位position)(元素的显示与隐藏display、可见性visibility、溢出overflow)(案例:土豆播放页)
  4. 你不是做不好自媒体,而是没选好媒体平台!
  5. 网址导航网站模板源码,自适应HTML5响应式,帝国CMS分类目录全站静态页面
  6. R语言之时间序列图绘制
  7. Linux 查看密码修改记录
  8. js html字符串转对象,js eval函数使用,js对象和字符串互转.
  9. 【LeetCode08】字符串转换整数
  10. Linux中打包+压缩命令(超详细)