通过Jedis操作Redis[通俗易懂]

2022-10-29 12:57:57 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

jedis是redis的java版本的客户端实现,Jedis提供了完整Redis命令。

目录

maven依赖

测试是否连接redis

Jedis操作String

输出结果

Jedis操作List

输出结果

Jedis操作Map

输出结果

Jedis操作Set

输出结果

Jedis操作Zset

输出结果

Jedis事务操作

maven依赖

代码语言:javascript复制
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>3.7.0</version>
    </dependency>

测试是否连接redis

代码语言:javascript复制
Jedis jedis = new Jedis("127.0.0.1",6379);
System.out.println(jedis.ping());

输出结果为PONG,则说明连接成功,否则连接失败,控制台会有异常信息。

Jedis操作String

代码语言:javascript复制
        jedis.set("user", "zhangsan");
        // 获取存储的数据并输出
        System.out.println("redis 存储的字符串为: "  jedis.get("user"));
        jedis.del("user");//删除
        System.out.println("redis 存储的字符串为: "  jedis.get("user"));

输出结果

代码语言:javascript复制
redis 存储的字符串为: zhangsan
redis 存储的字符串为: null

Jedis操作List

代码语言:javascript复制
        //存储数据到列表中
        jedis.lpush("name-list", "zhangsan");
        jedis.lpush("name-list", "lisi");
        jedis.lpush("name-list", "wangwu");
        // 获取存储的数据并输出
        List<String> list = jedis.lrange("name-list", 0 ,2);
        for(int i=0; i<list.size(); i  ) {
            System.out.println("列表项为: " list.get(i));
        }

输出结果

代码语言:javascript复制
列表项为: wangwu
列表项为: lisi
列表项为: zhangsan

Jedis操作Map

代码语言:javascript复制
        Map<String,String> map=new HashMap<>();
        map.put("username","zhangsan");
        map.put("age","22");
        map.put("sex","男");
        //使用 hmset 设置值
        jedis.hmset("user",map);
        // hmget 获取值 取出user中的name 后面key可以跟多个
        List<String> result=jedis.hmget("user","username","age","sex");
        System.out.println(result);
        jedis.hdel("user","age");//移除某项

输出结果

代码语言:javascript复制
[zhangsan, 22, 男]

Jedis操作Set

代码语言:javascript复制
        jedis.sadd("users","zhangsan");
        jedis.sadd("users","lisi");
        System.out.println(jedis.smembers("users"));//获取加入的value值
        System.out.println(jedis.srem("users","zhangsan")); //移除某项

输出结果

代码语言:javascript复制
[zhangsan, lisi]

Jedis操作Zset

代码语言:javascript复制
        //存放数据 按score 进行排序
        jedis.zadd("user",12,"lisi");
        jedis.zadd("user",56,"zhangsan");
        jedis.zadd("user",89,"wangwu");
        jedis.zadd("user",58,"zhaoliu");
        System.out.println(jedis.zrange("user",0,4));//获取加入user中的value

输出结果

代码语言:javascript复制
[lisi, zhangsan, zhaoliu, wangwu]

Jedis事务操作

代码语言:javascript复制
        Transaction multi = jedis.multi();
        try {
            multi.set("user","zhangsan");
            multi.exec();//执行事务
        }catch (Exception e){
            multi.discard();//放弃事务
            e.printStackTrace();
        }finally {
            jedis.close();//关闭连接
        }

Jedis连接池操作

代码语言:javascript复制
        //设置连接池的配置对象
        JedisPoolConfig config = new JedisPoolConfig();
        //设置连接池参数
        config.setMaxTotal(30);
        config.setMaxIdle(10);
        //获取连接池对象
        jedisPool = new JedisPool(config, "127.0.0.1", 6379);
        try{
            jedis = jedisPool.getResource();
        }catch(Exception e){
            e.printStackTrace();

        }

Jedis对key的其它操作命令

代码语言:javascript复制
jedis.flushDB();//清空数据库
jedis.close();//关闭连接
jedis.exists("key");//是否存在名为key的key
Set<String> keys = jedis.keys("*");//获取所有的key
jedis.type("key");查看key的类型
jedis.randomKey();//随机一个键值
jedis.rename("oldkey","newkey");//重命名key
jedis.dbSize();//返回当前数据库所有key的数目

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/195818.html原文链接:https://javaforall.cn

0 人点赞