Redis(十五)-Jedis操作测试

Posted 码农飞哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis(十五)-Jedis操作测试相关的知识,希望对你有一定的参考价值。

您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦
💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通
❤️ 2. Python爬虫专栏,系统性的学习爬虫的知识点。9.9元买不了吃亏,买不了上当 。python爬虫入门进阶
❤️ 3. Ceph实战,从原理到实战应有尽有。 Ceph实战
❤️ 4. Java高并发编程入门,打卡学习Java高并发。 Java高并发编程入门
😁 5. 社区逛一逛,周周有福利,周周有惊喜。码农飞哥社区,飞跃计划
全网同名【码农飞哥】欢迎关注,个人VX: wei158556

文章目录

简介

前面的文章详细介绍了用命令行如何操作Redis,本文将介绍利用Jedis客户端来操作Redis。Jedis是一个Java操作Redis的客户端。

创建项目

Jedis是一个Java操作Redis的客户端。故先需要创建一个Java项目,这里首先创建一个Maven管理的Java项目。

  1. 创建Maven项目
    打开IDEA,点击 File---->New---->Module 。

    此处选择 Maven 按钮。点击 Next。

这里在GroupId 中指定项目的包路径 com.jay。
在ArtifactId中指定项目名为 jedis_redis_demo。
接着点击 Next。

项目就创建好了,创建完成之后目录如下;

2. 引入依赖

  <!--jedis客户端-->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>3.6.0</version>
        </dependency>
        <!--jedis客户端-->
        <!--单元测试用-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>compile</scope>
        </dependency>
        <!--单元测试用-->


3. 定义操作类JedisDemo。

 // 创建jedis对象
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        String ping = jedis.ping();
        System.out.println(ping);

通过jedis.ping() 测试redis的联通性。

如果提示connect timed out 的话则表示未能连接上Redis服务器。
这时候就需要检查两个方面

  • 检查redis.conf 配置文件
    redis.conf配置文件主要检查 bind配置已经protected-mode 配置。
#将bind配置屏蔽
#bind 127.0.0.1 -::1
#将保护模式关闭,即改成no
protected-mode no

配置文件修改好之后,重启Redis服务器。

  • 关闭防火墙
    如果 redis.conf 配置文件修改好了并重启好Redis服务器,但是还是连不上Redis服务器的话,这时候就需要考虑检查下防火墙了。
#检查防火墙的状态
systemctl status firewall


如果状态是 active(running)则表示防火墙是开启状态,这时候就需要考虑关闭防火墙了。

# 临时关闭防火墙
systemctl stop firewalld
# 永久关闭防火墙
systemctl disable firewalld

  • 检查虚拟机的网络设置
    经过上面的两个步骤之后,我的Jedis客户端还是连不上Redis服务器,这就有点让人头疼了。这里我用的虚拟机是:
    Oracle VM VirtualBox,冥思苦想,突然恍然大悟,原来是网络设置不对,需要设置端口转发。

    设置好端口转发之后,再次重试连接Redis服务器,一下子就连接上了。

Jedis操作测试

Jedis 客户端操作Redis数据库,就是通过Jedis的方法代替命令的执行。Jedis的方法名称与具体的操作命令名一模一样,基本上只要了解操作命令就会使用。下面简单演示一下如何通过Jedis操作Redis数据库

1.操作key

下面仅仅做一个简单的演示,如果对操作key的基本命令还不够了解的小伙伴可以查看此文Redis(三)–Redis的基本命令

    @Test
    public void operateKey() 
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        //清空数据库
        jedis.flushDB();
        jedis.set("name", "码农飞哥");
        //设置过期时间,单位为秒
        jedis.expire("name", 10L);
        System.out.println(jedis.ttl("name"));
        Set<String> keys = jedis.keys("*");
        for (String key : keys) 
            System.out.println(key);
        
    

执行结果:

2. 操作String

下面代码仅仅对部分命令做一个简单的演示,如果对操作String的命令还不够了解的小伙伴可以查看此文 Redis(四)-Redis的常用数据类型之String字符串

   @Test
    public void operateString() 
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.set("name", "码农飞哥");
        System.out.println(jedis.get("name"));
        jedis.mset("name", "码农飞哥", "age", "30", "sex", "男");
        System.out.println(jedis.mget("name", "age"));
    

3. 操作hash

下面代码仅仅对部分命令做一个简单的演示,如果对操作hash的命令还不够了解的小伙伴可以查看此文 Redis(九)-Redis的常用数据类型之Hash表

    @Test
    public void operateHash() 
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.hset("huserId", "name", "码农飞哥二号");
        System.out.println(jedis.hget("huserId", "name"));
    

3. 操作list

下面代码仅仅对部分命令做一个简单的演示,如果对操作list的命令还不够了解的小伙伴可以查看此文 Redis(六)-Redis的常用数据类型之list列表

    @Test
    public void operateList() 
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.lpush("luser", "张三", "李四");
        System.out.println(jedis.rpop("luser"));
    

4. 操作set

下面代码仅仅对部分命令做一个简单的演示,如果对操作set的命令还不够了解的小伙伴可以查看此文 Redis(七)-Redis的常用数据类型之Set集合

    @Test
    public void operateSet() 
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        jedis.sadd("setUser", "小明", "小张", "小王");
        System.out.println(jedis.smembers("setUser"));
    

4. 操作zset

下面代码仅仅对部分命令做一个简单的演示,如果对操作zset的命令还不够了解的小伙伴可以查看此文 Redis(十一)-Redis的常用数据类型之zset类型

 @Test
    public void operateZset() 
        Jedis jedis = new Jedis("127.0.0.1", 6379);
        Map<String, Double> gdpMap = new HashMap();
        gdpMap.put("北京", 95d);
        gdpMap.put("上海", 100d);
        gdpMap.put("天津", 105d);
        jedis.zadd("city:add", gdpMap);
        Set<String> zrange = jedis.zrange("city:add", 0, 3);
        Iterator<String> iterator = zrange.iterator();
        while (iterator.hasNext()) 
            System.out.println(iterator.next());
        
    

总结

本文详细演示了Jedis如何操作Redis数据库,希望对读者朋友们有所帮助。

参考

《Redis的设计与实现》

以上是关于Redis(十五)-Jedis操作测试的主要内容,如果未能解决你的问题,请参考以下文章

Redis使用 Jedis 操作 Redis 数据库 ① ( Gradle 导入 Jedis | Maven 导入 Jedis | 创建 Maven 工程并导入 Jedis 依赖 | 测试链接 )

大数据之Redis:Redis之Jedis-API操作

使用jedis操作redis

Redis6--Jedis篇

Jedis使用操作

Redis入门实战-Jedis操作redis