7 Redis缓存
7.1 Jedis客户端
7.1.1 Jedis简介
Jedis是一个基于java的Redis客户端连接工具,旨在提升性能与易用性。
7.1.2 创建工程
首先创建一个普通的Maven工程01-jedis,然后在POM文件中添加Jedis与Junit依赖。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<!--jedis依赖-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
7.1.3 使用Jedis实例
Jedis基本使用十分简单,其提供了非常丰富的操作Redis的方法,而这些方法名几乎与Redis命令相同。在每次使用时直接创建Jedis实例即可。在Jedis实例创建好之后,Jedis底层实际会创建一个到指定Redis服务器的Socket连接。所以,为了节省系统资源与网络带宽,在每次使用完Jedis实例之后,需要立即调用close()方法将连接关闭。
首先,需要在工程的src/test/java下创建测试类JedisTest。
7.1.3.1 value为String的测试
7.1.3.2 value为Hash的测试
7.1.3.3 value为List的测试
7.1.3.4 value为Set的测试
7.1.3.5 value为ZSet的测试
7.1.4 使用JedisPool
如果应用非常频繁地创建和销毁Jedis实例,虽然节省了系统资源与网络带宽,但会大大降低系统性能。因为创建和销毁Socket连接是比较耗时的。此时可以使用Jedis连接池来解决该问题。
使用JedisPool与使用Jedis实例的区别是,JedisPool是全局性的,整个类只需创建一次即可,然后每次需要操作Redis时,只需从JedisPool中拿出一个Jedis实例直接使用即可。使用完毕后,无需释放Jedis实例,只需返回JedisPool即可。
7.1.5 使用JedisPooled
对于每次对Redis的操作都需要使用try-with-resource块是比较麻烦的,而使用JedisPooled则无需再使用该结构来自动释放资源了。
7.1.6 连接Sentinel高可用集群
对于Sentinel高可用集群的连接,直接使用JedisSentinelPool即可。在该客户端只需注册所有Sentinel节点及其监控的Master的名称即可,无需出现master-slave的任何地址信息。其采用的也是JedisPool,使用完毕的Jedis也需要通过close()方法将其返回给连接池。
文章来源:https://www.toymoban.com/news/detail-470171.html
7.1.7 连接分布式系统
对于Redis的分布式系统的连接,直接使用JedisCluster即可。其底层采用的也是Jedis连接池技术。每次使用完毕后,无需显式关闭,其会自动关闭。
对于JedisCluster常用的构造器有两个。一个是只需一个集群节点的构造器,这个节点可以是集群中的任意节点,只要连接上了该节点,就连接上了整个集群。但该构造器存在一个风险:其指定的这个节点在连接之前恰好宕机,那么该客户端将无法连接上集群。所以,推荐使用第二个构造器,即将集群中所有节点全部罗列出来。这样就会避免这种风险了。
文章来源地址https://www.toymoban.com/news/detail-470171.html
到了这里,关于动力节点最新Redis7笔记-第七章Redis缓存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!