Jedis 操作 redis

Jedis 操作 redis

我们要使用Java来操作Redis

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

知其然并知其所以然

测试

1、导入对应的依赖

<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.5.1</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.67</version>
</dependency>

2、编码测试:

  • 连接数据库 : 打开redis服务
public class test {
    public static void main(String[] args) {
        // 1、直接new对象即可
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        // Jedis所有的方法就是我们之前学习的命令
        System.out.println(jedis.ping());
    }
}

//PONG
  • 操作命令
  • 断开连接
jedis.close() // 关闭连接

常用的API

String

List

Set

Hash

Zset

public class TestKey {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        System.out.println("清空数据:"+jedis.flushDB());
        System.out.println("判断某个键是否存在: "+jedis.exists( "username"));
        System.out.println("新增< 'username ' , 'kuangshen'>的键值对:"+jedis.set("username","kuangshen"));
        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所存储的值的类型:"+jedis.type("username"));
        System.out.println("随机返回key空间的一个: "+jedis.randomKey());
        System.out.println("重命名key: "+jedis.rename( "username" ,"name"));
        System.out.println("取出改后的name: "+jedis.get( "name" )) ;
        System.out.println("按索引查询:"+jedis.select( 0));
        System.out.println("删除当前选择数据库中的所有key: "+jedis.flushDB());
        System.out.println("返回当前数据库中key的数目:"+jedis.dbSize());
        System.out.println("删除所有数据库中的所有key: "+jedis.flushAll());
    }
}

所有的api命令,就是我们对应的上面学习的指令,一个都没有变化!

事务

public class TestTX {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.flushDB();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("hello", "world");
        jsonObject.put("name", "saxon");
        // 开启事务
        Transaction multi = jedis.multi();
        String result = jsonObject.toJSONString();
        //jedis.watch(result); 乐观锁
        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(jedis.get("user1"));
            System.out.println(jedis.get("user2"));
            jedis.close(); // 关闭连接
        }
    }
}
posted @ 2021-08-27 16:48  saxon宋  阅读(80)  评论(0)    收藏  举报