版权声明:《==study hard and make progress every day==》 https://blog.csdn.net/qq_38225558/article/details/85645461
原来mysql需要使用jdbc,现在需要redis的一个java客户端jedis。
jedis是客户端,而redis是服务器。使用jedis这个java客户端操作redis数据库。
Jedis简单操作
1.简单配置-连接操作
jedis java客户端连接方式操作redis步骤
1.创建项目
2.导入jar并添加依赖
3.写代码测试-简单操作(设置一个值并且获取一个值)
①创建连接
②使用连接进行操作
③关闭连接
@Test
public void test() throws Exception {
//1)创建连接
Jedis connection = new Jedis("127.0.0.1", 6379);
connection.auth("root");
//2)使用连接进行操作
connection.set("name", "郑清");
System.out.println(connection.get("name"));
//3)关闭连接
connection.close();
}
运行结果:
2.连接池配置-连接池操作
通过jedis连接池,简单操作redis数据库
@Test
public void testPool() throws Exception {
//1 创建连接池配置对象
JedisPoolConfig config = new JedisPoolConfig();
//2 进行配置-四个配置
config.setMaxIdle(2);//最小连接(空闲最大连接)
config.setMaxTotal(10);//最大连接数
config.setMaxWaitMillis(2 * 1000);//最大等待时间
config.setTestOnBorrow(true);//获取连接时测试连接是否畅通
//3 通过配置对象创建连接池对象
JedisPool pool = new JedisPool(config, "127.0.0.1", 6379, 2 * 1000, "root");
//4 通过连接池获取连接
Jedis connection = pool.getResource();
// connection.auth()
//5 执行操作-设置值和获取值
connection.set("age", "25");
System.out.println(connection.get("age"));
//6 释放连接
connection.close();//释放和关闭公用一个方法,底层自动判断,如果是连接池环境则释放,否则关闭.
//7 摧毁连接(测试环境)-真实环境应该是在spring中配置的一个单例
pool.destroy();
}
Jedis数据结构操作
工具抽取
public enum JedisUtil {
INSTANCE;
//连接池是单例....
private static JedisPool pool = null;
static {
//1 创建连接池配置对象
JedisPoolConfig config = new JedisPoolConfig();
//2 进行配置-四个配置
config.setMaxIdle(2);//最小连接(空闲最大连接)
config.setMaxTotal(10);//最大连接数
config.setMaxWaitMillis(2 * 1000);//最大等待时间
config.setTestOnBorrow(true);//获取连接时测试连接是否畅通
//3 通过配置对象创建连接池对象
pool = new JedisPool(config, "127.0.0.1", 6379, 2 * 1000, "root");
}
//获取连接
public Jedis getResource() {
return pool.getResource();
}
//释放连接
public void closeResource(Jedis jedis) {
if (jedis != null) { jedis.close(); }
}
}
这里以 jedis操作redis的 key和value为String的值 为例
@Test
public void testkey() throws Exception {
//获取连接
//清空所有数据-flushall
Jedis jedis = JedisUtil.INSTANCE.getResource();
System.out.println("清空数据:" + jedis.flushAll());
//执行的操作
System.out.println("判断key为name的值是否存在!" + jedis.exists("name"));//false
System.out.println("判断key为age的值是否存在!" + jedis.exists("age"));//false
System.out.println("判断key为sex的值是否存在!" + jedis.exists("sex"));//false
System.out.println("设置key为name值!" + jedis.set("name", "郑清"));
System.out.println("设置key为age值!" + jedis.set("age", "18"));
System.out.println("设置key为sex值!" + jedis.set("sex", "男"));
System.out.println("设置后再次判断key为name的值是否存在!" + jedis.exists("name"));//true
System.out.println("设置后获取key为name的值:" + jedis.get("name"));//郑清
System.out.println("删除前判断key为sex的值是否存在!" + jedis.exists("sex")); //true
System.out.println("删除key为sex的值" + jedis.del("sex"));
System.out.println("删除后判断key为sex的值是否存在!" + jedis.exists("sex"));//false
System.out.println("获取所有的key:"); //name age
Set<String> keys = jedis.keys("*");
for (String key : keys) {
System.out.println(key + "--->" + jedis.get(key));
}
jedis.expire("name", 10);//设置过期时间
Thread.sleep(5000);
System.out.println(jedis.ttl("name"));//获取剩余过期时间
//释放连接
JedisUtil.INSTANCE.closeResource(jedis);
System.out.println("释放连接:");
}
运行:
和命令一样,jedis操作redis也可以操作key和各种类型value
Key操作
String基本操作
List操作
Set操作
Hash操作
Jedis排序
Jedis事务