通过Jedis连接redis
1. 引入依赖,测试是否成功
- 创建maven新项目,并打开pom.xml
| <dependency> |
| <groupId>redis.clients</groupId> |
| <artifactId>jedis</artifactId> |
| <version>4.2.3</version> |
| </dependency> |
| 1. 如果出现包没有找到的问题,对前面笔记提到的 [maven插件配置](https://www.cnblogs.com/sleepyheadLK/p/16375963.html) |
| 2. 重新更新pom.xml即可引入依赖 |
- 进行测试
| @Test |
| public void test(){ |
| |
| Jedis jedis = new Jedis("127.0.0.1", 6379); |
| String ping = jedis.ping(); |
| System.out.println(ping); |
| } |
- 如果出现以下错误
| SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". |
| SLF4J: Defaulting to no-operation (NOP) logger implementation |
| SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. |
- pom.xml引入
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-nop</artifactId> |
| <version>1.7.36</version> |
| </dependency> |
-
更新pom.xml
-
如果是远程连接失败
- redis.conf文件中的保护设置是否关闭
- 系统的防火墙是否关闭
2. 操作key
| @Test |
| public void test1(){ |
| |
| Jedis jedis = new Jedis("127.0.0.1", 6379); |
| |
| Set<String> keys = jedis.keys("*"); |
| keys.forEach(i-> System.out.println(i)); |
| |
| jedis.set("name","lucy"); |
| |
| String name = jedis.get("name"); |
| System.out.println(name); |
| |
| System.out.println(jedis.exists("name")); |
| |
| jedis.mset("name","jack","name2","rose"); |
| } |
3. 操作数据类型
| |
| Jedis jedis = new Jedis("127.0.0.1", 6379); |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| jedis.zadd("zset1", new HashMap<String,Double>(){ |
| { |
| put("jack",12.0); |
| put("rose",23.0); |
| put("boy",7d); |
| } |
| }); |
| System.out.println(jedis.zrange("zset1",0,-1)); |
| jedis.close(); |
| } |
| |
4. 验证码测试
- 要求:

- 功能设计
| |
| @Test |
| public void test(){ |
| verifyCode("112332"); |
| } |
| |
| @Test |
| public void test2(){ |
| getRedisCode("112332","374848"); |
| } |
| |
| public static String getCode(){ |
| Random random = new Random(); |
| return String.format("%06d",random.nextInt(1000000)); |
| } |
| |
| public static void verifyCode(String phone){ |
| Jedis jedis = new Jedis("127.0.0.1", 6379); |
| String countKey = "VerifyCode"+phone+":count"; |
| String codeKey = "VerifyCode"+phone+":code"; |
| |
| String s = jedis.get(countKey); |
| |
| if(s==null){ |
| jedis.setex(countKey,24*60*60,"1"); |
| }else if(Integer.valueOf(s)<3){ |
| jedis.incr(countKey); |
| }else{ |
| System.out.println("超出发送次数"); |
| jedis.close(); |
| return; |
| } |
| |
| |
| String vcode = getCode(); |
| jedis.setex(codeKey,120,vcode); |
| jedis.close(); |
| } |
| |
| public static void getRedisCode(String phone,String code){ |
| Jedis jedis = new Jedis("127.0.0.1", 6379); |
| String codeKey = "VerifyCode"+phone+":code"; |
| String s = jedis.get(codeKey); |
| if(code.equals(s)){ |
| System.out.println("成功"); |
| }else{ |
| System.out.println("失败"); |
| } |
| jedis.close(); |
| } |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性