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

Redis黑马 day01

本机服务端启动使用 redis-server.exe
客户端 redis-cli.exe
图形化界面 Another Redis Desktop

Jedis 

Jedis 简介

Jedis 是一个高性能的 Java Redis 客户端,用于连接和操作 Redis 数据库。它提供了简单易用的 API,可以方便地在 Java 应用程序中集成 Redis。

主要特性

  1. 简单易用

    • 提供了丰富的 API,支持 Redis 的各种命令。

    • 示例:

      Jedis jedis = new Jedis("localhost", 6379);
      jedis.set("key", "value");
      String value = jedis.get("key");
      System.out.println("Value: " + value);
      jedis.close();
  2. 连接池支持

    • 提供了 JedisPool 类,用于管理 Redis 连接池,提高性能和资源利用率。

    • 示例

      JedisPool jedisPool = new JedisPool("localhost", 6379);
      try (Jedis jedis = jedisPool.getResource()) {jedis.set("key", "value");String value = jedis.get("key");System.out.println("Value: " + value);
      }
      jedisPool.close();
  3. 事务支持

    • 支持 Redis 的事务功能,可以通过 multiexec 命令来执行事务。

    • 示例

      Jedis jedis = new Jedis("localhost", 6379);
      Transaction transaction = jedis.multi();
      transaction.set("key1", "value1");
      transaction.set("key2", "value2");
      transaction.exec();
      jedis.close();
  4. 管道支持

    • 支持 Redis 的管道功能,可以通过 pipeline 命令来发送多个命令,减少网络延迟。

    • 示例

      Jedis jedis = new Jedis("localhost", 6379);
      Pipeline pipeline = jedis.pipelined();
      pipeline.set("key1", "value1");
      pipeline.set("key2", "value2");
      pipeline.sync();
      jedis.close();
  5. 集群支持

    • 提供了对 Redis 集群的支持,可以通过 JedisCluster 类连接到 Redis 集群。

    • 示例

      Set<HostAndPort> nodes = new HashSet<>();
      nodes.add(new HostAndPort("localhost", 7001));
      nodes.add(new HostAndPort("localhost", 7002));
      JedisCluster jedisCluster = new JedisCluster(nodes);
      jedisCluster.set("key", "value");
      String value = jedisCluster.get("key");
      System.out.println("Value: " + value);
      jedisCluster.close();

依赖添加

在你的 Maven pom.xml 文件中添加 Jedis 的依赖:

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

