一、介绍
1、Jedis是一个高性能的Java客户端,是Redis官方推荐的Java开发工具。
2、要在Java开发中访问Redis缓存服务器Jedis的项目地址
二、使用
1、Maven的pom文件中增加依赖 ${redis.version} = 2.9.0
<dependency>
<groupId>redis.clents</groupId>
<artifactId>jedis<artifactId>
<version>${redis.version}</version>
</dependency>
2、使用时,构建Jedis对象即可。一个Jedis对象代表一条和Redis服务进行连接的Socket通道。使用完Jedis对象之后,调用Jedis.close()方法把连接关闭,否则会占用系统资源。
// 指定地址 、端口
Jedis jedis = new Jedis("localhost",6379);
// 连接密码
jedis.auth("xxx");
// 关闭连接
jedis.close();
3、Jedis操作String字符串
Jedis的String字符串操作函数和Redis客户端操作String字符串的命令,基本上可以一比一的相互对应。
@Slf4j
public class StringDemo {
// 字符串数据类型相关命令
@Test
public void operateString() {
Jedis jedis = new Jedis("localhost",6379);
// 判断连接 => pong
log.info("===>jedis.ping()=>{}",jedis.ping());
// 设置key0的值 123
jedis.set("key0","123");
// 获取类型
log.info("jedis.type(key0)=>{}",jedis.type("key0"));
// 获取值
log.info("jedis.get(key0)=>{}",jedis.get("key0"));
// 判断key 是否存在
log.info("jedis.exists(key0)=>{}",jedis.exists("key0"));
// 返回长度
log.info("jedis.strlen(key0)=>{}",jedis.strlen("key0"));
// 返回截取字符串 0:范围, -1 表示全部
log.info("jedis.getrange(key0)=>{}",jedis.getrange("key0", 0, -1));
// 返回区间[1,4]
log.info("jedis.getrange(key0)=>{}",jedis.getrange("key0", 1, 4));
// 追加字符串
log.info("jedis.append(key0)=>{}",jedis.append("key0", "appendStr"));
log.info("jedis.get(key0)=>{}",jedis.get("key0"));
// 重命名
jedis.reneame("key0","key0_new")
// 判断key 是否存在
log.info("jedis.exists(key0)=>{}",jedis.exists("key0"));
// 批量插入
jedis.mset("k1","v1","k2","v2","k3","10")
// 批量取出
log.info("jedis.mget(k1,k2,k3)=>{}", jedis.mget("k1","k2","k3"));
// 删除
log.info("jedis.del(k1)=>{}", jedis.del("k1"));
// 判断key 是否存在
log.info("jedis.exists(k1)=>{}",jedis.exists("k1"));
// 取出旧值并设置新值
log.info("jedis.getSet(k2)=>{}",jedis.getSet("k2","454"));
// 自增1
log.info("jedis.incr(k3)=>{}",jedis.incr("k3"));
// 自增10
log.info("jedis.incrBy(k3)=>{}",jedis.incr("k3",15));
// 自减1
log.info("jedis.decr(k3)=>{}",jedis.incr("k3"));
// 自减10
log.info("jedis.decrBy(k3)=>{}",jedis.incr("k3",15));
// 浮点数加
log.info("jedis.incrByFloat(k3)=>{}",jedis.incrByFloat("k3",1.0));
// 在key 不存在的时候设置
log.info("jedis.setnx(k3)=>{}",jedis.setnx("k3","v3"));
log.info("jedis.get(k3)=>{}",jedis.get("k3"));
// 只有key 都不存在的时候才设置
log.info("jedis.msetnx(k1,k2)=>{}",jedis.msetnx("k1","v1","k2","v2"));
log.info("jedis.mget("k1","k2"));
// 设置key 2 秒后失效
jedis.setex("k4",2"2 second is no val");
try {
Thread.sleep(3000);
} catch(Exception e) {
log.error("e=>{}", e.getMessage());
}
// 2 s
log.info("jedis.get(k4)=>{}",jedis.get("k4"));
// 下标从0 开始 第三位 开始用新值覆盖旧值
jedis.setrange("k6",3,"v6");
// 返回
log.info("jedis.get(v6)=>{}",jedis.get("v6"));
// 返回匹配所有的key
log.info("jedis.get(k*)=>{}", jedis.get("k*""));
jedis.close();
}
}