在 Java 中,可以建议的使用 Redis , 或者通过Spirng的 RedisTemplate 使用 Redis。
Jedis项目地址:https://github.com/redis/jedis
Jedis 仓库地址 :https://mvnrepository.com/artifact/redis.clients/jedis
Jedis API文档:http://redis.github.io/jedis/
在 Java 程序中使用 Redis
在 Java 中使用 Redis 工具,要先下载 jedis.jar 包,把它加载到工程的路径中,所有先打开 maven仓库官网: https://mvnrepository.com/。
或直接访问 jedis 仓库地址 :https://mvnrepository.com/artifact/redis.clients/jedis
1、浏览器打开百度首页,所有 maven仓库 , 找到 maven仓库主网站。
2、maven仓库官网搜索 jedis 关键字 , 找到相关的内容。
(注意搜索关键字结果列表:jedis是java连接redis服务器的客户端工具,结果是含有 redis.clients 字眼的才是对的)
3、下载安装 jedis 工具(jar包)
从上图可以看到,页面中有很多版本供我们选择,这里选择最新版(3.5.1)。
点击版本号(3.5.1)即可进入下载页面:
如果项目中是使用 maven进行构建的,默认打开就是 maven坐标,直接拷贝到你项目中 pom.xml 中即可。
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.5.1</version>
</dependency>
后面还有其他的 安装方式,例如: Gradle工具 构建。
// https://mvnrepository.com/artifact/redis.clients/jedis
compile group: 'redis.clients', name: 'jedis', version: '3.5.1'
如果使用最原始的方式下载jar , 直接找到表格中 Files项中,点击 jar 连接即可直接下载 jar 文件。
https://repo1.maven.org/maven2/redis/clients/jedis/3.5.1/jedis-3.5.1.jar
4、学习 jedis
在 Jedis 下载页面,表格项中找到 HomePage , 可以更加详细的了解 Jedis。
https://github.com/redis/jedis
5、使用 jedis
使用 eclipse 开发工具,新建工程 JedisDemo 并导入jedis jar包。
新建测试类 JedisTest.java
编写测试类:实现简单的增删改查功能。
import redis.clients.jedis.Jedis;
public class JedisTest {
public static void main(String[] args) {
Jedis jedis = null;
try {
//连接redis
System.out.println("--------------- 连接redis -------------------");
jedis = new Jedis("localhost", 6379);
jedis.auth("123456");//如果需要密码访问redis服务器,则需要这个设置。
System.out.println("jedis connection: " + jedis);
System.out.println("----------------------------------");
//添加数据
System.out.println("--------------- 添加数据 -------------------");
jedis.set("key0204", "jedis test");
System.out.println("set key : key0204");
System.out.println("----------------------------------");
//查询数据
System.out.println("--------------- 查询数据 -------------------");
String value = jedis.get("key0204");
System.out.println("get key : " + value);
System.out.println("----------------------------------");
//修改数据
System.out.println("--------------- 修改数据 -------------------");
jedis.set("key0204", "jedis test has reset");
System.out.println("reset key : key0204");
String newValue = jedis.get("key0204");
System.out.println("get key : value = " + newValue);
System.out.println("----------------------------------");
//删除数据
System.out.println("--------------- 删除数据 -------------------");
long result = jedis.del("key0204");
System.out.println("del key(key0204) : " + result);
System.out.println("----------------------------------");
//key是否存在
System.out.println("--------------- key是否存在 -------------------");
boolean existKey = jedis.exists("hello");
System.out.println("exists key(hello) : " + existKey);
System.out.println("----------------------------------");
}
catch(Exception e){
e.printStackTrace();
}finally{
//关闭连接
if (null != jedis){
jedis.close();
}
}
}
}
测试结果。
Redis API 参考
更多内容参考:
Jedis API文档:http://redis.github.io/jedis/
6、使用连接池管理 redis
Java Redis的连接池提供了类 redis.clients.jedis.JedisPool 用来创建 Redis 连接池对象。
使用这个对象需要使用类 redis.clients.jedis.JedisPoolConfig 对连接池进行配置。
使用连接池需要用到下面几个 jar , commons-pool2 、slf4j 日志组件(redis连接池依赖),否则无法正常运行。
编写连接池测试类:使用连接池获取连接,实现简单的增删改查功能:
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisPoolTest {
private static JedisPoolConfig poolCfg = new JedisPoolConfig();
private static JedisPool pool = null;
static {
//设置最大空闲数
poolCfg.setMaxIdle(50);
//最大连接数
poolCfg.setMaxTotal(100);
//最大等待毫秒数
poolCfg.setMaxWaitMillis(20000);
//使用配置创建连接池
pool = new JedisPool( poolCfg , "localhost");
}
public static void main(String[] args) {
Jedis jedis = null;
try {
//连接redis
System.out.println("--------------- 连接redis , 连接池方式 -------------------");
//从连接池中获取单个连接
jedis = pool.getResource();
//如果需要密码访问redis服务器,则需要这个设置。
jedis.auth("123456");
System.out.println("jedis connection: " + jedis);
System.out.println("----------------------------------");
//添加数据
System.out.println("--------------- 添加数据 -------------------");
jedis.set("key0204", "jedis test");
System.out.println("set key : key0204");
System.out.println("----------------------------------");
//查询数据
System.out.println("--------------- 查询数据 -------------------");
String value = jedis.get("key0204");
System.out.println("get key : " + value);
System.out.println("----------------------------------");
//修改数据
System.out.println("--------------- 修改数据 -------------------");
jedis.set("key0204", "jedis test has reset");
System.out.println("reset key : key0204");
String newValue = jedis.get("key0204");
System.out.println("get key : value = " + newValue);
System.out.println("----------------------------------");
//删除数据
System.out.println("--------------- 删除数据 -------------------");
long result = jedis.del("key0204");
System.out.println("del key(key0204) : " + result);
System.out.println("----------------------------------");
//key是否存在
System.out.println("--------------- key是否存在 -------------------");
boolean existKey = jedis.exists("hello");
System.out.println("exists key(hello) : " + existKey);
System.out.println("----------------------------------");
}
catch(Exception e){
e.printStackTrace();
}finally{
//关闭连接
if (null != jedis){
jedis.close();
}
}
}
}
测试结果:
其他参考资料:
Jedis的API
Jedis常用API整理-详细