入门测试

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import redis.clients.jedis.Jedis;import java.util.Map;public class JedisTest {private Jedis jedis;@BeforeEachvoid setJedis(){//1.建立连接jedis = new Jedis("127.0.0.1",6379);//3.选择库jedis.select(0);}@Testvoid testString(){//存入String result  = jedis.set("name", "van");System.out.println("result = " + result);//获取数据String name = jedis.get("name");System.out.println("name = " + name);}@AfterEachvoid tearDown(){if(jedis != null){jedis.close();}}@Testvoid testHash(){//存jedis.hset("user:1","name","jack");jedis.hset("user:1","age","12");//取Map<String,String> map = jedis.hgetAll("user:1");System.out.println(map);}
}

Jedis线程池

package cmo.heima.jedis.util;import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;public class JedisConnectionFactory {private static JedisPool jedisPool;static {//配置连接池JedisPoolConfig poolConfig = new JedisPoolConfig();poolConfig.setMaxTotal(8);poolConfig.setMaxIdle(8);poolConfig.setMinIdle(0);poolConfig.setMaxWaitMillis(1000);jedisPool = new JedisPool(poolConfig,"127.0.0.1", 6379,1000);}// 添加获取Jedis实例的方法public static Jedis getJedis() {return jedisPool.getResource();}
}
//1.建立连接
//        jedis = new Jedis("127.0.0.1",6379);jedis = JedisConnectionFactory.getJedis();

edis 连接池 是一个用于管理 Redis 连接的工具,它可以帮助你高效地复用连接,提高性能并减少资源消耗。在实际应用中,频繁地创建和关闭连接是非常耗时的,而连接池可以预先创建一定数量的连接,并在需要时提供给应用程序使用,使用完毕后再归还到连接池中,而不是直接关闭。

主要特性

  1. 连接复用

    • 连接池预先创建了一定数量的连接,这些连接可以被多个线程复用,减少了创建和关闭连接的开销。

  2. 性能优化

    • 通过复用连接,减少了每次请求时创建和销毁连接的时间,从而提高了应用程序的性能。

  3. 资源管理

    • 连接池可以限制最大连接数,防止应用程序过度消耗 Redis 服务器的资源。

  4. 线程安全

    • 连接池是线程安全的,多个线程可以同时从连接池中获取连接并使用。

  5. 灵活配置

    • 你可以通过配置文件或代码来设置连接池的各种参数,如最大连接数、最小空闲连接数、最大等待时间等。

配置参数

  • maxTotal:最大连接数。连接池中可以同时存在的最大连接数。

  • maxIdle:最大空闲连接数。连接池中可以保持的最大空闲连接数。

  • minIdle:最小空闲连接数。连接池中可以保持的最小空闲连接数。

  • testOnBorrow:在从连接池中获取连接时,是否进行有效性检查。

  • testOnReturn:在将连接归还到连接池时,是否进行有效性检查。

  • testWhileIdle:是否定期检查空闲连接的有效性。

  • timeBetweenEvictionRunsMillis:空闲连接检查的间隔时间。

  • numTestsPerEvictionRun:每次检查空闲连接时,检查的连接数。

  • minEvictableIdleTimeMillis:连接在池中最小生存时间。

使用场景

  1. 高并发应用

    • 在高并发的 Web 应用中,使用连接池可以显著提高性能,减少响应时间。

  2. 分布式系统

    • 在分布式系统中,多个节点可能需要同时访问 Redis 服务器,连接池可以有效地管理这些连接。

  3. 微服务架构

    • 在微服务架构中,每个服务可能需要频繁地与 Redis 交互,连接池可以提高资源利用率。

http://www.dtcms.com/a/516834.html

相关文章:

  • 如何实现两台虚拟机之间的时间同步
  • 数据库接口之防止sql注入
  • Linux下搭建Activemq的Master-Slave(共享文件模式)
  • 做网站一定需要自己买主机吗wordpress 三款站群插件之比较
  • 数据结构——拓扑排序
  • 常用网站png手机商城官方网站
  • 网站开发的经验技巧网站建设实训该写哪些内容
  • 响应式网站开发 三合一建站做网站推广一般多少钱
  • P1041题解
  • 大语言模型本地部署之转录文本总结
  • 北京建设信源官方网站wordpress如何修改logo
  • 网站在那里备案做网站的属于什么行业
  • Matalb处理arxml 连线问题存储问题。
  • iOS 26 App 查看电池寿命技巧,多工具组合实践指南
  • 孝感 网站建设公众号运营总结
  • 国内高校网站建设的调查wordpress设置略缩图外链图片
  • ITSM 目前成熟度如何?为什么中小型企业总卡在半途,以及R²AIN SUITE如何让企业突围
  • 响应式购物网站设计青岛手机网站建设报价
  • AI驱动的测试:Cypress的cy.prompt功能实践
  • SpringMVC—概述 入门程序 入门程序的工作流程 bean加载控制 Apifox工具的下载
  • 网站返回404北京网站模板
  • Profinet转TCP/IP协议中枢:构建PLC与打标卡无缝通讯的底层架构
  • Clang编译器详解:搞懂Clang编译器的前世今生和实际应用(交叉编译和静态分析)
  • 这个百度的网站怎么做的广西南宁市有公司网站设计
  • 查网站跳出率自己做手机网站
  • 钉钉云打印钉钉智能云打印
  • 网站建设招聘要求云服务器建网站
  • 17zwd一起做网站官网用html做的美食网站
  • 针对汽车远程无钥匙进入系统的新型重放同步攻击的缓解策略
  • 北京住房与城乡建设厅网站首页html网页代码完整代码四个跳