Redis学习笔记(三)-- Jedis操作Redis

本文介绍了如何使用Java的Jedis库连接和操作Redis数据库,包括连接建立、基本命令、字符串操作、哈希处理以及事务处理等,并提供了详细的代码示例。通过这些例子,读者可以快速掌握Jedis的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis官网:https://redis.io/
Redis中文网:http://www.redis.cn/
学习视频:【狂神说Java】Redis最新超详细版教程通俗易懂

Jedis

什么是Jedis

jedis 是官方推荐的java连接开发工具!使用java操作redis中间件!如果你要使用java操作redis,那么一定要对jedis十分熟悉!

Jedis使用

导入对应依赖

<!--  导入jedis 的包  -->
    <dependencies>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>3.3.0</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.75</version>
        </dependency>
    </dependencies>

编码测试

  1. 连接数据库
  2. 操作命令
  3. 断开连接

测试代码

    public static void main(String[] args) {
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        System.out.println(jedis.ping());
        jedis.close();
    }

常用API

常用API

public static void main(String[] args) {
    Jedis jedis = new Jedis("127.0.0.1", 6379);
    System.out.println(jedis.ping());
    System.out.println("清空库数据:" + jedis.flushDB());
    System.out.println("清空所有库数据:" + jedis.flushAll());
    System.out.println("设置多个key:" + jedis.mset("k1", "v1", "k2", "v2", "k3", "3"));
    System.out.println("判断某个k1是否存在:" + jedis.exists("k1"));
    System.out.println("获取库中所有key:" + jedis.keys("*"));
    System.out.println("删除k1:" + jedis.del("k1"));
    System.out.println("查看key的类型:" + jedis.type("k2"));
    System.out.println("随机返回一个key:" + jedis.randomKey());
    System.out.println("重命名key: " + jedis.rename("k3", "k4"));
    System.out.println("获取当前库的key的数量:" + jedis.dbSize());
    System.out.println("选择其他库:" + jedis.select(2));
    jedis.close();
}

String

    public static void main(String[] args) throws InterruptedException {
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        System.out.println(jedis.ping());

        jedis.flushDB();
        System.out.println("设置多个key:" + jedis.mset("k1", "v1", "k2", "v2", "k3", "3"));
        System.out.println("获取K1值:" + jedis.get("k1"));
        System.out.println("获取多个key:" + jedis.mget("k1", "k2", "k3"));
        System.out.println("删除多个值:" + jedis.del("k1", "k2"));

        jedis.flushDB();
        System.out.println("不存在时设置值:" + jedis.setnx("k1", "v1"));
        System.out.println("不存在时设置值:" + jedis.setnx("k1", "v2"));
        System.out.println("k1的值:" + jedis.get("k1"));
        System.out.println("设置值同时设置过期时间:" + jedis.setex("k2", 30, "v2"));
        TimeUnit.SECONDS.sleep(3);
        System.out.println("获取k2的剩余过期时间:" + jedis.ttl("k2"));

        System.out.println("获取原值,同时设置新值:" + jedis.getSet("k2", "k2getset"));
        System.out.println("k2值:" + jedis.get("k2"));

        System.out.println("获取指定范围的值:" + jedis.getrange("k2" , 0, 4));

        jedis.flushDB();
        jedis.close();
    }

Hash

public static void main(String[] args) {
    Jedis jedis = new Jedis("127.0.0.1", 6379);
    System.out.println(jedis.ping());
    jedis.flushDB();

    HashMap<String, String> map = new HashMap<>();
    map.put("k1", "v1");
    map.put("k2", "v2");
    map.put("k3", "v3");
    map.put("k4", "v4");
    // 批量添加名称为myhash的hash元素
    jedis.hmset("myhash", map);
    // 向名称为myhash的hash中,添加 key为k5,value为v5的元素
    jedis.hset("myhash", "k5", "v5");
    System.out.println("获取myhash中的所有键值对:" + jedis.hgetAll("myhash"));
    System.out.println("获取myhash中的所有键:" + jedis.hkeys("myhash"));
    System.out.println("获取myhash中的所有value: " + jedis.hvals("myhash"));
    System.out.println("将k6的值加上一个整数,如果k6不存在,则赋值:" + jedis.hincrBy("myhash", "k6", 3));
    System.out.println("k6: " + jedis.hget("myhash", "k6"));
    System.out.println("将k6的值加上一个整数,如果k6不存在,则赋值:" + jedis.hincrBy("myhash", "k6", 3));
    System.out.println("k6: " + jedis.hget("myhash", "k6"));
    jedis.flushDB();
    jedis.close();
}

事务

public static void main(String[] args) {
    Jedis jedis = new Jedis("127.0.0.1", 6379);
    System.out.println(jedis.ping());
    jedis.flushDB();

    JSONObject jsonObject = new JSONObject();
    jsonObject.put("name", "zhangsan");
    jsonObject.put("age", 1);
    String result = jsonObject.toJSONString();
    Transaction multi = jedis.multi(); // 开启事务
    // jedis.watch("key"); 开启监视
    try {
        multi.set("user1", result);
        multi.set("user2", result);
        int i = 1/0;
        multi.exec();
    } catch (Exception e) {
        multi.discard(); // 放弃事务
        e.printStackTrace();
    } finally {
        System.out.println("user1: " + jedis.get("user1"));
        System.out.println("user2: " + jedis.get("user2"));
        jedis.close();
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值