redis 实现消息队列
- 使用list数据类型
通过操作ListOperations.rightPush(key, value),ListOperations.leftPop(key) or ListOperations.leftPush(key, value),ListOperations.rightPop(key)实现
测试
@Component
public class TimeTask {
private Logger log = LoggerFactory.getLogger(TimeTask.class);
@Autowired
RestTemplate restTemplate;
@Autowired
RedisUtil redisUtil;
@Scheduled(cron = "1/30 * * * * ?")
public void timeTask1(){
for (int i = 0; i < 10; i++) {
boolean flag = redisUtil.lSet("list:test", new Admin(i,null,null));
System.out.println("flag :" + flag );
}
Object obj = null;
for (int i = 0; i < 10; i++) {
obj = redisUtil.lget("list:test");
System.out.println("obj :"+ obj);
}
}
封装redis工具类
@Slf4j
@Component
public class RedisUtil {
@Autowired
private RedisTemplate redisTemplate;
/**
* 将list放入缓存
* @param key 键
* @param value 值
* @return
*/
public boolean lSet(String key, Object value) {
try {
redisTemplate.opsForList().rightPush(key, value);
return true;
} catch (Exception e) {
e.pri