Jedis 2.1.0 API文档:
https://tool.oschina.net/apidocs/apidoc?api=jedis-2.1.0

Jedis 常用API整理:
https://blog.csdn.net/fanbaodan/article/details/89047909

Redis类似JDBC, Java操作Redis

在maven配置文件中添加依赖即可使用Jedis

1
2
3
4
5
6
7
<dependencies>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.2.0</version>
</dependency>
</dependencies>

Jedis对象中两个参数, 第一个虚拟机ip地址, 第二个端口号.
如果连接失败:

  1. 请看第二篇redis配置文件, 需要的修改是否修改了.
  2. 虚拟机防火墙是否关闭了, systemctl stop firewalld
    简单示例:
    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
    44
    45
    46
    47
    48
    package com.wakabaka;

    import redis.clients.jedis.Jedis;

    import java.util.List;
    import java.util.Set;

    public class jedisDemo1 {

    public static void main(String[] args) {
    //创建一个Jedis对象
    Jedis jedis = new Jedis("192.168.31.65", 6379);

    //测试
    String value = jedis.ping();
    System.out.println(value);

    jedis.close();
    demol();
    }

    //操作key
    public static void demol() {
    //创建Jedis对象
    Jedis jedis = new Jedis("192.168.31.65", 6379);

    jedis.set("name", "zhangsan");

    String name = jedis.get("name");
    System.out.println(name);

    jedis.mset("k1", "v1", "k2", "v2");
    List<String> mget = jedis.mget("k1", "k2");
    System.out.println(mget);

    jedis.close();
    /*
    Set<String> keys = jedis.keys("*");
    for(String key : keys) {
    System.out.println(key);
    }
    System.out.println(jedis.exists("k1"));
    System.out.println(jedis.ttl("k1"));
    System.out.println(jedis.);
    */
    }

    }

前面详细整理过的命令在Jedis都有其对应的方法.

实例:

  1. 输入手机号, 点击发送后生成6位数字, 2分钟有效
  2. 输入验证码 , 点击验证, 返回成功或失败
  3. 每个手机号每天只能输入三次
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    package com.wakabaka;

    import redis.clients.jedis.Jedis;

    import java.util.List;
    import java.util.Random;
    import java.util.Set;

    public class jedisDemo1 {

    public static void main(String[] args) {
    //模拟验证码发送

    verifyCode("12362171139");

    //getRedisCode("12362171139","146921");
    }

    //验证
    public static void getRedisCode(String phone, String code) {
    Jedis jedis = new Jedis("192.168.31.65", 6379);

    String codeKey = "VerifyCode" + phone + ":code";
    String redisCode = jedis.get(codeKey);
    //判断
    if(redisCode.equals(code)) {
    System.out.println("成功!");
    } else {
    System.out.println("失败!");
    }
    jedis.close();
    }

    //生成6位验证码
    public static String getCode() {

    Random random = new Random();
    String code = "";
    for(int i = 0 ; i < 6; i++) {
    int rand = random.nextInt(10);
    code += rand;
    }
    return code;
    }

    //让每个手机每天只能发送三次, 验证码放到redis中, 设置过期时间
    public static void verifyCode(String phone) {
    //连接redis
    Jedis jedis = new Jedis("192.168.31.65", 6379);

    //拼接key
    //手机发送次数key
    String countKey = "VerifyCode" + phone + ":count";

    //验证码key
    String codeKey = "VerifyCode" + phone + ":code";

    //每个手机每天只能发送三次
    String count = jedis.get(countKey);
    if(count == null) {
    //第一次发送
    //设置发送次数为1
    jedis.setex(countKey, 24*60*60, "1");
    } else if(Integer.parseInt(count) <= 2) {
    //发送次数+1
    jedis.incr(countKey);
    } else if(Integer.parseInt(count) > 2) {
    System.out.println("发送次数已达上线");
    jedis.close();
    }

    //发送的验证码放到redis中
    String vcode = getCode();
    jedis.setex(codeKey, 120, vcode);
    jedis.close();
    }
    }