前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis(十四):Jedis

Redis(十四):Jedis

作者头像
栗筝i
发布2022-12-01 08:46:01
3460
发布2022-12-01 08:46:01
举报
文章被收录于专栏:迁移内容

Jedis是Redis官方推荐的Java连接开发工具。要在Java开发中使用好Redis中间件,必须对Jedis熟悉才能写成漂亮的代码!

1、新建Maven工程,导入对应依赖

代码语言:javascript
复制
<dependencies>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.62</version>
        </dependency>

    </dependencies>

2、编码测试

  • 连接数据库
  • 操作命令
  • 断开连接
代码语言:javascript
复制
package com.lizh.test;

import redis.clients.jedis.Jedis;

public class TestPing {
    public static void main(String[] args) {
        //1、 new 一个 Jedis 对象
        Jedis jedis = new Jedis("127.0.0.1",6379);
        //2、输入密码
        jedis.auth("123456");
        //3、测试连接
        System.out.println(jedis.ping());
        //4、关闭连接
        jedis.close();
    }
}

输出 : PONG

3、对Key操作的命令

代码语言:javascript
复制
package com.lizh.test;

import redis.clients.jedis.Jedis;

    @Test public void testKey() throws InterruptedException
    {
        System.out.println("清空数据:"+jedis.flushDB());
        System.out.println("判断某个键是否存在:"+jedis.exists("username"));
        System.out.println("新增<'username','zzh'>的键值对:"+jedis.set("username", "zzh"));
        System.out.println(jedis.exists("name"));
        System.out.println("新增<'password','password'>的键值对:"+jedis.set("password", "password"));
        System.out.print("系统中所有的键如下:");
        Set<String> keys = jedis.keys("*");
        System.out.println(keys);
        System.out.println("删除键password:"+jedis.del("password"));
        System.out.println("判断键password是否存在:"+jedis.exists("password"));
        System.out.println("设置键username的过期时间为5s:"+jedis.expire("username", 5));
        TimeUnit.SECONDS.sleep(2);
        System.out.println("查看键username的剩余生存时间:"+jedis.ttl("username"));
        System.out.println("移除键username的生存时间:"+jedis.persist("username"));
        System.out.println("查看键username的剩余生存时间:"+jedis.ttl("username"));
        System.out.println("查看键username所存储的值的类型:"+jedis.type("username"));
    }

输出结果

代码语言:javascript
复制
清空数据:OK
判断某个键是否存在:false
新增<'username','zzh'>的键值对:OK
false
新增<'password','password'>的键值对:OK
系统中所有的键如下:[username, password]
删除键password:1
判断键password是否存在:false
设置键username的过期时间为5s:1
查看键username的剩余生存时间:3
移除键username的生存时间:1
查看键username的剩余生存时间:-1
查看键username所存储的值的类型:string

4、通过Jedis理解Redis事务

代码语言:javascript
复制
package com.lizh.test;

import com.alibaba.fastjson.JSONObject;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;

public class TestPing {
    public static void main(String[] args) {
        //1、 new 一个 Jedis 对象
        Jedis jedis = new Jedis("127.0.0.1",6379);
        //2、输入密码
        jedis.auth("123456");

        //3、开启事务
        Transaction multi = jedis.multi();

        JSONObject jsonObject = new JSONObject();
        jsonObject.put("k1","v1");
        jsonObject.put("k2","v2");
        String result = jsonObject.toJSONString();
        multi.set("k1",result);

        try {
            multi.set("s1","v1");
            multi.set("s2","v2");
            int i = 1/0;    //代码执行异常,事务抛出失败
            multi.exec();   //执行事务
        } catch (Exception e){
            multi.discard();   //移除事务
            e.printStackTrace();
        }finally {
            System.out.println(jedis.get("s1"));
            System.out.println(jedis.get("s2"));
            jedis.close();  //关闭连接
        }
    }

}

5、小结

Jedis中jedis对象的方法是与Redis的命令一一对应的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、新建Maven工程,导入对应依赖
  • 2、编码测试
  • 3、对Key操作的命令
  • 4、通过Jedis理解Redis事务
  • 5、小结
相关产品与服务
云数据库 Redis®
腾讯云数据库 Redis®(TencentDB for Redis®)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档