Redis笔记(二)


Jedsi操作Redis

常用操作

jedis所需的依赖

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

连接Redis的注意事项

禁用Linux的防火墙:Linux(CentOS7)里执行命令

systemctl stop/disable firewalld.service

redis.conf中注释掉bind 127.0.0.1 ,然后 protected-mode no
测试程序

public class JedisDemo1 {
public static void main(String[] args) {
    //创建Jedis对象
    Jedis jedis = new Jedis("192.168.242.110", 6379);
    //测试
    String ping = jedis.ping();
    System.out.println(ping);
}
}

测试相关数据类型

操作Key和String
//操作key string
@Test
public void demo1() {
    //创建Jedis对象
    Jedis jedis = new Jedis("192.168.242.110", 6379);        //添加
    jedis.set("name","lucy");

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

//设置多个key-value
jedis.mset("k1","v1","k2","v2");
List<String> mget = jedis.mget("k1", "k2");
System.out.println(mget);

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

}
操作list
//操作list
@Test
public void demo2() {
    //创建Jedis对象
    Jedis jedis = new Jedis("192.168.242.110", 6379);
    jedis.lpush("key1","lucy","mary","jack");
    List<String> values = jedis.lrange("key1", 0, -1);
    System.out.println(values);
    jedis.close();
}
操作set
//操作set
@Test
public void demo3() {
    //创建Jedis对象
    Jedis jedis = new Jedis("192.168.242.110", 6379);
    jedis.sadd("names","lucy");
    jedis.sadd("names","mary");

    Set<String> names = jedis.smembers("names");
    System.out.println(names);
    jedis.close();

}
操作hash
//操作hash
@Test
public void demo4() {
    //创建Jedis对象
    Jedis jedis = new Jedis("192.168.242.110", 6379);
    jedis.hset("users","age","20");
    String hget = jedis.hget("users", "age");
    System.out.println(hget);
    jedis.close();
}
操作zset
//操作zset
@Test
public void demo5() {
    //创建Jedis对象
    Jedis jedis = new Jedis("192.168.242.110", 6379);
    jedis.zadd("china",100d,"shanghai");

    Set<String> china = jedis.zrange("china", 0, -1);
    System.out.println(china);
    
    jedis.close();

}

小实战(手机验证码)

要求:

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

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

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


public class PhoneCode {
public static void main(String[] args) {
    //模拟验证码发送
    verifyCode("15970387607");

//模拟验证码校验
//getRedisCode("15970387607","698264");

}

/**

 * 1、生成六位数字验证码
 * @return
   */
   public static String getCode(){
   Random random = new Random();
   String code = "";
   for(int i = 0;i<6;i++){
       int index = random.nextInt(10);
       code += index;
   }
   return code;
   }

/**

 * 2、每个手机每天只能发送三次,验证码放到redis中,设置过期时间120

 * @param phone
   */
   public static void verifyCode(String phone) {
   //创建Jedis对象 连接Redis
   Jedis jedis = new Jedis("192.168.242.110", 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{
       System.out.println("今天发送次数已经超过三次");
       jedis.close();
       return;
   }

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

}

public static void getRedisCode(String phone,String code) {
    //从redis获取验证码
    Jedis jedis = new Jedis("192.168.242.110", 6379);
    //验证码key
    String codeKey = "VerifyCode"+phone+":code";
    String redisCode = jedis.get(codeKey);
    //判断
    if(redisCode.equals(code)) {
        System.out.println("成功");
    }else {
        System.out.println("失败");
    }
    jedis.close();
}

}

springboot整合Redis

详情见:

https://blog.csdn.net/qq_41997592/article/details/122866809?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3-122866809-blog-109153487.pc_relevant_downloadblacklistv1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-3-122866809-blog-109153487.pc_relevant_downloadblacklistv1&utm_relevant_index=5


文章作者: zenghao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 zenghao !
评论
  目录