package cn.bugstack.middleware.test;import com.alibaba.fastjson.JSON;import org.junit.Test;import org.junit.runner.RunWith;import org.redisson.api.RBlockingQueue;import org.redisson.api.RBucket;import org.redisson.api.RDelayedQueue;import org.redisson.api.RedissonClient;import org.redisson.config.Config;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;import javax.annotation.Resource;import java.util.concurrent.TimeUnit;@RunWith(SpringRunner.class)@SpringBootTestpublic class ApiTest { @Resource private RedissonClient redissonClient; @Test public void test() { // 设置字符串 RBucket<String> keyObj = redissonClient.getBucket("user"); keyObj.set("小傅哥"); System.out.println(keyObj.get()); } @Test public void test_delay_queue() throws InterruptedException { RBlockingQueue<Object> blockingQueue = redissonClient.getBlockingQueue("TASK"); RDelayedQueue<Object> delayedQueue = redissonClient.getDelayedQueue(blockingQueue); new Thread(() -> { try { while (true){ Object take = blockingQueue.take(); System.out.println(take); Thread.sleep(10); } } catch (InterruptedException e) { e.printStackTrace(); } }).start(); int i = 0; while (true){ delayedQueue.offerAsync("测试" + ++i, 100L, TimeUnit.MILLISECONDS); Thread.sleep(1000L); } }}
package cn.bugstack.middleware.test;import org.redisson.Redisson;import org.redisson.api.RedissonClient;import org.redisson.config.Config;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.autoconfigure.data.redis.RedisProperties;import org.springframework.boot.context.properties.EnableConfigurationProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class RedissonConfig { @Autowired private RedisProperties redisProperties; @Bean public RedissonClient redissonClient() { Config config = new Config(); String redisUrl = String.format("redis://%s:%s", redisProperties.getHost() + "", redisProperties.getPort() + ""); config.useSingleServer().setAddress(redisUrl).setPassword(redisProperties.getPassword()); config.useSingleServer().setDatabase(3); return Redisson.create(config); }}© 2022 GitHub, Inc.TermsPrivacy
package cn.bugstack.middleware.test;import java.io.Serializable;/** * @author xiang xiaocheng * @version 1.0 * @site chsoul.cnblogs.com * @date 2021/2/8 9:25 */public class TaskDTO<T> implements Serializable { private String taskName; private T taskBody; public String getTaskName() { return taskName; } public void setTaskName(String taskName) { this.taskName = taskName; } public T getTaskBody() { return taskBody; } public void setTaskBody(T taskBody) { this.taskBody = taskBody; }}
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/org.redisson/redisson --> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.16.8</version> </dependency> <!-- https://mvnrepository.com/artifact/org.redisson/redisson-spring-boot-starter --> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-boot-starter</artifactId> <version>3.16.8</version> </dependency>