• JedisRedis6客户端工具——Jedis


    目录

    一、在idea中使用Jedis操作Redis6

    二、Jedis实例(手机验证码)


    一、在idea中使用Jedis操作Redis6

    前提:

            关闭虚拟机中的防火墙。

    systemctl stop/disable firewalld.service

            在redis.conf文件中注释掉bind 127.0.0.1 ,然后 protected-mode no

            修改文件方法具体见:Redis——安装及使用_朂後 哋箹萣的博客-CSDN博客

            切记,修改完配置文件后一定要杀死进程,然后重新启动服务。 

    1.在idea中创建项目。

     2.引入Jedis所需要的jar包

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

    3.编写测试代码,并且运行

    1. public class JedisDemo1 {
    2. public static void main(String[] args) {
    3. //创建Jedis对象
    4. Jedis jedis = new Jedis("192.168.10.102",6379);
    5. //测试
    6. String value = jedis.ping();
    7. System.out.println(value);
    8. }
    9. }

    二、Jedis实例(手机验证码)

    项目需求:

            输入手机号,点击发送后随机生成6位数字码,2分钟有效。

            输入验证码,点击验证,返回成功或失败

            每个手机号每天只能输入3次

    在上面项目的基础上新创建一个类:PhoneCode,并且进行编辑。

    1. package com.atguigu.jedis;
    2. import redis.clients.jedis.Jedis;
    3. import java.util.Random;
    4. public class PhoneCode {
    5. public static void main(String[] args) {
    6. //模拟验证码的发送
    7. verifyCode("18406586203");
    8. // getRedisCode("18406586203","444444");
    9. }
    10. //1.生成6位数字验证码
    11. public static String getCode() {
    12. Random random = new Random();
    13. String code = "";
    14. for(int i=0;i<6;i++) {
    15. int rand = random.nextInt(10);
    16. code += rand;
    17. }
    18. return code;
    19. }
    20. //2.每个手机每天只能发送三次,验证码放到redis中,设置过期时间
    21. public static void verifyCode(String phone) {
    22. //创建Jedis对象
    23. Jedis jedis = new Jedis("192.168.10.102",6379);
    24. //拼接key
    25. //手机发送次数key
    26. String countKey = "verifyCode" + phone + ":count";
    27. //验证码key
    28. String codeKey = "verifyCode" + phone + ":code";
    29. //每个手机每天只能发送三次
    30. String count = jedis.get(countKey);
    31. if(count == null) {
    32. //没有发送次数,第一次发送
    33. //设置发送次数为1
    34. jedis.setex(countKey,24*60*60,"1");
    35. }else if (Integer.parseInt(count) <= 2){
    36. //发送次数+1
    37. jedis.incr(countKey);
    38. }else if(Integer.parseInt(count) > 2){
    39. //发送了三次,不能再发送
    40. System.out.println("今天的发送次数已经超过三次");
    41. jedis.close();
    42. return;
    43. }
    44. //发送的验证码放到redis里面
    45. String vcode = getCode();
    46. jedis.setex(codeKey,120,vcode);
    47. jedis.close();
    48. }
    49. //3.验证码校验
    50. public static void getRedisCode(String phone,String code) {
    51. //从redis获取验证码
    52. //创建Jedis对象
    53. Jedis jedis = new Jedis("192.168.10.102",6379);
    54. String codeKey = "verifyCode" + phone + ":code";
    55. String redisCode = jedis.get(codeKey);
    56. //判断
    57. if(redisCode != null && redisCode.equals(code)) {
    58. System.out.println("成功");
    59. }else {
    60. System.out.println("失败");
    61. }
    62. jedis.close();
    63. }
    64. }

            当进行模拟验证码发送时,在redis中进行查看。

             把redis中存储的验证码在idea中进行验证。

             当输入错误的验证码时,提示失败。

             当发送一个手机号发送三次验证码后,会提示相关信息。

             redis中数据存储情况。

  • 相关阅读:
    国庆福利!384种故宫美色!Matlab中国风配色工具ColorPM
    LINQ 查询
    HT513 I2S输入的音频功放的应用场景
    互联网摸鱼日报(2022-11-21)
    哈希表简介
    一文整理深度学习【CT原理、成像及CT重建知识汇总】
    安装JoySSL的SSL证书有什么优势?
    python配置环境心得
    Java项目:SSM餐厅点餐收银管理系统
    PostgreSQL的学习心得和知识总结(一百四十八)|查看 PostgreSQL 17 中的新内置排序规则提供程序
  • 原文地址:https://blog.csdn.net/z1171127310/article/details/126460473