Redis三日游 第三日(1Jedis客户端)

Jedis客户端
Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java、C、C#、C++、php、Node.js、Go等。 在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用Jedis和Redisson。 在企业中用的最多的就是Jedis,Jedis 是 Redis 官方首选的 Java 客户端开发包。
jedis的相关jar包
在java中使用jedis中的api操作redis的时候所需jar包主要有俩个: jedis-2.x.jar commons-pool2-2.4.2.jar 另外需要一个junit的包进行单元测试: junit-4.x.jar

使用Jedis
使用Jedis的API对redis进行操作,Jedis中的方法名和Redis中命令名基本上一模一样,所以只要了解Redis中命令的作用,那么Jedis中对应的方法的作用也是一样的.
关闭Jedis对象
每个Jedis对象在内部都会建立一个Socket和Redis服务器连接,所以Jedis对象使用完毕后可以进行关闭。

使用junit进行基本的jedis操作测试的时候,可以编写如下代码:

public class SpringRedisTest {
 private JedisPool jedisPool;
private Jedis jedis;
@SuppressWarnings("resource")
@Before
public void before() {
ClassPathXmlApplicationContext 	applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
 //ioc控制反转,将jedisPool交给	spring管理
  jedisPool = 	(JedisPool)applicationContext.getBean("jedisPool");
 jedis = jedisPool.getResource();
 }
@Test
 public void test() {
 jedis.set("name","happy0");
 String result = jedis.get("name");
System.out.println(result);
 }
 @After
 public void after() {
jedisPool.close();
 jedis.close();
 }
}

意思是,在单元测试方法执行之前,junit先调用使用了@Before注解的方法,new一个jedis的方法然后再调用使用了@Test注解的方法,最后再调用使用了@After注解的方法进行关闭等操作。

Jedis对Redis中key的操作

//选择数据库 默认是0
System.out.println(jedis.select(0));
//查看当前数据库
System.out.println(jedis.getDB());
//查看当前数据库中所有key值
System.out.println(jedis.keys("*"));
//判断当前数据库中是否存在名字为name的key值
System.out.println(jedis.exists(“name”));
//判断key值对应的value值在Redis中的数据类型 System.out.println(jedis.type(“name”));
//查看key的过期时间 单位是毫秒 -1表示永不过期 -2表示已经过期
System.out.println(jedis.pttl(“name”));
//查看key的过期时间 单位是秒 -1表示永不过期 -2表示已经过期
System.out.println(jedis.ttl(“name”));
//修改key的名字 不管新名字是否被使用 如果老的key不存在会报错
System.out.println(jedis.rename(“name”, “username”));
//修改key的名字 新名字没有被使用的时候才生效 如果老的key不存在会报错
System.out.println(jedis.renamenx(“username”, “name”));
//把指定的key移动到指定的数据库中(数据库索引表示)
System.out.println(jedis.move(“name”,3));
//在当前数据库中随机获取一个key
System.out.println(jedis.randomKey());
//设置指定key的过期时间 单位是秒
System.out.println(jedis.expire(“name”, 10));
//设置指定key的过期时间 单位是毫秒
System.out.println(jedis.pexpire(“name”, 5000L));
//设置指定key的过期时间 时间用时间戳表示
System.out.println(jedis.expireAt(“name”, 1000000L));
//在指定的key过期之前,移除key上的过期时间
System.out.println(jedis.persist(“name”));

//当前数据库中key的数量 返回值Long类型
jedis.dbSize();
//清空当前db
jedis.flushDB();
//清空所有db
jedis.flushAll();

Jedis对Redis中string的操作

//设置k-v的值,如果k已经则会覆盖旧值,且无视数据类型
System.out.println(jedis.set(“name”, “zhangsan”));
//获得指定key的值
System.out.println(jedis.get(“name”));
//通过下标截取指定key的值
System.out.println(jedis.getrange(“name”, 0, 3));
//替换key值,并且返回旧值
System.out.println(jedis.getSet(“name”, “briup”));
//可以连续设置多组K-V
System.out.println(jedis.mset(“name”,“briup”,“age”,“20”));
//获得多个key分别对应的值
System.out.println(jedis.mget(“name”,“age”));
//设置K-V的同时设置一下过期时间,单位是秒
System.out.println(jedis.setex(“password”, 10, “123”));
//设置K-V的同时设置一下过期时间,单位是毫秒
System.out.println(jedis.psetex(“myname”, 10000L, “test”));
//设置K-V,只有指定的key没有被使用的时候才生效
System.out.println(jedis.setnx(“name”,“tom”));
//连续设置多组K-V,只有在所有指定的key都没有被使用的时候才生效
System.out.println(jedis.msetnx(“a”,“testA”,“b”,“testB”));
//使用第三个参数的值,从下标为3的位置开始覆盖指定key的值
System.out.println(jedis.setrange(“name”, 3, “aaaa”));
//返回指定key的值的长度
System.out.println(jedis.strlen(“name”));
//指定的值自增1 num的值必须是整数
System.out.println(jedis.incr(“num”));
//指定的值自增5 num的值必须是整数
System.out.println(jedis.incrBy(“num”,5));
//指定的值自减1 num的值必须是整数
System.out.println(jedis.decr(“num”));
//指定的值自减5 num的值必须是整数
System.out.println(jedis.decrBy(“num”, 5));
//指定的值自增10.5
System.out.println(jedis.incrByFloat(“num”, 10.5));
//指定的key的值后面进行追加
System.out.println(jedis.append(“name”, “gogogo”));

Jedis对Redis中hash的操作

//为哈希表中的字段赋值
//给key为user的hash表中的name字段赋值为briup
System.out.println(jedis.hset(“user”, “name”, “briup”));
//为哈希表中的字段赋值 字段name不存在是才生效
System.out.println(jedis.hsetnx(“user”, “name”, “tom”));
//连续为哈希表中的多个字段赋值
Map<String,String> map = new HashMap<>();
map.put(“age”, “20”);
map.put(“dob”, “2016-11-11”);
System.out.println(jedis.hmset(“user”,map));
//获得名字为user的hash表中指定字段的值
System.out.println(jedis.hget(“user”, “name”));
//连续获得名字为user的hash表中多个字段的值
System.out.println(jedis.hmget(“user”, “age”,“dob”));
//获得名字为user的hash表中所有字段的值
System.out.println(jedis.hgetAll(“user”));
//检查名字为user的hash表中指定字段是否存在
System.out.println(jedis.hexists(“user”, “name”));
//获得名字为user的hash表中字段的个数
System.out.println(jedis.hlen(“user”));
//删除名字为user的hash表中的指定字段,同时忽略掉不存在的字段
System.out.println(jedis.hdel(“user”, “dob”,“f1”,“f2”));
//获得名字为user的hash表中所有的字段名
System.out.println(jedis.hkeys(“user”));
//获得名字为user的hash表中所有的字段值
System.out.println(jedis.hvals(“user”));
//名字为user的hash表中的age字段值自增1
System.out.println(jedis.hincrBy(“user”, “age”, 1L));
//名字为user的hash表中的age字段值自增10.5
System.out.println(jedis.hincrByFloat(“user”, “age”, 10.5));

Jedis对Redis中其他类型的操作

Jedis对Redis中list的操作 Jedis对Redis中set的操作 Jedis对Redis中zset的操作 和Redis中的命令名字及用户一样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值