7、Jedis测试


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

世态炎凉,世界并不善良

7、Jedis测试

7.1 Jedis所需要的jar包

<dependency>
	<groupId>redis.clients</groupId>
	<artifactId>jedis</artifactId>
	<version>3.2.0</version>
</dependency>

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.

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();
    }
}

在这里插入图片描述

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();
}

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);
}

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();
}

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");
}

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();
}

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();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来解答你的问题。 首先,我们需要在项目中引入 Jedis 和 Redis 相关依赖,然后在代码中创建 Jedis 对象,连接 Redis 数据库。接着,我们可以使用 Jedis 对象进行 Redis 操作,例如对 List 进行操作。 以下是一个简单的 List 测试代码示例: ```java import redis.clients.jedis.Jedis; import java.util.List; public class RedisListTest { public static void main(String[] args) { //连接 Redis 数据库 Jedis jedis = new Jedis("localhost", 6379); //清空 Redis 数据库 jedis.flushDB(); //向 List 中添加元素 jedis.lpush("myList", "a", "b", "c"); //获取 List 中的元素 List<String> myList = jedis.lrange("myList", 0, -1); System.out.println("List 中的元素为:" + myList); //获取 List 的长度 long length = jedis.llen("myList"); System.out.println("List 的长度为:" + length); //弹出 List 中的元素 String element = jedis.lpop("myList"); System.out.println("弹出的元素为:" + element); //获取 List 中的元素 myList = jedis.lrange("myList", 0, -1); System.out.println("List 中的元素为:" + myList); //关闭连接 jedis.close(); } } ``` 在这个示例中,我们首先连接 Redis 数据库并清空其中的数据。然后,我们通过 `lpush` 方法向 List 中添加元素,使用 `lrange` 方法获取 List 中的元素,使用 `llen` 方法获取 List 的长度,使用 `lpop` 方法弹出 List 中的元素,并再次使用 `lrange` 方法获取 List 中的元素。最后,我们关闭了与 Redis 数据库的连接。 希望这个示例能够帮助你理解如何使用 Jedis 操作 Redis 中的 List。如果你有其他问题,欢迎继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值