redis jedis应用


package com.xzit.test;

import lombok.extern.slf4j.Slf4j;
import redis.clients.jedis.Jedis;

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

//1.使用jedis完成元旦年会抽奖系统(参考第二天案例)
@Slf4j(topic = "c.Reward")
public class Reward {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("192.168.44.4",6379);
        //s_add(jedis,"cj001", "user:1001", "user:1002", "user:1003", "user:1004");
        s_pop(jedis,"cj001",1);
    }
    public static void s_add(Jedis jedis,String key,String...members){
        jedis.sadd(key,members);
    }
    public static void s_pop(Jedis jedis,String key,int count){
        Set spop = jedis.spop(key, count);
        spop.forEach(c->log.debug(c));
    }
}
package com.xzit.test;

import lombok.extern.slf4j.Slf4j;
import redis.clients.jedis.Jedis;

import java.util.List;

//2.使用jedis完成微博热搜排名,有一次搜索,分数加10分,并按分数权重显示排名
@Slf4j(topic = "c.Search")
public class Search {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("192.168.44.4",6379);
        //z_add(jedis,"k1",100,"乌克兰战争");
        //z_add(jedis,"k1",110,"王思聪出轨");
        //z_add(jedis,"k1",120,"神州十四号发射");
        z_rangeByScore(jedis,"k1",1000,0);
        //z_incrby(jedis,"k1",10,"乌克兰战争");
    }
    public static void z_add(Jedis jedis,String key,double score,String member){
        jedis.zadd(key,score,member);
    }
    public static void z_rangeByScore(Jedis jedis,String key,long start,long stop){
        List list = jedis.zrevrangeByScore(key, start, stop);
        list.forEach(System.out::println);
    }
    public static void z_incrby(Jedis jedis,String key,double score,String member){
        jedis.zincrby(key,score,member);
    }
}
package com.xzit.test;

import lombok.extern.slf4j.Slf4j;
import redis.clients.jedis.Jedis;

//3.使用jedis完成用户登录系统,如果3分钟内,失败三次,则要求30分钟后才可以再次登录
@Slf4j(topic = "c.TestLogin")
public class TestLogin {
    public static void main(String[] args) {
        Jedis jedis = new Jedis("192.168.44.4",6379);
        login(jedis,"zengyu","1234");
    }
    public static void login(Jedis jedis,String userAccount,String userPassword){
        String count_key="v:"+userAccount+":count";         //收到一次用户名视为登录一次,统计登录次数的key
        String s=jedis.get(count_key);
        String verifyAccount=jedis.hget("user:001","userName");
        String verifyPassword=jedis.hget("user:001","userPassword");
        if (userAccount.equals(verifyAccount)&&userPassword.equals(verifyPassword)){
            log.debug("登录成功");
        }else if (s==null){
            //如果没有
            jedis.setex(count_key,1800,"1");
            log.debug("登录失败");
        }
        else if (Integer.parseInt(s)<3){//如果登录尝试不足3次,每登录1次,记数增加1
            jedis.incr(count_key);
            log.debug("登录失败"+Integer.parseInt(s)+"次,超过3次将锁定30分钟");
        }else {
            log.debug("已失败3次,30分钟后再试");
            jedis.close();
            return;
        }
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<configuration
        xmlns="http://ch.qos.logback/xml/ns/logback"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://ch.qos.logback/xml/ns/logback logback.xsd">
    class="ch.qos.logback.core.ConsoleAppender">
        
            %date{HH:mm:ss.SSS} %c [%t] - %m%n
        
    
    
        
    
    
        
    
<?xml version="1.0" encoding="UTF-8"?>

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    4.0.0

    org.example
    jedis_demo
    1.0-SNAPSHOT

    
        11
        11
    
    
        
            org.projectlombok
            lombok
            1.18.22
        
        
            ch.qos.logback
            logback-classic
            1.2.7
        
        
            redis.clients
            jedis
            4.0.1