Redis的get set 使用,共享参数提高系统的效率
最近在做一个公交项目,通过redis的订阅监听接收实时定位信息,将信息处理并用websocket发送给前端,
但报站信息是通过算法计算出来的,所以我们将共用的信息存放到redis,各取所需。
realtimePosition
是订阅的主题名称
receiveMessage
是定语的方法名称
//redis的监听配置方法
@Configuration
public class RedisSubListenerConfig {
@Bean
RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory,
MessageListenerAdapter listenerAdapter) {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(connectionFactory);
container.addMessageListener(listenerAdapter, new PatternTopic("realtimePosition"));
return container;
}
@Bean
MessageListenerAdapter listenerAdapter(RedisReceiver redisReceiver) {
/*方法名与RedisReceiver中用于回调的方法名保持一致 */
return new MessageListenerAdapter(redisReceiver, "receiveMessage");
}
}
//收到消息进行逻辑处理
@Component
public class RedisReceiver{
public void receiveMessage(String message) throws Exception
{
LOGGER.info("订阅接收redis的消息:" + message);
//此处对接收到的消息进行逻辑处理
}
}
//定义个每个字符的边界
public String get(final String key,int startOffset, int endOffset) {
String result = null;
ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
result = operations.get(key, startOffset, endOffset);
return result;
}
//通过set值,再get
public boolean set(final String key, Object value, int offset) {
boolean result = false;
try {
ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
operations.set(key, value, offset);
result = true;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
通过不断地修改,版本总算上线了,希望我的作品大家喜欢。