> 文章列表 > redis总结之-jedis

redis总结之-jedis

redis总结之-jedis

redis总结之-jedis

    • 4. Jedis
      • 4.1 Jedis简介
        • 4.1.1 编程语言与redis
        • 4.1.2 准备工作
        • 4.1.3 代码实现
      • 4.2 Jedis简易工具类开发
        • 4.2.1 基于连接池获取连接
        • 4.2.2 封装连接参数
        • 4.2.3 加载配置信息
        • 4.2.4 获取连接
      • 4.3 可视化客户端

总结计划

1. Redis 入 门 (了解) 操作
2. 数据类型 重点 (操作) (理解)
3. 常用指令 (操作)
4. Jedis (重点) (操作)
5. 持 久 化 (重点) (理解)
6. 数据删除与淘汰策略 (理解)
7. 主从复制 (重点) (操作) (理解)
8. 哨 兵 (重点) (操作) (理解)
9. Cluster集群方案 (重点) (操作) (理解)
10. 企业级缓存解决方案 (重点) (理解)
11. 性能指标监控 (了解)

4. Jedis

在学习完redis后,我们现在就要用Java来连接redis了,也就是我们的这一章要学的Jedis了。在这个部分,我们主要讲解以下3个内容:

HelloWorld(Jedis版)

Jedis简易工具类开发

可视化客户端

4.1 Jedis简介

4.1.1 编程语言与redis

redis总结之-jedis

对于我们现在的数据来说,它是在我们的redis中,而最终我们是要做程序。那么程序就要和我们的redis进行连接。干什么事情呢?两件事:程序中有数据的时候,我们要把这些数据全部交给redis管理。同时,redis中的数据还能取出来,回到我们的应用程序中。那在这个过程中,在Java与redis之间打交道的这个东西就叫做Jedis.简单说,Jedis就是提供了Java与redis的连接服务的,里边有各种各样的API接口,你可以去调用它。

除了Jedis外,还有没有其他的这种连接服务呢?其实还有很多,了解一下:

Java语言连接redis服务 Jedis(SpringData、Redis 、 Lettuce)

其它语言:C 、C++ 、C# 、Erlang、Lua 、Objective-C 、Perl 、PHP 、Python 、Ruby 、Scala

4.1.2 准备工作

(1)jar包导入

下载地址:https://mvnrepository.com/artifact/redis.clients/jedis

基于maven

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

(2)客户端连接redis

连接redis

Jedis jedis = new Jedis("localhost", 6379);

操作redis

jedis.set("name", "itheima");  jedis.get("name");

关闭redis连接

jedis.close();

API文档

http://xetorthio.github.io/jedis/

4.1.3 代码实现

创建:com.itheima.JedisTest

public class JedisTest {public static void main(String[] args) {//1.获取连接对象Jedis jedis = new Jedis("192.168.40.130",6379);//2.执行操作jedis.set("age","39");String hello = jedis.get("hello");System.out.println(hello);jedis.lpush("list1","a","b","c","d");List<String> list1 = jedis.lrange("list1", 0, -1);for (String s:list1 ) {System.out.println(s);}jedis.sadd("set1","abc","abc","def","poi","cba");Long len = jedis.scard("set1");System.out.println(len);//3.关闭连接jedis.close();}
}

4.2 Jedis简易工具类开发

前面我们做的程序还是有点儿小问题,就是我们的Jedis对象的管理是我们自己创建的,真实企业开发中是不可能让你去new一个的,那接下来咱们就要做一个工具类,简单来说,就是做一个创建Jedis的这样的一个工具。

4.2.1 基于连接池获取连接

JedisPool:Jedis提供的连接池技术

poolConfig:连接池配置对象

host:redis服务地址

port:redis服务端口号

JedisPool的构造器如下:

public JedisPool(GenericObjectPoolConfig poolConfig, String host, int port) {
this(poolConfig, host, port, 2000, (String)null, 0, (String)null);
}

4.2.2 封装连接参数

创建jedis的配置文件:jedis.properties

jedis.host=192.168.40.130  
jedis.port=6379  
jedis.maxTotal=50  
jedis.maxIdle=10

4.2.3 加载配置信息

创建JedisUtils:com.itheima.util.JedisUtils,使用静态代码块初始化资源

public class JedisUtils {private static int maxTotal;private static int maxIdel;private static String host;private static int port;private static JedisPoolConfig jpc;private static JedisPool jp;static {ResourceBundle bundle = ResourceBundle.getBundle("redis");maxTotal = Integer.parseInt(bundle.getString("redis.maxTotal"));maxIdel = Integer.parseInt(bundle.getString("redis.maxIdel"));host = bundle.getString("redis.host");port = Integer.parseInt(bundle.getString("redis.port"));//Jedis连接池配置jpc = new JedisPoolConfig();jpc.setMaxTotal(maxTotal);jpc.setMaxIdle(maxIdel);jp = new JedisPool(jpc,host,port);}}

4.2.4 获取连接

对外访问接口,提供jedis连接对象,连接从连接池获取,在JedisUtils中添加一个获取jedis的方法:getJedis

public static Jedis getJedis(){Jedis jedis = jedisPool.getResource();return jedis;
}

4.3 可视化客户端

4.3.1 Redis Desktop Manager

redis总结之-jedis