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>