• 7、Jedis测试



    Redis 6 入门到精通-讲师:王泽

    世态炎凉,世界并不善良

    7、Jedis测试

    7.1 Jedis所需要的jar包

    <dependency>
    	<groupId>redis.clientsgroupId>
    	<artifactId>jedisartifactId>
    	<version>3.2.0version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    7.2 连接Redis注意事项

    1. redis.conf中注释掉bind 127.0.0.1 (不注释掉只能本机访问)
      在这里插入图片描述
    2. 然后将保护模式改成 protected-mode no,默认是yes,只允许本机访问,改完后重启redis。
      在这里插入图片描述
    3. 禁用Linux的防火墙:Linux(CentOS7)里执行命令

    查看防火墙状态:systemctl status firewalld.service
    关闭防火墙:systemctl stop firewalld.service

    # 查看防火墙状态
    [root@centos7-101 ~]# systemctl status firewalld.service 
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
       Active: active (running) since 六 2022-12-03 17:37:13 CST; 11s ago
         Docs: man:firewalld(1)
     Main PID: 25342 (firewalld)
        Tasks: 2
       CGroup: /system.slice/firewalld.service
               └─25342 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
    
    12月 03 17:37:14 centos7-101 firewalld[25342]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10...?).
    12月 03 17:37:14 centos7-101 firewalld[25342]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10...?).
    12月 03 17:37:14 centos7-101 firewalld[25342]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10...?).
    12月 03 17:37:14 centos7-101 firewalld[25342]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10...me.
    12月 03 17:37:14 centos7-101 firewalld[25342]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10...me.
    12月 03 17:37:14 centos7-101 firewalld[25342]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10...?).
    12月 03 17:37:14 centos7-101 firewalld[25342]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10...?).
    12月 03 17:37:14 centos7-101 firewalld[25342]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10...?).
    12月 03 17:37:14 centos7-101 firewalld[25342]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10...?).
    12月 03 17:37:14 centos7-101 firewalld[25342]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10...?).
    Hint: Some lines were ellipsized, use -l to show in full.
    # 关闭防火墙
    [root@centos7-101 ~]# systemctl stop firewalld.service
    [root@centos7-101 ~]# systemctl status firewalld.service 
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
       Active: inactive (dead) since 六 2022-12-03 17:38:21 CST; 12s ago
         Docs: man:firewalld(1)
      Process: 25342 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
     Main PID: 25342 (code=exited, status=0/SUCCESS)
    
    12月 03 17:37:14 centos7-101 firewalld[25342]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10...?).
    12月 03 17:37:14 centos7-101 firewalld[25342]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10...me.
    12月 03 17:37:14 centos7-101 firewalld[25342]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10...me.
    12月 03 17:37:14 centos7-101 firewalld[25342]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10...?).
    12月 03 17:37:14 centos7-101 firewalld[25342]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10...?).
    12月 03 17:37:14 centos7-101 firewalld[25342]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10...?).
    12月 03 17:37:14 centos7-101 firewalld[25342]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10...?).
    12月 03 17:37:14 centos7-101 firewalld[25342]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10...?).
    12月 03 17:38:20 centos7-101 systemd[1]: Stopping firewalld - dynamic firewall daemon...
    12月 03 17:38:21 centos7-101 systemd[1]: Stopped firewalld - dynamic firewall daemon.
    Hint: Some lines were ellipsized, use -l to show in full.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    7.3 Jedis常用操作

    7.3.1 创建动态的工程

    在这里插入图片描述

    7.3.2 创建测试程序

    package pers.tianyu.jedis;
    
    import redis.clients.jedis.Jedis;
    
    public class JedisDemo1 {
        public static void main(String[] args) {
            // 创建一个jedis对象
            Jedis jedis = new Jedis("192.168.0.101",6379);
            String ping = jedis.ping();
            System.out.println(ping);
            jedis.close();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    7.4 测试相关数据类型

    7.4.1 Jedis-API:Key

    // key
    @Test
    public void demo01() {
        // 创建一个jedis对象
        Jedis jedis = new Jedis("192.168.0.101", 6379);
        // 	添加键值对
        jedis.set("k1", "v1");
        jedis.set("k2", "v2");
        jedis.set("k3", "v3");
        Set<String> keys = jedis.keys("*");
        // 集合数量
        System.out.println(keys.size());
        for (String key : keys) {
            System.out.println(key);
        }
        // 判断某个key是否存在
        System.out.println(jedis.exists("k1"));
        // 查看还有多少秒过期,-1表示永不过期,-2表示已过期
        System.out.println(jedis.ttl("k1"));
        // 查询对应键值
        System.out.println(jedis.get("k1"));
        // 关闭
        jedis.close();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    7.4.2 Jedis-API:String

    // string
    @Test
    public void demo02() {
        // 创建一个jedis对象
        Jedis jedis = new Jedis("192.168.0.101", 6379);
        // 	添加多个键值对
        jedis.mset("str1", "v1", "str2", "v2", "str3", "v3");
        // 获取多个值
        List<String> mget = jedis.mget("str1", "str2", "str3");
        System.out.println(mget);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    7.4.3 Jedis-API:List

    // list
    @Test
    public void demo03() {
        // 创建一个jedis对象
        Jedis jedis = new Jedis("192.168.0.101", 6379);
        //添加键值对
        jedis.lpush("code", "a", "b", "c", "d", "e");
        //获取list集合全部值
        List<String> code = jedis.lrange("code", 0, -1);
        //循环遍历
        for (String element : code) {
            System.out.println(element);
        }
        //关闭
        jedis.close();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    7.4.4 Jedis-API:set

    // set
    @Test
    public void demo04(){
        // 创建一个jedis对象
        Jedis jedis = new Jedis("192.168.0.101", 6379);
        //添加键值对
        jedis.sadd("mysql","a");
        jedis.sadd("mysql","b");
        jedis.sadd("mysql","c");
        jedis.sadd("mysql","d");
        jedis.sadd("mysql","e");
        // 取出该集合的所有值
        Set<String> mysql = jedis.smembers("mysql");
        for (String str:mysql) {
            System.out.println(str);
        }
        // 删除集合中的某个元素
        jedis.srem("mysql","a");
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    7.4.5 Jedis-API:hash

    // hash
    @Test
    public void demo05() {
        // 创建一个jedis对象
        Jedis jedis = new Jedis("192.168.0.101", 6379);
        // 添加键值对
        jedis.hset("user", "name", "lisi");
        // 创建一个hashmap
        HashMap<String, String> map = new HashMap<>();
        map.put("telphone", "13100002222");
        map.put("address", "har");
        map.put("email", "abc@163.com");
        // 将map添加
        jedis.hset("user", map);
        // 获取key中的多个字段值
        List<String> hmget = jedis.hmget("user", "name", "telphone", "address", "email");
        for (String element : hmget) {
            System.out.println(element);
        }
        // 关闭
        jedis.close();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    7.4.6 Jedis-API:zset

    // zset
    @Test
    public void demo06() {
        // 创建一个jedis对象
        Jedis jedis = new Jedis("192.168.0.101", 6379);
        // 添加键值对
        jedis.zadd("china", 100d, "beijing");
        jedis.zadd("china", 200d, "shanghai");
        jedis.zadd("china", 300d, "guangzhou");
        jedis.zadd("china", 400d, "shenzhen");
        Set<String> china = jedis.zrange("china", 0, -1);
        for (String city : china) {
            System.out.println(city);
        }
        // 关闭
        jedis.close();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
  • 相关阅读:
    [解题报告] CSDN竞赛第11期
    在测试中实施人工智能
    计算机视觉项目实战-基于特征点匹配的图像拼接
    Leetcode 2336. Smallest Number in Infinite Set [Python]
    使用BP神经网络、RBF神经网络以及PSO优化的RBF神经网络对数据进行预测(Matlab代码实现)
    Linux —— 信号量
    让资产权利归于建设者:Kiosk使过程变得更简单
    ElasticSearch(二)【Kibana】
    APS高级排程在钣金冲压行业的应用
    Python毕业设计必备案例:【学生信息管理系统】
  • 原文地址:https://blog.csdn.net/zhao854116434/article/details/127957227