当前位置:网站首页>Jedis操作Redis
Jedis操作Redis
2022-07-22 22:28:00 【神烦狗闯入了你的博客】
Jedis操作Redis
1. 引入依赖
这里以3.2.0版本为例:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.2.0</version>
</dependency>
2. Jedis基本操作
2.1 测试连接
如果Redis安装在云服务器中,注意配置服务器的防护墙安全组。
public static void main(String[] args) {
Jedis jedis = new Jedis("你的redis所在服务器的IP地址", 6379);
// 如果你的Redis设置了密码,执行这步
jedis.auth("你的redis密码");
String ping = jedis.ping();
System.out.println(ping);
jedis.close();
}
控制台打印:
PONG
说明连接成功。
2.2 操作Redis
Jedis封装了许多API可以用来对Redis进行操作,接下来是操作演示。
操作Redis的相关的命令在Jedis中都有与其对应的方法。
- 操作String类型
@Test
public void testString() {
String set = jedis.set("key1", "v1");
System.out.println(set);
String key1 = jedis.get("key1");
System.out.println(key1);
jedis.close();
}
控制台打印:
OK
v1
- 操作List列表
@Test
public void testList() {
jedis.lpush("list1", "v1", "v2", "v3");
List<String> list = jedis.lrange("list1", 0, -1);
list.forEach(System.out::println);
jedis.close();
}
控制台打印:
v3
v2
v1
- 操作Set集合
@Test
public void testSet() {
Long sadd = jedis.sadd("set1", "tom", "jerry", "jack");
Set<String> set = jedis.smembers("set1");
System.out.println(set);
jedis.close();
}
控制台打印:
[tom, jack, jerry]
- 操作Hash
@Test
public void testHash() {
Map<String, String> map = new HashMap<>();
map.put("id", "1");
map.put("name", "Tom");
map.put("age", "18");
jedis.hset("map1", map);
String id = jedis.hget("map1", "id");
String name = jedis.hget("map1", "name");
String age = jedis.hget("map1", "age");
System.out.println("id = " + id);
System.out.println("name = " + name);
System.out.println("age = " + age);
jedis.close();
}
控制台打印:
id = 1
name = Tom
age = 18
- 操作ZSet有序集合
@Test
public void testZSet() {
jedis.zadd("zset1", 100, "java");
jedis.zadd("zset1", 50, "c++");
jedis.zadd("zset1", 25, "php");
Set<String> set = jedis.zrange("zset1", 0, -1);
System.out.println(set);
jedis.close();
}
控制台打印:
[php, c++, java]
3. 模拟验证码案例
业务要求:
1、输入手机号,点击发送后随机生成6位数字码,2分钟有效
2、输入验证码,点击验证,返回成功或失败
3、每个手机号每天只能输入3次
代码实现:
package com.jc;
import redis.clients.jedis.Jedis;
import java.util.UUID;
public class PhoneCodeTest {
private static Jedis jedis = new Jedis("180.76.116.222", 6379);
private static final int TIMEOUT_CODE = 60 * 2;
private static final int TIMEOUT_PHONE = 60 * 60 * 24;
static {
jedis.auth("576a6aWjj");
}
// 随机生成验证码
public static String getCode() {
String code = UUID.randomUUID().toString().replace("-", "").substring(0, 6);
return code;
}
// 发送验证码
public static void verifyCode(String phone, String code) {
String countKey = "VerifyCode" + phone + ":count";
String codeKey = "VerifyCode" + phone + ":code";
String count = jedis.get(countKey);
if (count == null) {
jedis.setex(countKey, TIMEOUT_PHONE, "1");
} else if (Long.parseLong(count) < 3) {
jedis.incr(countKey);
} else {
System.out.println("今天已经发送了3次验证码!");
jedis.close();
return;
}
// 设置验证码
jedis.setex(codeKey, TIMEOUT_CODE, code);
}
public static void checkVerifyCode(String phone, String code) {
String countKey = "VerifyCode" + phone + ":code";
String redisCode = jedis.get(countKey);
if (code.equals(redisCode)) {
System.out.println("成功!");
} else {
System.out.println("失败!");
}
}
public static void main(String[] args) {
verifyCode("123123123", getCode());
// checkVerifyCode("123123123", "b9dd1c");
jedis.close();
}
}
边栏推荐
猜你喜欢

直播预告 | 开源安全治理模型和工具直播研讨会

Building a sylixos environment in VMWare

MPLS VPN 跨域-optionB

Mysql A left(right) join B on A.id=B. ID and a.age=1 and a left (right) join b on a.id=b id where A.age=1

Worthington:来自酵母的己糖激酶的特性及其它参数说明

组蛋白研究丨Worthington小牛胸腺组蛋白的特征及文献参考

Worthington纯化酶制剂助力新生儿心肌细胞分离系统研究

MSG | 开源与结缘,昇思携梦前行!

matlab simulink 磷酸铁锂电池仿真

Worthington羟基类固醇脱氢酶技术说明及测定方案
随机推荐
直播预告 | 开源安全治理模型和工具直播研讨会
Worthington纯化酶制剂助力新生儿心肌细胞分离系统研究
Change this point to understand
Binary tree (learning daily)
如何高效安装MindSpore的GPU版本
方正中期是什么级别的期货公司?开户安全可靠吗?
Spark疑难杂症排查-Premature EOF: no length prefix available
Topic domain model
张宇高数30讲总结
Can the formatted data of the USB flash disk be recovered? How to recover the formatted data of the USB flash disk
批量可视化目标检测标注框——YOLO格式数据集
Can PHP split arrays
Building a sylixos environment in VMWare
Spark troubleshooting -precondition eof: no length prefix available
组蛋白研究丨Worthington小牛胸腺组蛋白的特征及文献参考
appendToFile追加失败
[reading notes > statistics] 12-01 construction of confidence interval - Introduction to the concept of confidence interval
主控芯片CSU18M92开发智能体重秤方案
Jmeter查看结果树之查看响应的13种详解方法!
There are 13 detailed methods for JMeter to view the response of the result tree!