总结计划
1. Redis 入 门 | (了解) | (操作) | |
---|---|---|---|
2. 数据类型 | (重点) | (操作) | (理解) |
3. 常用指令 | (操作) | ||
4. Jedis | (重点) | (操作) | |
5. 持 久 化 | (重点) | (理解) | |
6. 数据删除与淘汰策略 | (理解) | ||
7. 主从复制 | (重点) | (操作) | (理解) |
8. 哨 兵 | (重点) | (操作) | (理解) |
9. Cluster集群方案 | (重点) | (操作) | (理解) |
10. 企业级缓存解决方案 | (重点) | (理解) | |
11. 性能指标监控 | (了解) |
在学习完redis后,我们现在就要用Java来连接redis了,也就是我们的这一章要学的Jedis了。在这个部分,我们主要讲解以下3个内容:
HelloWorld(Jedis版)
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
(1)jar包导入
下载地址:https://mvnrepository.com/artifact/redis.clients/jedis
基于maven
<dependency>
<groupId>redis.clientsgroupId>
<artifactId>jedisartifactId>
<version>2.9.0version>
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/
创建: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();
}
}
前面我们做的程序还是有点儿小问题,就是我们的Jedis对象的管理是我们自己创建的,真实企业开发中是不可能让你去new一个的,那接下来咱们就要做一个工具类,简单来说,就是做一个创建Jedis的这样的一个工具。
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);
}
创建jedis的配置文件:jedis.properties
jedis.host=192.168.40.130
jedis.port=6379
jedis.maxTotal=50
jedis.maxIdle=10
创建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);
}
}
对外访问接口,提供jedis连接对象,连接从连接池获取,在JedisUtils中添加一个获取jedis的方法:getJedis
public static Jedis getJedis(){
Jedis jedis = jedisPool.getResource();
return jedis;
}
4.3.1 Redis Desktop Manager