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<String> 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<String> 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">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%date{HH:mm:ss.SSS} %c [%t] - %m%n</pattern>
</encoder>
</appender>
<logger name="c" level="debug" additivity="false">
<appender-ref ref="STDOUT"/>
</logger>
<root level="ERROR">
<appender-ref ref="STDOUT"/>
</root>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
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">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>jedis_demo</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.7</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.0.1</version>
</dependency>
</dependencies>
</project>