1. 程式人生 > 其它 >Jedis讀寫redis資料

Jedis讀寫redis資料

首先新增依賴

<dependencies>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.6.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.25</version>
<scope>compile</scope>

</dependency>
</dependencies>

開啟Redis redis-server服務端 redis-cli客戶端
建立一個類
public class Service {

private String id;
private Integer num;
public Service(String id,int num){
this.id=id;
this.num=num;
}
//控制單元
public void service() {
Jedis jedis = new Jedis("127.0.0.1", 6379);
String value = jedis.get("compid" + id);
//判斷該值是否存在
try {

if (value == null) {
//不存在,建立該值 seconds 設定秒速,
// Long.MAX_VALUE-10總共控制幾次,就減幾,20秒最多呼叫10次
jedis.setex("compid" + id, 5, Long.MAX_VALUE - num + "");
} else {
//存在,自增,呼叫業務
//long 檢視他是第幾次執行
Long val= jedis.incr("compid" + id);
//調業務
//Long.MAX_VALUE-val 最大值減
business(id,num-(Long.MAX_VALUE-val));
}
}catch(JedisDataException e){
System.out.println("使用已經到達次數上限,請升級會員級別");
return;
}finally{
jedis.close();
}
}
//業務操作
public void business (String id,Long val) {
System.out.println("使用者"+id+"業務操作執行"+val+"次");
}
}

class MyThread extends Thread {
Service sc;
public MyThread(String id,int num){
sc=new Service(id,num);
}
public void run() {
while (true) {
sc.service();
try {
//休眠1000毫秒
Thread.sleep(300L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class Main {
public static void main(String[] args) {
//執行多少次
MyThread mt1 = new MyThread("初級使用者",10);
MyThread mt2 = new MyThread("高階使用者",30);
mt1.start();
mt2.start();
}
}