目录
前言
Java怎么连接Redis?
1. 直接连接
2. 通过Redis连接池获取对象
3. 封装JedisUtil对外提供连接对象的获取方法
Java操作Redis五种数据类型
1. 操作String字符串
2. 操作Hash表
3. 操作List列表
4. 操作Set集合
5. 操作SortedSet有序集合
前言
? ? ? ? Jedis 就是Java Redis ,集成了Redis的相关命令操作,它是Java语言操作Redis数据库的桥梁。
? ? ? ? Jedis客户端封装了Redis数据库的大量命令。参考文档:Jedis的API文档
Java怎么连接Redis?
1. 直接连接
JedisPool jedisPool = null; // 连接池
Jedis jedis = null;
@Before // 一个类中最先执行的方法
public void init(){
// 方法一 : 直接连接
jedis = new Jedis("192.168.182.101",6379); // 创建jedis对象,连接redis服务
jedis.auth("123456"); // 设置认证密码
String pong = jedis.ping(); // 模拟心跳机制,使用ping命令,测试连接是否成功
System.out.println(pong); // 返回pong
}
2. 通过Redis连接池获取对象
JedisPool jedisPool = null; // 连接池
Jedis jedis = null;
@Before // 一个类中最先执行的方法
public void init(){
// 方法二 : 通过连接池的方式获取 Jedis
jedisPool = new JedisPool(new JedisPoolConfig(),
"192.168.182.101", 6379, 10000, "123456");
jedis = jedisPool.getResource(); // 返回一个jedis对象
String pong = jedis.ping(); // 模拟心跳机制,使用ping命令,测试连接是否成功
System.out.println(pong); // 返回pong
}
3. 封装JedisUtil对外提供连接对象的获取方法
JedisPool jedisPool = JedisUtil.redisPoolFactory(); // 连接池
Jedis jedis = null;
@Before // 一个类中最先执行的方法
public void init(){
// 方法三 : 封装JedisUtil对外提供连接对象获取方法
jedis = jedisPool.getResource(); // 返回一个jedis对象
String pong = jedis.ping(); // 模拟心跳机制,使用ping命令,测试连接是否成功
System.out.println(pong); // 返回pong
}
封装JedisUtil.java?
package com.yjxxt.util;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisUtil {
//服务器地址
private static final String host = "192.168.182.101";
//端口
private static final int port = 6379;
//密码
private static final String password = "123456";
//超时时间
private static final String timeout = "10000";
//最大连接数
private static final int maxTotal = 1024;
//最大连接阻塞等待时间
private static final String maxWaitMillis = "10000ms";
//最大空闲连接
private static final int maxIdle = 200;
//最小空闲连接
private static final int minIdle = 5;
public static JedisPool redisPoolFactory() {
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxWaitMillis(Long.parseLong(maxWaitMillis.substring(0,
maxWaitMillis.length() - 2)));
jedisPoolConfig.setMaxTotal(maxTotal);
jedisPoolConfig.setMaxIdle(maxIdle);
jedisPoolConfig.setMinIdle(minIdle);
JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port,
Integer.parseInt(timeout.substring(0, timeout.length() - 2)), password);
return jedisPool;
}
}
Java操作Redis五种数据类型
1. 操作String字符串
package com.yjxxt;
import com.yjxxt.util.JedisUtil;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.util.HashMap;
import java.util.Map;
public class jedisTest {
JedisPool jedisPool = JedisUtil.redisPoolFactory();
Jedis jedis = null;
@Before
public void init(){
jedis = jedisPool.getResource();
String pong = jedis.ping();
System.out.println(pong);
}
/*
1. 操作String
*/
@Test
public void testString(){
// 切换数据库
jedis.select(0); // 指定数据库,默认0
// 添加一条数据
System.out.println(jedis.set("username","zhangsan"));
// 获取一条数据
System.out.println(jedis.get("username"));
// 添加多条数据
System.out.println(jedis.mset("age","18","address","sh"));
// 获取多条数据
System.out.println(jedis.mget("age","address"));
}
@After // 一个类中最后执行的方法
public void close(){
if (jedis != null){
jedis.close(); // 关闭jedis,释放资源
}
}
}
2. 操作Hash表
/*
2. 操作Hash
*/
@Test
public void testHash(){
// 切换数据库
jedis.select(1); // 指定数据库,默认0
// 1.HSET
// jedis.hset("user","name","zhangsan"); // (1).正常传入
Map<String,String> userMap = new HashMap<>();
userMap.put("name","lisi");
userMap.put("age","20");
System.out.println(jedis.hset("user", userMap)); // (2).传入redis的key,HashMap对象
// 2.HGET
System.out.println(jedis.hget("user", "name"));
// 3.HMSET
System.out.println(jedis.hmset("user02", userMap));
// 4.HMGET
System.out.println(jedis.hmget("user", "name", "age"));
// 5.HGETALL
System.out.println(jedis.hgetAll("user"));
// 6.HDEL
System.out.println(jedis.hdel("user", "age"));
}
3. 操作List列表
/*
3. 操作List
*/
@Test
public void testList(){
jedis.select(2);
System.out.println(jedis.lpush("stu", "zhangsan", "lisi", "wangwu")); // 左插入
System.out.println(jedis.lrange("stu", 0, 2)); // 左遍历
System.out.println(jedis.lpop("stu")); // 左删除
}
4. 操作Set集合
/*
4. 操作Set集合
*/
@Test
public void testSet(){
jedis.select(3);
System.out.println(jedis.sadd("letters", "a", "b", "c"));
System.out.println(jedis.smembers("letters"));
}
5. 操作SortedSet有序集合
/*
5. 操作SortedSet有序集合
*/
@Test
public void testSortedSet(){
jedis.select(4);
Map<String,Double> stuMap = new HashMap<>();
stuMap.put("zhangsan",95D);
stuMap.put("lisi",92D);
stuMap.put("wangwu",100D);
System.out.println(jedis.zadd("stu", stuMap)); // 传对象
System.out.println(jedis.zrange("stu", 0, 2)); // 遍历
System.out.println(jedis.zrevrange("stu", 0, 2)); // 反转遍历
}
已经到底了。。。。
|