From 66ab09396cecb4caf3f1b6803fb97792132fffc6 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 04 四月 2023 09:18:33 +0800
Subject: [PATCH] Merge branch 'wvp-28181-2.0' into main-dev
---
src/main/java/com/genersoft/iot/vmp/conf/redis/RedisMsgListenConfig.java | 68 +
src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java | 4
src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java | 8
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/RecordInfoResponseMessageHandler.java | 15
src/main/java/com/genersoft/iot/vmp/vmanager/bean/StreamContent.java | 3
src/main/java/com/genersoft/iot/vmp/conf/redis/RedisConfig.java | 56 -
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderPlarformProvider.java | 10
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java | 9
src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java | 883 --------------------
src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMobilePositionMapper.java | 11
src/main/java/com/genersoft/iot/vmp/conf/security/WebSecurityConfig.java | 33
src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java | 28
src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java | 269 +++---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java | 20
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/response/impl/RegisterResponseProcessor.java | 2
src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil2.java | 899 +++++++++++++++++++++
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java | 2
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java | 79
src/main/java/com/genersoft/iot/vmp/utils/JsonUtil.java | 8
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java | 28
src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGbPlayMsgListener.java | 32
21 files changed, 1,278 insertions(+), 1,189 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/conf/redis/RedisConfig.java b/src/main/java/com/genersoft/iot/vmp/conf/redis/RedisConfig.java
index ab90ac6..836da67 100644
--- a/src/main/java/com/genersoft/iot/vmp/conf/redis/RedisConfig.java
+++ b/src/main/java/com/genersoft/iot/vmp/conf/redis/RedisConfig.java
@@ -6,53 +6,32 @@
import com.genersoft.iot.vmp.utils.redis.FastJsonRedisSerializer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CachingConfigurerSupport;
+import com.alibaba.fastjson2.support.spring.data.redis.GenericFastJsonRedisSerializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.data.redis.listener.PatternTopic;
-import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
/**
- * @description:Redis涓棿浠堕厤缃被锛屼娇鐢╯pring-data-redis闆嗘垚锛岃嚜鍔ㄤ粠application.yml涓姞杞絩edis閰嶇疆
- * @author: swwheihei
- * @date: 2019骞�5鏈�30鏃� 涓婂崍10:58:25
+ * Redis涓棿浠堕厤缃被锛屼娇鐢╯pring-data-redis闆嗘垚锛岃嚜鍔ㄤ粠application.yml涓姞杞絩edis閰嶇疆
+ * swwheihei
+ * 2019骞�5鏈�30鏃� 涓婂崍10:58:25
*
*/
@Configuration
@Order(value=1)
-public class RedisConfig extends CachingConfigurerSupport {
+public class RedisConfig {
- @Autowired
- private RedisGpsMsgListener redisGPSMsgListener;
-
- @Autowired
- private RedisAlarmMsgListener redisAlarmMsgListener;
-
- @Autowired
- private RedisStreamMsgListener redisStreamMsgListener;
-
- @Autowired
- private RedisGbPlayMsgListener redisGbPlayMsgListener;
-
- @Autowired
- private RedisPushStreamStatusMsgListener redisPushStreamStatusMsgListener;
-
- @Autowired
- private RedisPushStreamStatusListMsgListener redisPushStreamListMsgListener;
-
- @Autowired
- private RedisPushStreamResponseListener redisPushStreamResponseListener;
@Bean
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
// 浣跨敤fastJson搴忓垪鍖�
- FastJsonRedisSerializer fastJsonRedisSerializer = new FastJsonRedisSerializer(Object.class);
+ GenericFastJsonRedisSerializer fastJsonRedisSerializer = new GenericFastJsonRedisSerializer();
// value鍊肩殑搴忓垪鍖栭噰鐢╢astJsonRedisSerializer
redisTemplate.setValueSerializer(fastJsonRedisSerializer);
redisTemplate.setHashValueSerializer(fastJsonRedisSerializer);
@@ -63,27 +42,4 @@
redisTemplate.setConnectionFactory(redisConnectionFactory);
return redisTemplate;
}
-
-
- /**
- * redis娑堟伅鐩戝惉鍣ㄥ鍣� 鍙互娣诲姞澶氫釜鐩戝惉涓嶅悓璇濋鐨剅edis鐩戝惉鍣紝鍙渶瑕佹妸娑堟伅鐩戝惉鍣ㄥ拰鐩稿簲鐨勬秷鎭闃呭鐞嗗櫒缁戝畾锛岃娑堟伅鐩戝惉鍣�
- * 閫氳繃鍙嶅皠鎶�鏈皟鐢ㄦ秷鎭闃呭鐞嗗櫒鐨勭浉鍏虫柟娉曡繘琛屼竴浜涗笟鍔″鐞�
- *
- * @param connectionFactory
- * @return
- */
- @Bean
- RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
-
- RedisMessageListenerContainer container = new RedisMessageListenerContainer();
- container.setConnectionFactory(connectionFactory);
- container.addMessageListener(redisGPSMsgListener, new PatternTopic(VideoManagerConstants.VM_MSG_GPS));
- container.addMessageListener(redisAlarmMsgListener, new PatternTopic(VideoManagerConstants.VM_MSG_SUBSCRIBE_ALARM_RECEIVE));
- container.addMessageListener(redisStreamMsgListener, new PatternTopic(VideoManagerConstants.WVP_MSG_STREAM_CHANGE_PREFIX + "PUSH"));
- container.addMessageListener(redisGbPlayMsgListener, new PatternTopic(RedisGbPlayMsgListener.WVP_PUSH_STREAM_KEY));
- container.addMessageListener(redisPushStreamStatusMsgListener, new PatternTopic(VideoManagerConstants.VM_MSG_PUSH_STREAM_STATUS_CHANGE));
- container.addMessageListener(redisPushStreamListMsgListener, new PatternTopic(VideoManagerConstants.VM_MSG_PUSH_STREAM_LIST_CHANGE));
- container.addMessageListener(redisPushStreamResponseListener, new PatternTopic(VideoManagerConstants.VM_MSG_STREAM_PUSH_RESPONSE));
- return container;
- }
}
diff --git a/src/main/java/com/genersoft/iot/vmp/conf/redis/RedisMsgListenConfig.java b/src/main/java/com/genersoft/iot/vmp/conf/redis/RedisMsgListenConfig.java
new file mode 100644
index 0000000..9f48426
--- /dev/null
+++ b/src/main/java/com/genersoft/iot/vmp/conf/redis/RedisMsgListenConfig.java
@@ -0,0 +1,68 @@
+package com.genersoft.iot.vmp.conf.redis;
+
+
+import com.genersoft.iot.vmp.common.VideoManagerConstants;
+import com.genersoft.iot.vmp.service.redisMsg.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.annotation.Order;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.listener.PatternTopic;
+import org.springframework.data.redis.listener.RedisMessageListenerContainer;
+
+
+/**
+ * @description:Redis涓棿浠堕厤缃被锛屼娇鐢╯pring-data-redis闆嗘垚锛岃嚜鍔ㄤ粠application.yml涓姞杞絩edis閰嶇疆
+ * @author: swwheihei
+ * @date: 2019骞�5鏈�30鏃� 涓婂崍10:58:25
+ *
+ */
+@Configuration
+@Order(value=1)
+public class RedisMsgListenConfig {
+
+ @Autowired
+ private RedisGpsMsgListener redisGPSMsgListener;
+
+ @Autowired
+ private RedisAlarmMsgListener redisAlarmMsgListener;
+
+ @Autowired
+ private RedisStreamMsgListener redisStreamMsgListener;
+
+ @Autowired
+ private RedisGbPlayMsgListener redisGbPlayMsgListener;
+
+ @Autowired
+ private RedisPushStreamStatusMsgListener redisPushStreamStatusMsgListener;
+
+ @Autowired
+ private RedisPushStreamStatusListMsgListener redisPushStreamListMsgListener;
+
+ @Autowired
+ private RedisPushStreamResponseListener redisPushStreamResponseListener;
+
+
+ /**
+ * redis娑堟伅鐩戝惉鍣ㄥ鍣� 鍙互娣诲姞澶氫釜鐩戝惉涓嶅悓璇濋鐨剅edis鐩戝惉鍣紝鍙渶瑕佹妸娑堟伅鐩戝惉鍣ㄥ拰鐩稿簲鐨勬秷鎭闃呭鐞嗗櫒缁戝畾锛岃娑堟伅鐩戝惉鍣�
+ * 閫氳繃鍙嶅皠鎶�鏈皟鐢ㄦ秷鎭闃呭鐞嗗櫒鐨勭浉鍏虫柟娉曡繘琛屼竴浜涗笟鍔″鐞�
+ *
+ * @param connectionFactory
+ * @return
+ */
+ @Bean
+ RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
+
+ RedisMessageListenerContainer container = new RedisMessageListenerContainer();
+ container.setConnectionFactory(connectionFactory);
+ container.addMessageListener(redisGPSMsgListener, new PatternTopic(VideoManagerConstants.VM_MSG_GPS));
+ container.addMessageListener(redisAlarmMsgListener, new PatternTopic(VideoManagerConstants.VM_MSG_SUBSCRIBE_ALARM_RECEIVE));
+ container.addMessageListener(redisStreamMsgListener, new PatternTopic(VideoManagerConstants.WVP_MSG_STREAM_CHANGE_PREFIX + "PUSH"));
+ container.addMessageListener(redisGbPlayMsgListener, new PatternTopic(RedisGbPlayMsgListener.WVP_PUSH_STREAM_KEY));
+ container.addMessageListener(redisPushStreamStatusMsgListener, new PatternTopic(VideoManagerConstants.VM_MSG_PUSH_STREAM_STATUS_CHANGE));
+ container.addMessageListener(redisPushStreamListMsgListener, new PatternTopic(VideoManagerConstants.VM_MSG_PUSH_STREAM_LIST_CHANGE));
+ container.addMessageListener(redisPushStreamResponseListener, new PatternTopic(VideoManagerConstants.VM_MSG_STREAM_PUSH_RESPONSE));
+ return container;
+ }
+}
diff --git a/src/main/java/com/genersoft/iot/vmp/conf/security/WebSecurityConfig.java b/src/main/java/com/genersoft/iot/vmp/conf/security/WebSecurityConfig.java
index a905e44..96ae6b9 100644
--- a/src/main/java/com/genersoft/iot/vmp/conf/security/WebSecurityConfig.java
+++ b/src/main/java/com/genersoft/iot/vmp/conf/security/WebSecurityConfig.java
@@ -72,22 +72,23 @@
**/
@Override
public void configure(WebSecurity web) {
-
- ArrayList<String> matchers = new ArrayList<>();
- matchers.add("/");
- matchers.add("/#/**");
- matchers.add("/static/**");
- matchers.add("/index.html");
- matchers.add("/doc.html");
- matchers.add("/webjars/**");
- matchers.add("/swagger-resources/**");
- matchers.add("/v3/api-docs/**");
- matchers.add("/js/**");
- matchers.add("/api/device/query/snap/**");
- matchers.add("/record_proxy/*/**");
- matchers.addAll(userSetting.getInterfaceAuthenticationExcludes());
- // 鍙互鐩存帴璁块棶鐨勯潤鎬佹暟鎹�
- web.ignoring().antMatchers(matchers.toArray(new String[0]));
+ if (userSetting.isInterfaceAuthentication()) {
+ ArrayList<String> matchers = new ArrayList<>();
+ matchers.add("/");
+ matchers.add("/#/**");
+ matchers.add("/static/**");
+ matchers.add("/index.html");
+ matchers.add("/doc.html");
+ matchers.add("/webjars/**");
+ matchers.add("/swagger-resources/**");
+ matchers.add("/v3/api-docs/**");
+ matchers.add("/js/**");
+ matchers.add("/api/device/query/snap/**");
+ matchers.add("/record_proxy/*/**");
+ matchers.addAll(userSetting.getInterfaceAuthenticationExcludes());
+ // 鍙互鐩存帴璁块棶鐨勯潤鎬佹暟鎹�
+ web.ignoring().antMatchers(matchers.toArray(new String[0]));
+ }
}
/**
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java b/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java
index fad84a6..e856faf 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/session/VideoStreamSessionManager.java
@@ -8,6 +8,7 @@
import com.genersoft.iot.vmp.utils.redis.RedisUtil;
import gov.nist.javax.sip.message.SIPResponse;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
@@ -15,15 +16,16 @@
import java.util.List;
/**
- * @description:瑙嗛娴乻ession绠$悊鍣紝绠$悊瑙嗛棰勮銆侀瑙堝洖鏀剧殑閫氫俊鍙ユ焺
- * @author: swwheihei
- * @date: 2020骞�5鏈�13鏃� 涓嬪崍4:03:02
+ * 瑙嗛娴乻ession绠$悊鍣紝绠$悊瑙嗛棰勮銆侀瑙堝洖鏀剧殑閫氫俊鍙ユ焺
*/
@Component
public class VideoStreamSessionManager {
@Autowired
private UserSetting userSetting;
+
+ @Autowired
+ private RedisTemplate<Object, Object> redisTemplate;
public enum SessionType {
play,
@@ -54,7 +56,7 @@
ssrcTransaction.setMediaServerId(mediaServerId);
ssrcTransaction.setType(type);
- RedisUtil.set(VideoManagerConstants.MEDIA_TRANSACTION_USED_PREFIX + userSetting.getServerId()
+ redisTemplate.opsForValue().set(VideoManagerConstants.MEDIA_TRANSACTION_USED_PREFIX + userSetting.getServerId()
+ "_" + deviceId + "_" + channelId + "_" + callId + "_" + stream, ssrcTransaction);
}
@@ -73,11 +75,11 @@
stream ="*";
}
String key = VideoManagerConstants.MEDIA_TRANSACTION_USED_PREFIX + userSetting.getServerId() + "_" + deviceId + "_" + channelId + "_" + callId+ "_" + stream;
- List<Object> scanResult = RedisUtil.scan(key);
+ List<Object> scanResult = RedisUtil.scan(redisTemplate, key);
if (scanResult.size() == 0) {
return null;
}
- return (SsrcTransaction)RedisUtil.get((String) scanResult.get(0));
+ return (SsrcTransaction)redisTemplate.opsForValue().get(scanResult.get(0));
}
public List<SsrcTransaction> getSsrcTransactionForAll(String deviceId, String channelId, String callId, String stream){
@@ -94,13 +96,13 @@
stream ="*";
}
String key = VideoManagerConstants.MEDIA_TRANSACTION_USED_PREFIX + userSetting.getServerId() + "_" + deviceId + "_" + channelId + "_" + callId+ "_" + stream;
- List<Object> scanResult = RedisUtil.scan(key);
+ List<Object> scanResult = RedisUtil.scan(redisTemplate, key);
if (scanResult.size() == 0) {
return null;
}
List<SsrcTransaction> result = new ArrayList<>();
for (Object keyObj : scanResult) {
- result.add((SsrcTransaction)RedisUtil.get((String) keyObj));
+ result.add((SsrcTransaction)redisTemplate.opsForValue().get(keyObj));
}
return result;
}
@@ -126,17 +128,17 @@
if (ssrcTransaction == null) {
return;
}
- RedisUtil.del(VideoManagerConstants.MEDIA_TRANSACTION_USED_PREFIX + userSetting.getServerId() + "_"
+ redisTemplate.delete(VideoManagerConstants.MEDIA_TRANSACTION_USED_PREFIX + userSetting.getServerId() + "_"
+ deviceId + "_" + channelId + "_" + ssrcTransaction.getCallId() + "_" + ssrcTransaction.getStream());
}
public List<SsrcTransaction> getAllSsrc() {
- List<Object> ssrcTransactionKeys = RedisUtil.scan(String.format("%s_*_*_*_*", VideoManagerConstants.MEDIA_TRANSACTION_USED_PREFIX+ userSetting.getServerId()));
+ List<Object> ssrcTransactionKeys = RedisUtil.scan(redisTemplate, String.format("%s_*_*_*_*", VideoManagerConstants.MEDIA_TRANSACTION_USED_PREFIX+ userSetting.getServerId()));
List<SsrcTransaction> result= new ArrayList<>();
- for (int i = 0; i < ssrcTransactionKeys.size(); i++) {
- String key = (String)ssrcTransactionKeys.get(i);
- SsrcTransaction ssrcTransaction = JsonUtil.redisJsonToObject(key, SsrcTransaction.class);
+ for (Object ssrcTransactionKey : ssrcTransactionKeys) {
+ String key = (String) ssrcTransactionKey;
+ SsrcTransaction ssrcTransaction = JsonUtil.redisJsonToObject(redisTemplate, key, SsrcTransaction.class);
result.add(ssrcTransaction);
}
return result;
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java
index 8f4bb26..f06abba 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java
@@ -25,7 +25,7 @@
void register(ParentPlatform parentPlatform, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent) throws InvalidArgumentException, ParseException, SipException;
void register(ParentPlatform parentPlatform, SipTransactionInfo sipTransactionInfo, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent) throws InvalidArgumentException, ParseException, SipException;
- void register(ParentPlatform parentPlatform, SipTransactionInfo sipTransactionInfo, WWWAuthenticateHeader www, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent, boolean registerAgain, boolean isRegister) throws SipException, InvalidArgumentException, ParseException;
+ void register(ParentPlatform parentPlatform, SipTransactionInfo sipTransactionInfo, WWWAuthenticateHeader www, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent, boolean isRegister) throws SipException, InvalidArgumentException, ParseException;
/**
* 鍚戜笂绾у钩鍙版敞閿�
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderPlarformProvider.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderPlarformProvider.java
index dd40b39..315ddec 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderPlarformProvider.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderPlarformProvider.java
@@ -46,7 +46,7 @@
@Autowired
private IRedisCatchStorage redisCatchStorage;
- public Request createRegisterRequest(@NotNull ParentPlatform parentPlatform, long CSeq, String fromTag, String toTag, CallIdHeader callIdHeader, boolean isRegister) throws ParseException, InvalidArgumentException, PeerUnavailableException {
+ public Request createRegisterRequest(@NotNull ParentPlatform parentPlatform, long CSeq, String fromTag, String toTag, CallIdHeader callIdHeader, int expires) throws ParseException, InvalidArgumentException, PeerUnavailableException {
Request request = null;
String sipAddress = parentPlatform.getDeviceIp() + ":" + parentPlatform.getDevicePort();
//璇锋眰琛�
@@ -79,8 +79,8 @@
.createSipURI(parentPlatform.getDeviceGBId(), sipAddress));
request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress));
- ExpiresHeader expires = sipLayer.getSipFactory().createHeaderFactory().createExpiresHeader(isRegister ? parentPlatform.getExpires() : 0);
- request.addHeader(expires);
+ ExpiresHeader expiresHeader = sipLayer.getSipFactory().createHeaderFactory().createExpiresHeader(expires);
+ request.addHeader(expiresHeader);
request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil));
@@ -88,10 +88,10 @@
}
public Request createRegisterRequest(@NotNull ParentPlatform parentPlatform, String fromTag, String toTag,
- WWWAuthenticateHeader www , CallIdHeader callIdHeader, boolean isRegister) throws ParseException, PeerUnavailableException, InvalidArgumentException {
+ WWWAuthenticateHeader www , CallIdHeader callIdHeader, int expires) throws ParseException, PeerUnavailableException, InvalidArgumentException {
- Request registerRequest = createRegisterRequest(parentPlatform, redisCatchStorage.getCSEQ(), fromTag, toTag, callIdHeader, isRegister);
+ Request registerRequest = createRegisterRequest(parentPlatform, redisCatchStorage.getCSEQ(), fromTag, toTag, callIdHeader, expires);
SipURI requestURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort());
if (www == null) {
AuthorizationHeader authorizationHeader = sipLayer.getSipFactory().createHeaderFactory().createAuthorizationHeader("Digest");
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
index 452da8e..630d7da 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
@@ -91,23 +91,23 @@
@Override
public void register(ParentPlatform parentPlatform, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent) throws InvalidArgumentException, ParseException, SipException {
- register(parentPlatform, null, null, errorEvent, okEvent, false, true);
+ register(parentPlatform, null, null, errorEvent, okEvent, true);
}
@Override
public void register(ParentPlatform parentPlatform, SipTransactionInfo sipTransactionInfo, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent) throws InvalidArgumentException, ParseException, SipException {
- register(parentPlatform, sipTransactionInfo, null, errorEvent, okEvent, false, true);
+ register(parentPlatform, sipTransactionInfo, null, errorEvent, okEvent, true);
}
@Override
public void unregister(ParentPlatform parentPlatform, SipTransactionInfo sipTransactionInfo, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent) throws InvalidArgumentException, ParseException, SipException {
- register(parentPlatform, sipTransactionInfo, null, errorEvent, okEvent, false, false);
+ register(parentPlatform, sipTransactionInfo, null, errorEvent, okEvent, false);
}
@Override
public void register(ParentPlatform parentPlatform, @Nullable SipTransactionInfo sipTransactionInfo, @Nullable WWWAuthenticateHeader www,
- SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent, boolean registerAgain, boolean isRegister) throws SipException, InvalidArgumentException, ParseException {
+ SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent, boolean isRegister) throws SipException, InvalidArgumentException, ParseException {
Request request;
CallIdHeader callIdHeader = sipSender.getNewCallIdHeader(parentPlatform.getDeviceIp(),parentPlatform.getTransport());
@@ -125,10 +125,10 @@
}
}
- if (!registerAgain ) {
+ if (www == null ) {
request = headerProviderPlatformProvider.createRegisterRequest(parentPlatform,
redisCatchStorage.getCSEQ(), fromTag,
- toTag, callIdHeader, isRegister);
+ toTag, callIdHeader, isRegister? parentPlatform.getExpires() : 0);
// 灏� callid 鍐欏叆缂撳瓨锛� 绛夋敞鍐屾垚鍔熷彲浠ユ洿鏂扮姸鎬�
String callIdFromHeader = callIdHeader.getCallId();
redisCatchStorage.updatePlatformRegisterInfo(callIdFromHeader, PlatformRegisterInfo.getInstance(parentPlatform.getServerGBId(), isRegister));
@@ -146,7 +146,7 @@
});
}else {
- request = headerProviderPlatformProvider.createRegisterRequest(parentPlatform, fromTag, toTag, www, callIdHeader, isRegister);
+ request = headerProviderPlatformProvider.createRegisterRequest(parentPlatform, fromTag, toTag, www, callIdHeader, isRegister? parentPlatform.getExpires() : 0);
}
sipSender.transmitRequest(parentPlatform.getDeviceIp(), request, null, okEvent);
@@ -518,10 +518,10 @@
private void sendNotify(ParentPlatform parentPlatform, String catalogXmlContent,
SubscribeInfo subscribeInfo, SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent )
throws SipException, ParseException, InvalidArgumentException {
- MessageFactoryImpl messageFactory = (MessageFactoryImpl) sipLayer.getSipFactory().createMessageFactory();
+ MessageFactoryImpl messageFactory = (MessageFactoryImpl) sipLayer.getSipFactory().createMessageFactory();
String characterSet = parentPlatform.getCharacterSet();
- // 璁剧疆缂栫爜锛� 闃叉涓枃涔辩爜
- messageFactory.setDefaultContentEncodingCharset(characterSet);
+ // 璁剧疆缂栫爜锛� 闃叉涓枃涔辩爜
+ messageFactory.setDefaultContentEncodingCharset(characterSet);
SIPRequest notifyRequest = headerProviderPlatformProvider.createNotifyRequest(parentPlatform, catalogXmlContent, subscribeInfo);
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
index 1288974..a5e27c3 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
@@ -152,26 +152,30 @@
MobilePosition mobilePosition = new MobilePosition();
mobilePosition.setCreateTime(DateUtil.getNow());
+
Element deviceIdElement = rootElement.element("DeviceID");
String channelId = deviceIdElement.getTextTrim().toString();
Device device = redisCatchStorage.getDevice(deviceId);
if (device == null) {
- // 鏍规嵁閫氶亾id鏌ヨ璁惧Id
- List<Device> deviceList = deviceChannelService.getDeviceByChannelId(channelId);
- if (deviceList.size() > 0) {
- device = deviceList.get(0);
- }else {
- logger.warn("[mobilePosition绉诲姩浣嶇疆Notify] 鏈壘鍒伴�氶亾{}鎵�灞炵殑璁惧", channelId);
- return;
+ device = redisCatchStorage.getDevice(channelId);
+ if (device == null) {
+ // 鏍规嵁閫氶亾id鏌ヨ璁惧Id
+ List<Device> deviceList = deviceChannelService.getDeviceByChannelId(channelId);
+ if (deviceList.size() > 0) {
+ device = deviceList.get(0);
+ }
}
}
- if (device != null) {
- if (!ObjectUtils.isEmpty(device.getName())) {
- mobilePosition.setDeviceName(device.getName());
- }
+ if (device == null) {
+ logger.warn("[mobilePosition绉诲姩浣嶇疆Notify] 鏈壘鍒伴�氶亾{}鎵�灞炵殑璁惧", channelId);
+ return;
}
- mobilePosition.setDeviceId(XmlUtil.getText(rootElement, "DeviceID"));
+ if (!ObjectUtils.isEmpty(device.getName())) {
+ mobilePosition.setDeviceName(device.getName());
+ }
+
+ mobilePosition.setDeviceId(device.getDeviceId());
mobilePosition.setChannelId(channelId);
String time = XmlUtil.getText(rootElement, "Time");
mobilePosition.setTime(time);
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java
index 9033963..3fee5e5 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java
@@ -84,7 +84,7 @@
try {
RequestEventExt evtExt = (RequestEventExt) evt;
String requestAddress = evtExt.getRemoteIpAddress() + ":" + evtExt.getRemotePort();
- logger.info("[娉ㄥ唽璇锋眰] 寮�濮嬪鐞�: {}", requestAddress);
+
// MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer();
// QueryExp protocol = Query.match(Query.attr("protocol"), Query.value("HTTP/1.1"));
//// ObjectName name = new ObjectName("*:type=Connector,*");
@@ -107,6 +107,7 @@
AddressImpl address = (AddressImpl) fromHeader.getAddress();
SipUri uri = (SipUri) address.getURI();
String deviceId = uri.getUser();
+ logger.info("[娉ㄥ唽璇锋眰] 璁惧锛歿}, 寮�濮嬪鐞�: {}", deviceId, requestAddress);
Device device = deviceService.getDevice(deviceId);
RemoteAddressInfo remoteAddressInfo = SipUtils.getRemoteAddressFromRequest(request,
@@ -115,7 +116,7 @@
if (device != null &&
device.getSipTransactionInfo() != null &&
request.getCallIdHeader().getCallId().equals(device.getSipTransactionInfo().getCallId())) {
- logger.info("[娉ㄥ唽璇锋眰] 娉ㄥ唽缁: {}", device.getDeviceId());
+ logger.info("[娉ㄥ唽璇锋眰] 璁惧锛歿}, 娉ㄥ唽缁: {}",device.getDeviceId(), device.getDeviceId());
device.setExpires(request.getExpires().getExpires());
device.setIp(remoteAddressInfo.getIp());
device.setPort(remoteAddressInfo.getPort());
@@ -135,7 +136,7 @@
String password = (device != null && !ObjectUtils.isEmpty(device.getPassword()))? device.getPassword() : sipConfig.getPassword();
AuthorizationHeader authHead = (AuthorizationHeader) request.getHeader(AuthorizationHeader.NAME);
if (authHead == null && !ObjectUtils.isEmpty(password)) {
- logger.info("[娉ㄥ唽璇锋眰] 鍥炲401: {}", requestAddress);
+ logger.info("[娉ㄥ唽璇锋眰] 璁惧锛歿}, 鍥炲401: {}",deviceId, requestAddress);
response = getMessageFactory().createResponse(Response.UNAUTHORIZED, request);
new DigestServerAuthenticationHelper().generateChallenge(getHeaderFactory(), response, sipConfig.getDomain());
sipSender.transmitRequest(request.getLocalAddress().getHostAddress(), response);
@@ -150,7 +151,7 @@
// 娉ㄥ唽澶辫触
response = getMessageFactory().createResponse(Response.FORBIDDEN, request);
response.setReasonPhrase("wrong password");
- logger.info("[娉ㄥ唽璇锋眰] 瀵嗙爜/SIP鏈嶅姟鍣↖D閿欒, 鍥炲403: {}", requestAddress);
+ logger.info("[娉ㄥ唽璇锋眰] 璁惧锛歿}, 瀵嗙爜/SIP鏈嶅姟鍣↖D閿欒, 鍥炲403: {}", deviceId, requestAddress);
sipSender.transmitRequest(request.getLocalAddress().getHostAddress(), response);
return;
}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/RecordInfoResponseMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/RecordInfoResponseMessageHandler.java
index a667c67..36e5df2 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/RecordInfoResponseMessageHandler.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/RecordInfoResponseMessageHandler.java
@@ -10,7 +10,6 @@
import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.response.ResponseMessageHandler;
import com.genersoft.iot.vmp.utils.DateUtil;
import com.genersoft.iot.vmp.utils.UJson;
-import com.genersoft.iot.vmp.utils.redis.RedisUtil;
import gov.nist.javax.sip.message.SIPRequest;
import org.dom4j.Element;
import org.slf4j.Logger;
@@ -18,6 +17,7 @@
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
@@ -29,6 +29,7 @@
import java.text.ParseException;
import java.util.*;
import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.genersoft.iot.vmp.gb28181.utils.XmlUtil.getText;
@@ -56,6 +57,9 @@
@Qualifier("taskExecutor")
@Autowired
private ThreadPoolTaskExecutor taskExecutor;
+
+ @Autowired
+ private RedisTemplate<Object, Object> redisTemplate;
private Long recordInfoTtl = 1800L;
@@ -130,10 +134,11 @@
.collect(Collectors.toMap(record -> record.getStartTime()+ record.getEndTime(), UJson::writeJson));
// 鑾峰彇浠诲姟缁撴灉鏁版嵁
String resKey = VideoManagerConstants.REDIS_RECORD_INFO_RES_PRE + channelId + sn;
- RedisUtil.hmset(resKey, map, recordInfoTtl);
+ redisTemplate.opsForHash().putAll(resKey, map);
+ redisTemplate.expire(resKey, recordInfoTtl, TimeUnit.SECONDS);
String resCountKey = VideoManagerConstants.REDIS_RECORD_INFO_RES_COUNT_PRE + channelId + sn;
- long incr = RedisUtil.incr(resCountKey, map.size());
- RedisUtil.expire(resCountKey, recordInfoTtl);
+ long incr = redisTemplate.opsForValue().increment(resCountKey, map.size());
+ redisTemplate.expire(resCountKey, recordInfoTtl, TimeUnit.SECONDS);
recordInfo.setRecordList(recordList);
recordInfo.setCount(Math.toIntExact(incr));
eventPublisher.recordEndEventPush(recordInfo);
@@ -141,7 +146,7 @@
return;
}
// 宸叉帴鏀跺畬鎴�
- List<RecordItem> resList = RedisUtil.hmget(resKey).values().stream().map(e -> UJson.readJson(e.toString(), RecordItem.class)).collect(Collectors.toList());
+ List<RecordItem> resList = redisTemplate.opsForHash().entries(resKey).values().stream().map(e -> UJson.readJson(e.toString(), RecordItem.class)).collect(Collectors.toList());
if (resList.size() < sumNum) {
return;
}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/response/impl/RegisterResponseProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/response/impl/RegisterResponseProcessor.java
index 0294ba2..ff1ccc6 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/response/impl/RegisterResponseProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/response/impl/RegisterResponseProcessor.java
@@ -92,7 +92,7 @@
WWWAuthenticateHeader www = (WWWAuthenticateHeader)response.getHeader(WWWAuthenticateHeader.NAME);
SipTransactionInfo sipTransactionInfo = new SipTransactionInfo(response);
try {
- sipCommanderForPlatform.register(parentPlatform, sipTransactionInfo, www, null, null, true, platformRegisterInfo.isRegister());
+ sipCommanderForPlatform.register(parentPlatform, sipTransactionInfo, www, null, null, platformRegisterInfo.isRegister());
} catch (SipException | InvalidArgumentException | ParseException e) {
logger.error("[鍛戒护鍙戦�佸け璐 鍥芥爣绾ц仈 鍐嶆娉ㄥ唽: {}", e.getMessage());
}
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
index dc495f9..c38c313 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
@@ -10,7 +10,6 @@
import com.genersoft.iot.vmp.conf.exception.ControllerException;
import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
import com.genersoft.iot.vmp.gb28181.session.SsrcConfig;
-import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager;
import com.genersoft.iot.vmp.media.zlm.AssistRESTfulUtils;
import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils;
import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory;
@@ -33,6 +32,7 @@
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.stereotype.Service;
import org.springframework.transaction.TransactionDefinition;
@@ -75,13 +75,11 @@
private MediaServerMapper mediaServerMapper;
@Autowired
- DataSourceTransactionManager dataSourceTransactionManager;
+ private DataSourceTransactionManager dataSourceTransactionManager;
@Autowired
- TransactionDefinition transactionDefinition;
+ private TransactionDefinition transactionDefinition;
- @Autowired
- private VideoStreamSessionManager streamSession;
@Autowired
private ZLMRTPServerFactory zlmrtpServerFactory;
@@ -94,6 +92,9 @@
@Autowired
private IRedisCatchStorage redisCatchStorage;
+
+ @Autowired
+ private RedisTemplate<Object, Object> redisTemplate;
/**
* 鍒濆鍖�
@@ -109,12 +110,13 @@
if (mediaServerItem.getSsrcConfig() == null) {
SsrcConfig ssrcConfig = new SsrcConfig(mediaServerItem.getId(), null, sipConfig.getDomain());
mediaServerItem.setSsrcConfig(ssrcConfig);
- RedisUtil.set(VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerItem.getId(), mediaServerItem);
+ redisTemplate.opsForValue().set(VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerItem.getId(), mediaServerItem);
}
// 鏌ヨredis鏄惁瀛樺湪姝ediaServer
String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerItem.getId();
- if (!RedisUtil.hasKey(key)) {
- RedisUtil.set(key, mediaServerItem);
+ Boolean hasKey = redisTemplate.hasKey(key);
+ if (hasKey != null && ! hasKey) {
+ redisTemplate.opsForValue().set(key, mediaServerItem);
}
}
@@ -160,7 +162,7 @@
} else {
rtpServerPort = mediaServerItem.getRtpProxyPort();
}
- RedisUtil.set(key, mediaServerItem);
+ redisTemplate.opsForValue().set(key, mediaServerItem);
return new SSRCInfo(rtpServerPort, ssrc, streamId);
}
}
@@ -194,7 +196,7 @@
ssrcConfig.releaseSsrc(ssrc);
mediaServerItem.setSsrcConfig(ssrcConfig);
String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerItem.getId();
- RedisUtil.set(key, mediaServerItem);
+ redisTemplate.opsForValue().set(key, mediaServerItem);
}
/**
@@ -203,7 +205,7 @@
@Override
public void clearRTPServer(MediaServerItem mediaServerItem) {
mediaServerItem.setSsrcConfig(new SsrcConfig(mediaServerItem.getId(), null, sipConfig.getDomain()));
- RedisUtil.zAdd(VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId(), mediaServerItem.getId(), 0);
+ redisTemplate.opsForZSet().add(VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId(), mediaServerItem.getId(), 0);
}
@@ -225,22 +227,22 @@
);
}
String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerItemInDataBase.getId();
- RedisUtil.set(key, mediaServerItemInDataBase);
+ redisTemplate.opsForValue().set(key, mediaServerItemInDataBase);
}
@Override
public List<MediaServerItem> getAll() {
List<MediaServerItem> result = new ArrayList<>();
- List<Object> mediaServerKeys = RedisUtil.scan(String.format("%S*", VideoManagerConstants.MEDIA_SERVER_PREFIX+ userSetting.getServerId() + "_" ));
+ List<Object> mediaServerKeys = RedisUtil.scan(redisTemplate, String.format("%S*", VideoManagerConstants.MEDIA_SERVER_PREFIX+ userSetting.getServerId() + "_" ));
String onlineKey = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId();
for (Object mediaServerKey : mediaServerKeys) {
String key = (String) mediaServerKey;
- MediaServerItem mediaServerItem = JsonUtil.redisJsonToObject(key, MediaServerItem.class);
+ MediaServerItem mediaServerItem = JsonUtil.redisJsonToObject(redisTemplate, key, MediaServerItem.class);
if (Objects.isNull(mediaServerItem)) {
continue;
}
// 妫�鏌ョ姸鎬�
- Double aDouble = RedisUtil.zScore(onlineKey, mediaServerItem.getId());
+ Double aDouble = redisTemplate.opsForZSet().score(onlineKey, mediaServerItem.getId());
if (aDouble != null) {
mediaServerItem.setStatus(true);
}
@@ -266,13 +268,14 @@
@Override
public List<MediaServerItem> getAllOnline() {
String key = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId();
- Set<String> mediaServerIdSet = RedisUtil.zRevRange(key, 0, -1);
+ Set<Object> mediaServerIdSet = redisTemplate.opsForZSet().reverseRange(key, 0, -1);
List<MediaServerItem> result = new ArrayList<>();
if (mediaServerIdSet != null && mediaServerIdSet.size() > 0) {
- for (String mediaServerId : mediaServerIdSet) {
- String serverKey = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerId;
- result.add((MediaServerItem) RedisUtil.get(serverKey));
+ for (Object mediaServerId : mediaServerIdSet) {
+ String mediaServerIdStr = (String) mediaServerId;
+ String serverKey = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerIdStr;
+ result.add((MediaServerItem) redisTemplate.opsForValue().get(serverKey));
}
}
Collections.reverse(result);
@@ -290,7 +293,7 @@
return null;
}
String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerId;
- return JsonUtil.redisJsonToObject(key, MediaServerItem.class);
+ return JsonUtil.redisJsonToObject(redisTemplate, key, MediaServerItem.class);
}
@@ -303,7 +306,7 @@
@Override
public void clearMediaServerForOnline() {
String key = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId();
- RedisUtil.del(key);
+ redisTemplate.delete(key);
}
@Override
@@ -403,16 +406,16 @@
}
mediaServerMapper.update(serverItem);
String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + zlmServerConfig.getGeneralMediaServerId();
- if (RedisUtil.get(key) == null) {
+ if (redisTemplate.opsForValue().get(key) == null) {
SsrcConfig ssrcConfig = new SsrcConfig(zlmServerConfig.getGeneralMediaServerId(), null, sipConfig.getDomain());
serverItem.setSsrcConfig(ssrcConfig);
}else {
- MediaServerItem mediaServerItemInRedis = JsonUtil.redisJsonToObject(key, MediaServerItem.class);
+ MediaServerItem mediaServerItemInRedis = JsonUtil.redisJsonToObject(redisTemplate, key, MediaServerItem.class);
if (Objects.nonNull(mediaServerItemInRedis)) {
serverItem.setSsrcConfig(mediaServerItemInRedis.getSsrcConfig());
}
}
- RedisUtil.set(key, serverItem);
+ redisTemplate.opsForValue().set(key, serverItem);
resetOnlineServerItem(serverItem);
@@ -475,15 +478,15 @@
// 鏇存柊缂撳瓨
String key = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId();
// 浣跨敤zset鐨勫垎鏁颁綔涓哄綋鍓嶅苟鍙戦噺锛� 榛樿鍊艰缃负0
- if (RedisUtil.zScore(key, serverItem.getId()) == null) { // 涓嶅瓨鍦ㄥ垯璁剧疆榛樿鍊� 宸插瓨鍦ㄥ垯閲嶇疆
- RedisUtil.zAdd(key, serverItem.getId(), 0L);
+ if (redisTemplate.opsForZSet().score(key, serverItem.getId()) == null) { // 涓嶅瓨鍦ㄥ垯璁剧疆榛樿鍊� 宸插瓨鍦ㄥ垯閲嶇疆
+ redisTemplate.opsForZSet().add(key, serverItem.getId(), 0L);
// 鏌ヨ鏈嶅姟娴佹暟閲�
zlmresTfulUtils.getMediaList(serverItem, null, null, "rtsp",(mediaList ->{
Integer code = mediaList.getInteger("code");
if (code == 0) {
JSONArray data = mediaList.getJSONArray("data");
if (data != null) {
- RedisUtil.zAdd(key, serverItem.getId(), data.size());
+ redisTemplate.opsForZSet().add(key, serverItem.getId(), data.size());
}
}
}));
@@ -499,14 +502,14 @@
return;
}
String key = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId();
- RedisUtil.zIncrScore(key, mediaServerId, 1);
+ redisTemplate.opsForZSet().incrementScore(key, mediaServerId, 1);
}
@Override
public void removeCount(String mediaServerId) {
String key = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId();
- RedisUtil.zIncrScore(key, mediaServerId, - 1);
+ redisTemplate.opsForZSet().incrementScore(key, mediaServerId, - 1);
}
/**
@@ -516,16 +519,14 @@
@Override
public MediaServerItem getMediaServerForMinimumLoad(Boolean hasAssist) {
String key = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId();
-
- if (RedisUtil.zSize(key) == null || RedisUtil.zSize(key) == 0) {
- if (RedisUtil.zSize(key) == null || RedisUtil.zSize(key) == 0) {
- logger.info("鑾峰彇璐熻浇鏈�浣庣殑鑺傜偣鏃舵棤鍦ㄧ嚎鑺傜偣");
- return null;
- }
+ Long size = redisTemplate.opsForZSet().zCard(key);
+ if (size == null || size == 0) {
+ logger.info("鑾峰彇璐熻浇鏈�浣庣殑鑺傜偣鏃舵棤鍦ㄧ嚎鑺傜偣");
+ return null;
}
// 鑾峰彇鍒嗘暟鏈�浣庣殑锛屽強骞跺彂鏈�浣庣殑
- Set<Object> objects = RedisUtil.zRange(key, 0, -1);
+ Set<Object> objects = redisTemplate.opsForZSet().range(key, 0, -1);
ArrayList<Object> mediaServerObjectS = new ArrayList<>(objects);
MediaServerItem mediaServerItem = null;
if (hasAssist == null) {
@@ -688,9 +689,9 @@
@Override
public void delete(String id) {
- RedisUtil.zRemove(VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId(), id);
+ redisTemplate.opsForZSet().remove(VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId(), id);
String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + id;
- RedisUtil.del(key);
+ redisTemplate.delete(key);
}
@Override
public void deleteDb(String id){
@@ -713,7 +714,7 @@
SsrcConfig ssrcConfig = new SsrcConfig(mediaServerItem.getId(), null, sipConfig.getDomain());
mediaServerItem.setSsrcConfig(ssrcConfig);
String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerItem.getId();
- RedisUtil.set(key, mediaServerItem);
+ redisTemplate.opsForValue().set(key, mediaServerItem);
clearRTPServer(mediaServerItem);
}
final String zlmKeepaliveKey = zlmKeepaliveKeyPrefix + mediaServerItem.getId();
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java
index 2718513..ffe272b 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java
@@ -168,7 +168,7 @@
// 娉ㄩ攢鏃х殑
try {
if (parentPlatformOld.isStatus()) {
- logger.info("淇濆瓨骞冲彴{}鏃跺彂鐜版晳骞冲彴鍦ㄧ嚎锛屽彂閫佹敞閿�鍛戒护", parentPlatform.getDeviceGBId());
+ logger.info("淇濆瓨骞冲彴{}鏃跺彂鐜版晳骞冲彴鍦ㄧ嚎锛屽彂閫佹敞閿�鍛戒护", parentPlatformOld.getServerGBId());
commanderForPlatform.unregister(parentPlatformOld, parentPlatformCatchOld.getSipTransactionInfo(), null, eventResult -> {
logger.info("[鍥芥爣绾ц仈] 娉ㄩ攢鎴愬姛锛� 骞冲彴锛歿}", parentPlatformOld.getServerGBId());
});
@@ -275,7 +275,7 @@
// 蹇冭烦鎴愬姛
// 娓呯┖涔嬪墠鐨勫績璺宠秴鏃惰鏁�
ParentPlatformCatch platformCatch = redisCatchStorage.queryPlatformCatchInfo(parentPlatform.getServerGBId());
- if (platformCatch.getKeepAliveReply() > 0) {
+ if (platformCatch != null && platformCatch.getKeepAliveReply() > 0) {
platformCatch.setKeepAliveReply(0);
redisCatchStorage.updatePlatformCatchInfo(platformCatch);
}
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
index 4d8ed27..a67b951 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
@@ -48,6 +48,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
@@ -130,6 +131,9 @@
@Autowired
private ZlmHttpHookSubscribe hookSubscribe;
+
+ @Autowired
+ private RedisTemplate<Object, Object> redisTemplate;
@Override
@@ -1193,7 +1197,7 @@
throw new ServiceException("streamId涓嶅瓨鍦�");
}
streamInfo.setPause(true);
- RedisUtil.set(key, streamInfo);
+ redisTemplate.opsForValue().set(key, streamInfo);
MediaServerItem mediaServerItem = mediaServerService.getOne(streamInfo.getMediaServerId());
if (null == mediaServerItem) {
logger.warn("mediaServer 涓嶅瓨鍦�!");
@@ -1217,7 +1221,7 @@
throw new ServiceException("streamId涓嶅瓨鍦�");
}
streamInfo.setPause(false);
- RedisUtil.set(key, streamInfo);
+ redisTemplate.opsForValue().set(key, streamInfo);
MediaServerItem mediaServerItem = mediaServerService.getOne(streamInfo.getMediaServerId());
if (null == mediaServerItem) {
logger.warn("mediaServer 涓嶅瓨鍦�!");
diff --git a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGbPlayMsgListener.java b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGbPlayMsgListener.java
index c372647..868e861 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGbPlayMsgListener.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisGbPlayMsgListener.java
@@ -2,19 +2,17 @@
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
+import com.genersoft.iot.vmp.common.VideoManagerConstants;
import com.genersoft.iot.vmp.conf.DynamicTask;
import com.genersoft.iot.vmp.conf.UserSetting;
import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem;
-import com.genersoft.iot.vmp.media.zlm.ZlmHttpHookSubscribe;
-import com.genersoft.iot.vmp.media.zlm.ZLMMediaListManager;
import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory;
+import com.genersoft.iot.vmp.media.zlm.ZlmHttpHookSubscribe;
import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeFactory;
import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeForStreamChange;
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
import com.genersoft.iot.vmp.service.IMediaServerService;
import com.genersoft.iot.vmp.service.bean.*;
-import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
-import com.genersoft.iot.vmp.utils.redis.RedisUtil;
import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -22,6 +20,7 @@
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.redis.connection.Message;
import org.springframework.data.redis.connection.MessageListener;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component;
@@ -68,7 +67,7 @@
@Autowired
- private ZLMMediaListManager zlmMediaListManager;
+ private RedisTemplate<Object, Object> redisTemplate;
@Autowired
private ZLMRTPServerFactory zlmrtpServerFactory;
@@ -76,14 +75,10 @@
@Autowired
private IMediaServerService mediaServerService;
- @Autowired
- private IRedisCatchStorage redisCatchStorage;
@Autowired
private DynamicTask dynamicTask;
- @Autowired
- private ZLMMediaListManager mediaListManager;
@Autowired
private ZlmHttpHookSubscribe subscribe;
@@ -246,7 +241,7 @@
WvpRedisMsg response = WvpRedisMsg.getResponseInstance(userSetting.getServerId(), toId,
WvpRedisMsgCmd.REQUEST_PUSH_STREAM, serial, result);
JSONObject jsonObject = (JSONObject)JSON.toJSON(response);
- RedisUtil.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
+ redisTemplate.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
}
/**
@@ -265,7 +260,7 @@
WvpRedisMsgCmd.GET_SEND_ITEM, serial, result);
JSONObject jsonObject = (JSONObject)JSON.toJSON(response);
- RedisUtil.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
+ redisTemplate.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
return;
}
// 纭畾娴佹槸鍚﹀湪绾�
@@ -288,7 +283,7 @@
userSetting.getServerId(), toId, WvpRedisMsgCmd.GET_SEND_ITEM, serial, result
);
JSONObject jsonObject = (JSONObject)JSON.toJSON(response);
- RedisUtil.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
+ redisTemplate.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
}, userSetting.getPlatformPlayTimeout());
// 娣诲姞璁㈤槄
@@ -302,7 +297,12 @@
MessageForPushChannel messageForPushChannel = MessageForPushChannel.getInstance(1, content.getApp(), content.getStream(),
content.getChannelId(), content.getPlatformId(), content.getPlatformName(), content.getServerId(),
content.getMediaServerId());
- redisCatchStorage.sendStreamPushRequestedMsg(messageForPushChannel);
+
+ String key = VideoManagerConstants.VM_MSG_STREAM_PUSH_REQUESTED;
+ logger.info("[redis鍙戦�侀�氱煡] 鎺ㄦ祦琚姹� {}: {}/{}", key, messageForPushChannel.getApp(), messageForPushChannel.getStream());
+ redisTemplate.convertAndSend(key, JSON.toJSON(messageForPushChannel));
+
+// redisCatchStorage.sendStreamPushRequestedMsg(messageForPushChannel);
}
}
@@ -327,7 +327,7 @@
userSetting.getServerId(), toId, WvpRedisMsgCmd.GET_SEND_ITEM, serial, result
);
JSONObject jsonObject = (JSONObject)JSON.toJSON(response);
- RedisUtil.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
+ redisTemplate.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
}
/**
@@ -364,7 +364,7 @@
wvpResult.setMsg("timeout");
errorCallback.handler(wvpResult);
}, userSetting.getPlatformPlayTimeout());
- RedisUtil.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
+ redisTemplate.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
}
/**
@@ -389,6 +389,6 @@
callbacksForStartSendRtpStream.remove(key);
callbacksForError.remove(key);
});
- RedisUtil.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
+ redisTemplate.convertAndSend(WVP_PUSH_STREAM_KEY, jsonObject);
}
}
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMobilePositionMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMobilePositionMapper.java
index 358836c..3c77024 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMobilePositionMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMobilePositionMapper.java
@@ -1,15 +1,18 @@
package com.genersoft.iot.vmp.storager.dao;
-import java.util.List;
-
import com.genersoft.iot.vmp.gb28181.bean.MobilePosition;
-import org.apache.ibatis.annotations.*;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
@Mapper
public interface DeviceMobilePositionMapper {
@Insert("INSERT INTO device_mobile_position (deviceId,channelId, deviceName, time, longitude, latitude, altitude, speed, direction, reportSource, longitudeGcj02, latitudeGcj02, longitudeWgs84, latitudeWgs84, createTime) " +
- "VALUES (#{deviceId},#{channelId}, #{deviceName}, #{time}, #{longitude}, #{latitude}, #{altitude}, #{speed}, #{direction}, #{reportSource}, #{longitudeGcj02}, #{latitudeGcj02}, #{longitudeWgs84}, #{latitudeWgs84}, #{createTime})")
+ "VALUES (#{deviceId}, #{channelId}, #{deviceName}, #{time}, #{longitude}, #{latitude}, #{altitude}, #{speed}, #{direction}, #{reportSource}, #{longitudeGcj02}, #{latitudeGcj02}, #{longitudeWgs84}, #{latitudeWgs84}, #{createTime})")
int insertNewPosition(MobilePosition mobilePosition);
@Select(value = {" <script>" +
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
index ef5648b..7689382 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
@@ -23,6 +23,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.*;
@@ -39,14 +40,17 @@
@Autowired
private UserSetting userSetting;
+ @Autowired
+ private RedisTemplate<Object, Object> redisTemplate;
+
@Override
public Long getCSEQ() {
String key = VideoManagerConstants.SIP_CSEQ_PREFIX + userSetting.getServerId();
- long result = RedisUtil.incr(key, 1L);
- if (result > Integer.MAX_VALUE) {
- RedisUtil.set(key, 1);
- result = 1;
+ Long result = redisTemplate.opsForValue().increment(key, 1L);
+ if (result != null && result > Integer.MAX_VALUE) {
+ redisTemplate.opsForValue().set(key, 1);
+ result = 1L;
}
return result;
}
@@ -55,10 +59,10 @@
public Long getSN(String method) {
String key = VideoManagerConstants.SIP_SN_PREFIX + userSetting.getServerId() + "_" + method;
- long result = RedisUtil.incr(key, 1L);
- if (result > Integer.MAX_VALUE) {
- RedisUtil.set(key, 1);
- result = 1;
+ Long result = redisTemplate.opsForValue().increment(key, 1L);
+ if (result != null && result > Integer.MAX_VALUE) {
+ redisTemplate.opsForValue().set(key, 1);
+ result = 1L;
}
return result;
}
@@ -66,61 +70,58 @@
@Override
public void resetAllCSEQ() {
String scanKey = VideoManagerConstants.SIP_CSEQ_PREFIX + userSetting.getServerId() + "_*";
- List<Object> keys = RedisUtil.scan(scanKey);
+ List<Object> keys = RedisUtil.scan(redisTemplate, scanKey);
for (Object o : keys) {
String key = (String) o;
- RedisUtil.set(key, 1);
+ redisTemplate.opsForValue().set(key, 1);
}
}
@Override
public void resetAllSN() {
String scanKey = VideoManagerConstants.SIP_SN_PREFIX + userSetting.getServerId() + "_*";
- List<Object> keys = RedisUtil.scan(scanKey);
+ List<Object> keys = RedisUtil.scan(redisTemplate, scanKey);
for (Object o : keys) {
String key = (String) o;
- RedisUtil.set(key, 1);
+ redisTemplate.opsForValue().set(key, 1);
}
}
/**
* 寮�濮嬫挱鏀炬椂灏嗘祦瀛樺叆redis
- *
- * @return
*/
@Override
public boolean startPlay(StreamInfo stream) {
- return RedisUtil.set(String.format("%S_%s_%s_%s_%s_%s", VideoManagerConstants.PLAYER_PREFIX, userSetting.getServerId(),
+ redisTemplate.opsForValue().set(String.format("%S_%s_%s_%s_%s_%s", VideoManagerConstants.PLAYER_PREFIX, userSetting.getServerId(),
stream.getMediaServerId(), stream.getStream(), stream.getDeviceID(), stream.getChannelId()),
stream);
+ return true;
}
/**
* 鍋滄鎾斁鏃朵粠redis鍒犻櫎
- *
- * @return
*/
@Override
public boolean stopPlay(StreamInfo streamInfo) {
if (streamInfo == null) {
return false;
}
- return RedisUtil.del(String.format("%S_%s_%s_%s_%s_%s", VideoManagerConstants.PLAYER_PREFIX,
+ Boolean result = redisTemplate.delete(String.format("%S_%s_%s_%s_%s_%s", VideoManagerConstants.PLAYER_PREFIX,
userSetting.getServerId(),
streamInfo.getMediaServerId(),
streamInfo.getStream(),
streamInfo.getDeviceID(),
streamInfo.getChannelId()));
+ return result != null && result;
}
/**
* 鏌ヨ鎾斁鍒楄〃
- * @return
*/
@Override
public StreamInfo queryPlay(StreamInfo streamInfo) {
- return (StreamInfo)RedisUtil.get(String.format("%S_%s_%s_%s_%s_%s",
+ return (StreamInfo)redisTemplate.opsForValue().get(String.format("%S_%s_%s_%s_%s_%s",
VideoManagerConstants.PLAYER_PREFIX,
userSetting.getServerId(),
streamInfo.getMediaServerId(),
@@ -130,35 +131,35 @@
}
@Override
public StreamInfo queryPlayByStreamId(String streamId) {
- List<Object> playLeys = RedisUtil.scan(String.format("%S_%s_*_%s_*", VideoManagerConstants.PLAYER_PREFIX, userSetting.getServerId(), streamId));
- if (playLeys == null || playLeys.size() == 0) {
+ List<Object> playLeys = RedisUtil.scan(redisTemplate, String.format("%S_%s_*_%s_*", VideoManagerConstants.PLAYER_PREFIX, userSetting.getServerId(), streamId));
+ if (playLeys.size() == 0) {
return null;
}
- return (StreamInfo)RedisUtil.get(playLeys.get(0).toString());
+ return (StreamInfo)redisTemplate.opsForValue().get(playLeys.get(0).toString());
}
@Override
public StreamInfo queryPlayByDevice(String deviceId, String channelId) {
- List<Object> playLeys = RedisUtil.scan(String.format("%S_%s_*_*_%s_%s", VideoManagerConstants.PLAYER_PREFIX,
+ List<Object> playLeys = RedisUtil.scan(redisTemplate, String.format("%S_%s_*_*_%s_%s", VideoManagerConstants.PLAYER_PREFIX,
userSetting.getServerId(),
deviceId,
channelId));
- if (playLeys == null || playLeys.size() == 0) {
+ if (playLeys.size() == 0) {
return null;
}
- return (StreamInfo)RedisUtil.get(playLeys.get(0).toString());
+ return (StreamInfo)redisTemplate.opsForValue().get(playLeys.get(0).toString());
}
@Override
public Map<String, StreamInfo> queryPlayByDeviceId(String deviceId) {
Map<String, StreamInfo> streamInfos = new HashMap<>();
- List<Object> players = RedisUtil.scan(String.format("%S_%s_*_*_%s_*", VideoManagerConstants.PLAYER_PREFIX, userSetting.getServerId(),deviceId));
+ List<Object> players = RedisUtil.scan(redisTemplate, String.format("%S_%s_*_*_%s_*", VideoManagerConstants.PLAYER_PREFIX, userSetting.getServerId(),deviceId));
if (players.size() == 0) {
return streamInfos;
}
for (Object player : players) {
String key = (String) player;
- StreamInfo streamInfo = JsonUtil.redisJsonToObject(key, StreamInfo.class);
+ StreamInfo streamInfo = JsonUtil.redisJsonToObject(redisTemplate, key, StreamInfo.class);
if (Objects.isNull(streamInfo)) {
continue;
}
@@ -170,23 +171,23 @@
@Override
public boolean startPlayback(StreamInfo stream, String callId) {
- return RedisUtil.set(String.format("%S_%s_%s_%s_%s_%s_%s", VideoManagerConstants.PLAY_BLACK_PREFIX,
+ redisTemplate.opsForValue().set(String.format("%S_%s_%s_%s_%s_%s_%s", VideoManagerConstants.PLAY_BLACK_PREFIX,
userSetting.getServerId(), stream.getMediaServerId(), stream.getDeviceID(), stream.getChannelId(), stream.getStream(), callId), stream);
+ return true;
}
@Override
public boolean startDownload(StreamInfo stream, String callId) {
- boolean result;
String key=String.format("%S_%s_%s_%s_%s_%s_%s", VideoManagerConstants.DOWNLOAD_PREFIX,
userSetting.getServerId(), stream.getMediaServerId(), stream.getDeviceID(), stream.getChannelId(), stream.getStream(), callId);
if (stream.getProgress() == 1) {
logger.debug("娣诲姞涓嬭浇缂撳瓨==宸插畬鎴愪笅杞�=銆媨}",key);
- result = RedisUtil.set(key, stream);
+ redisTemplate.opsForValue().set(key, stream);
}else {
logger.debug("娣诲姞涓嬭浇缂撳瓨==鏈畬鎴愪笅杞�=銆媨}",key);
- result = RedisUtil.set(key, stream, 60*60);
+ redisTemplate.opsForValue().set(key, stream, 60*60);
}
- return result;
+ return true;
}
@Override
public boolean stopDownload(String deviceId, String channelId, String stream, String callId) {
@@ -215,10 +216,10 @@
stream,
callId
);
- List<Object> scan = RedisUtil.scan(key);
+ List<Object> scan = RedisUtil.scan(redisTemplate, key);
if (scan.size() > 0) {
for (Object keyObj : scan) {
- RedisUtil.del((String) keyObj);
+ redisTemplate.delete(keyObj);
}
}
return true;
@@ -251,10 +252,10 @@
stream,
callId
);
- List<Object> scan = RedisUtil.scan(key);
+ List<Object> scan = RedisUtil.scan(redisTemplate, key);
if (scan.size() > 0) {
for (Object keyObj : scan) {
- RedisUtil.del((String) keyObj);
+ redisTemplate.delete(keyObj);
}
}
return true;
@@ -284,9 +285,9 @@
stream,
callId
);
- List<Object> streamInfoScan = RedisUtil.scan(key);
+ List<Object> streamInfoScan = RedisUtil.scan(redisTemplate, key);
if (streamInfoScan.size() > 0) {
- return (StreamInfo) RedisUtil.get((String) streamInfoScan.get(0));
+ return (StreamInfo) redisTemplate.opsForValue().get(streamInfoScan.get(0));
}else {
return null;
}
@@ -316,59 +317,59 @@
stream,
callId
);
- List<Object> streamInfoScan = RedisUtil.scan(key);
+ List<Object> streamInfoScan = RedisUtil.scan(redisTemplate, key);
return (String) streamInfoScan.get(0);
}
@Override
public void updatePlatformCatchInfo(ParentPlatformCatch parentPlatformCatch) {
String key = VideoManagerConstants.PLATFORM_CATCH_PREFIX + userSetting.getServerId() + "_" + parentPlatformCatch.getId();
- RedisUtil.set(key, parentPlatformCatch);
+ redisTemplate.opsForValue().set(key, parentPlatformCatch);
}
@Override
public ParentPlatformCatch queryPlatformCatchInfo(String platformGbId) {
- return (ParentPlatformCatch)RedisUtil.get(VideoManagerConstants.PLATFORM_CATCH_PREFIX + userSetting.getServerId() + "_" + platformGbId);
+ return (ParentPlatformCatch)redisTemplate.opsForValue().get(VideoManagerConstants.PLATFORM_CATCH_PREFIX + userSetting.getServerId() + "_" + platformGbId);
}
@Override
public void delPlatformCatchInfo(String platformGbId) {
- RedisUtil.del(VideoManagerConstants.PLATFORM_CATCH_PREFIX + userSetting.getServerId() + "_" + platformGbId);
+ redisTemplate.delete(VideoManagerConstants.PLATFORM_CATCH_PREFIX + userSetting.getServerId() + "_" + platformGbId);
}
@Override
public void delPlatformKeepalive(String platformGbId) {
- RedisUtil.del(VideoManagerConstants.PLATFORM_KEEPALIVE_PREFIX + userSetting.getServerId() + "_" + platformGbId);
+ redisTemplate.delete(VideoManagerConstants.PLATFORM_KEEPALIVE_PREFIX + userSetting.getServerId() + "_" + platformGbId);
}
@Override
public void delPlatformRegister(String platformGbId) {
- RedisUtil.del(VideoManagerConstants.PLATFORM_REGISTER_PREFIX + userSetting.getServerId() + "_" + platformGbId);
+ redisTemplate.delete(VideoManagerConstants.PLATFORM_REGISTER_PREFIX + userSetting.getServerId() + "_" + platformGbId);
}
@Override
public void updatePlatformRegisterInfo(String callId, PlatformRegisterInfo platformRegisterInfo) {
String key = VideoManagerConstants.PLATFORM_REGISTER_INFO_PREFIX + userSetting.getServerId() + "_" + callId;
- RedisUtil.set(key, platformRegisterInfo, 30);
+ redisTemplate.opsForValue().set(key, platformRegisterInfo, 30);
}
@Override
public PlatformRegisterInfo queryPlatformRegisterInfo(String callId) {
- return (PlatformRegisterInfo)RedisUtil.get(VideoManagerConstants.PLATFORM_REGISTER_INFO_PREFIX + userSetting.getServerId() + "_" + callId);
+ return (PlatformRegisterInfo)redisTemplate.opsForValue().get(VideoManagerConstants.PLATFORM_REGISTER_INFO_PREFIX + userSetting.getServerId() + "_" + callId);
}
@Override
public void delPlatformRegisterInfo(String callId) {
- RedisUtil.del(VideoManagerConstants.PLATFORM_REGISTER_INFO_PREFIX + userSetting.getServerId() + "_" + callId);
+ redisTemplate.delete(VideoManagerConstants.PLATFORM_REGISTER_INFO_PREFIX + userSetting.getServerId() + "_" + callId);
}
@Override
public void cleanPlatformRegisterInfos() {
- List regInfos = RedisUtil.scan(VideoManagerConstants.PLATFORM_REGISTER_INFO_PREFIX + userSetting.getServerId() + "_" + "*");
+ List regInfos = RedisUtil.scan(redisTemplate, VideoManagerConstants.PLATFORM_REGISTER_INFO_PREFIX + userSetting.getServerId() + "_" + "*");
for (Object key : regInfos) {
- RedisUtil.del(key.toString());
+ redisTemplate.delete(key.toString());
}
}
@@ -382,7 +383,7 @@
+ sendRtpItem.getChannelId() + "_"
+ sendRtpItem.getStream() + "_"
+ sendRtpItem.getCallId();
- RedisUtil.set(key, sendRtpItem);
+ redisTemplate.opsForValue().set(key, sendRtpItem);
}
@Override
@@ -405,9 +406,9 @@
+ channelId + "_"
+ streamId + "_"
+ callId;
- List<Object> scan = RedisUtil.scan(key);
+ List<Object> scan = RedisUtil.scan(redisTemplate, key);
if (scan.size() > 0) {
- return (SendRtpItem)RedisUtil.get((String)scan.get(0));
+ return (SendRtpItem)redisTemplate.opsForValue().get(scan.get(0));
}else {
return null;
}
@@ -427,10 +428,10 @@
+ channelId + "_"
+ streamId + "_"
+ callId;
- List<Object> scan = RedisUtil.scan(key);
+ List<Object> scan = RedisUtil.scan(redisTemplate, key);
List<SendRtpItem> result = new ArrayList<>();
for (Object o : scan) {
- result.add((SendRtpItem) RedisUtil.get((String) o));
+ result.add((SendRtpItem) redisTemplate.opsForValue().get(o));
}
return result;
}
@@ -449,10 +450,10 @@
+ channelId + "_"
+ stream + "_"
+ callId;
- List<Object> scan = RedisUtil.scan(key);
+ List<Object> scan = RedisUtil.scan(redisTemplate, key);
List<SendRtpItem> result = new ArrayList<>();
for (Object o : scan) {
- result.add((SendRtpItem) RedisUtil.get((String) o));
+ result.add((SendRtpItem) redisTemplate.opsForValue().get(o));
}
return result;
}
@@ -465,12 +466,12 @@
String key = VideoManagerConstants.PLATFORM_SEND_RTP_INFO_PREFIX
+ userSetting.getServerId() + "_*_"
+ platformGbId + "_*" + "_*" + "_*";
- List<Object> queryResult = RedisUtil.scan(key);
+ List<Object> queryResult = RedisUtil.scan(redisTemplate, key);
List<SendRtpItem> result= new ArrayList<>();
for (Object o : queryResult) {
String keyItem = (String) o;
- result.add((SendRtpItem) RedisUtil.get(keyItem));
+ result.add((SendRtpItem) redisTemplate.opsForValue().get(keyItem));
}
return result;
@@ -478,8 +479,6 @@
/**
* 鍒犻櫎RTP鎺ㄩ�佷俊鎭紦瀛�
- * @param platformGbId
- * @param channelId
*/
@Override
public void deleteSendRTPServer(String platformGbId, String channelId, String callId, String streamId) {
@@ -495,10 +494,10 @@
+ channelId + "_"
+ streamId + "_"
+ callId;
- List<Object> scan = RedisUtil.scan(key);
+ List<Object> scan = RedisUtil.scan(redisTemplate, key);
if (scan.size() > 0) {
for (Object keyStr : scan) {
- RedisUtil.del((String)keyStr);
+ redisTemplate.delete(keyStr);
}
}
}
@@ -507,12 +506,12 @@
public List<SendRtpItem> queryAllSendRTPServer() {
String key = VideoManagerConstants.PLATFORM_SEND_RTP_INFO_PREFIX
+ userSetting.getServerId() + "_*";
- List<Object> queryResult = RedisUtil.scan(key);
+ List<Object> queryResult = RedisUtil.scan(redisTemplate, key);
List<SendRtpItem> result= new ArrayList<>();
for (Object o : queryResult) {
String keyItem = (String) o;
- result.add((SendRtpItem) RedisUtil.get(keyItem));
+ result.add((SendRtpItem) redisTemplate.opsForValue().get(keyItem));
}
return result;
@@ -520,47 +519,42 @@
/**
* 鏌ヨ鏌愪釜閫氶亾鏄惁瀛樺湪涓婄骇鐐规挱锛圧TP鎺ㄩ�侊級
- * @param channelId
*/
@Override
public boolean isChannelSendingRTP(String channelId) {
String key = VideoManagerConstants.PLATFORM_SEND_RTP_INFO_PREFIX
+ userSetting.getServerId() + "_*_*_"
+ channelId + "*_" + "*_";
- List<Object> RtpStreams = RedisUtil.scan(key);
- if (RtpStreams.size() > 0) {
- return true;
- } else {
- return false;
- }
+ List<Object> RtpStreams = RedisUtil.scan(redisTemplate, key);
+ return RtpStreams.size() > 0;
}
@Override
public void clearCatchByDeviceId(String deviceId) {
- List<Object> playLeys = RedisUtil.scan(String.format("%S_%s_*_%s_*", VideoManagerConstants.PLAYER_PREFIX,
+ List<Object> playLeys = RedisUtil.scan(redisTemplate, String.format("%S_%s_*_%s_*", VideoManagerConstants.PLAYER_PREFIX,
userSetting.getServerId(),
deviceId));
if (playLeys.size() > 0) {
for (Object key : playLeys) {
- RedisUtil.del(key.toString());
+ redisTemplate.delete(key.toString());
}
}
- List<Object> playBackers = RedisUtil.scan(String.format("%S_%s_*_%s_*_*_*", VideoManagerConstants.PLAY_BLACK_PREFIX,
+ List<Object> playBackers = RedisUtil.scan(redisTemplate, String.format("%S_%s_*_%s_*_*_*", VideoManagerConstants.PLAY_BLACK_PREFIX,
userSetting.getServerId(),
deviceId));
if (playBackers.size() > 0) {
for (Object key : playBackers) {
- RedisUtil.del(key.toString());
+ redisTemplate.delete(key.toString());
}
}
- List<Object> deviceCache = RedisUtil.scan(String.format("%S%s_%s", VideoManagerConstants.DEVICE_PREFIX,
+ List<Object> deviceCache = RedisUtil.scan(redisTemplate, String.format("%S%s_%s", VideoManagerConstants.DEVICE_PREFIX,
userSetting.getServerId(),
deviceId));
if (deviceCache.size() > 0) {
for (Object key : deviceCache) {
- RedisUtil.del(key.toString());
+ redisTemplate.delete(key.toString());
}
}
}
@@ -568,14 +562,14 @@
@Override
public void updateWVPInfo(JSONObject jsonObject, int time) {
String key = VideoManagerConstants.WVP_SERVER_PREFIX + userSetting.getServerId();
- RedisUtil.set(key, jsonObject, time);
+ redisTemplate.opsForValue().set(key, jsonObject, time);
}
@Override
public void sendStreamChangeMsg(String type, JSONObject jsonObject) {
String key = VideoManagerConstants.WVP_MSG_STREAM_CHANGE_PREFIX + type;
logger.info("[redis 娴佸彉鍖栦簨浠禲 {}: {}", key, jsonObject.toString());
- RedisUtil.convertAndSend(key, jsonObject);
+ redisTemplate.convertAndSend(key, jsonObject);
}
@Override
@@ -586,13 +580,13 @@
if (streamAuthorityInfo != null) {
onStreamChangedHookParam.setCallId(streamAuthorityInfo.getCallId());
}
- RedisUtil.set(key, onStreamChangedHookParam);
+ redisTemplate.opsForValue().set(key, onStreamChangedHookParam);
}
@Override
public void removeStream(String mediaServerId, String type, String app, String streamId) {
String key = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetting.getServerId() + "_" + type + "_" + app + "_" + streamId + "_" + mediaServerId;
- RedisUtil.del(key);
+ redisTemplate.delete(key);
}
@Override
@@ -619,9 +613,9 @@
stream,
callId
);
- List<Object> streamInfoScan = RedisUtil.scan2(key);
+ List<Object> streamInfoScan = RedisUtil.scan(redisTemplate, key);
if (streamInfoScan.size() > 0) {
- return (StreamInfo) RedisUtil.get((String) streamInfoScan.get(0));
+ return (StreamInfo) redisTemplate.opsForValue().get(streamInfoScan.get(0));
}else {
return null;
}
@@ -630,15 +624,15 @@
@Override
public ThirdPartyGB queryMemberNoGBId(String queryKey) {
String key = VideoManagerConstants.WVP_STREAM_GB_ID_PREFIX + queryKey;
- return JsonUtil.redisJsonToObject(key, ThirdPartyGB.class);
+ return JsonUtil.redisJsonToObject(redisTemplate, key, ThirdPartyGB.class);
}
@Override
public void removeStream(String mediaServerId, String type) {
String key = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetting.getServerId() + "_" + type + "_*_*_" + mediaServerId;
- List<Object> streams = RedisUtil.scan(key);
+ List<Object> streams = RedisUtil.scan(redisTemplate, key);
for (Object stream : streams) {
- RedisUtil.del((String) stream);
+ redisTemplate.delete(stream);
}
}
@@ -646,9 +640,9 @@
public List<OnStreamChangedHookParam> getStreams(String mediaServerId, String type) {
List<OnStreamChangedHookParam> result = new ArrayList<>();
String key = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetting.getServerId() + "_" + type + "_*_*_" + mediaServerId;
- List<Object> streams = RedisUtil.scan(key);
+ List<Object> streams = RedisUtil.scan(redisTemplate, key);
for (Object stream : streams) {
- OnStreamChangedHookParam onStreamChangedHookParam = (OnStreamChangedHookParam)RedisUtil.get((String) stream);
+ OnStreamChangedHookParam onStreamChangedHookParam = (OnStreamChangedHookParam)redisTemplate.opsForValue().get(stream);
result.add(onStreamChangedHookParam);
}
return result;
@@ -657,21 +651,21 @@
@Override
public void updateDevice(Device device) {
String key = VideoManagerConstants.DEVICE_PREFIX + userSetting.getServerId() + "_" + device.getDeviceId();
- RedisUtil.set(key, device);
+ redisTemplate.opsForValue().set(key, device);
}
@Override
public void removeDevice(String deviceId) {
String key = VideoManagerConstants.DEVICE_PREFIX + userSetting.getServerId() + "_" + deviceId;
- RedisUtil.del(key);
+ redisTemplate.delete(key);
}
@Override
public void removeAllDevice() {
String scanKey = VideoManagerConstants.DEVICE_PREFIX + userSetting.getServerId() + "_*";
- List<Object> keys = RedisUtil.scan(scanKey);
+ List<Object> keys = RedisUtil.scan(redisTemplate, scanKey);
for (Object key : keys) {
- RedisUtil.del((String) key);
+ redisTemplate.delete(key);
}
}
@@ -679,12 +673,12 @@
public List<Device> getAllDevices() {
String scanKey = VideoManagerConstants.DEVICE_PREFIX + userSetting.getServerId() + "_*";
List<Device> result = new ArrayList<>();
- List<Object> keys = RedisUtil.scan(scanKey);
+ List<Object> keys = RedisUtil.scan(redisTemplate, scanKey);
for (Object o : keys) {
String key = (String) o;
- Device device = JsonUtil.redisJsonToObject(key, Device.class);
+ Device device = JsonUtil.redisJsonToObject(redisTemplate, key, Device.class);
if (Objects.nonNull(device)) { // 鍙彇娌℃湁瀛樿繃寰�
- result.add(JsonUtil.redisJsonToObject(key, Device.class));
+ result.add(JsonUtil.redisJsonToObject(redisTemplate, key, Device.class));
}
}
@@ -694,31 +688,31 @@
@Override
public Device getDevice(String deviceId) {
String key = VideoManagerConstants.DEVICE_PREFIX + userSetting.getServerId() + "_" + deviceId;
- return JsonUtil.redisJsonToObject(key, Device.class);
+ return JsonUtil.redisJsonToObject(redisTemplate, key, Device.class);
}
@Override
public void updateGpsMsgInfo(GPSMsgInfo gpsMsgInfo) {
String key = VideoManagerConstants.WVP_STREAM_GPS_MSG_PREFIX + userSetting.getServerId() + "_" + gpsMsgInfo.getId();
- RedisUtil.set(key, gpsMsgInfo, 60); // 榛樿GPS娑堟伅淇濆瓨1鍒嗛挓
+ redisTemplate.opsForValue().set(key, gpsMsgInfo, 60); // 榛樿GPS娑堟伅淇濆瓨1鍒嗛挓
}
@Override
public GPSMsgInfo getGpsMsgInfo(String gbId) {
String key = VideoManagerConstants.WVP_STREAM_GPS_MSG_PREFIX + userSetting.getServerId() + "_" + gbId;
- return JsonUtil.redisJsonToObject(key, GPSMsgInfo.class);
+ return JsonUtil.redisJsonToObject(redisTemplate, key, GPSMsgInfo.class);
}
@Override
public List<GPSMsgInfo> getAllGpsMsgInfo() {
String scanKey = VideoManagerConstants.WVP_STREAM_GPS_MSG_PREFIX + userSetting.getServerId() + "_*";
List<GPSMsgInfo> result = new ArrayList<>();
- List<Object> keys = RedisUtil.scan(scanKey);
+ List<Object> keys = RedisUtil.scan(redisTemplate, scanKey);
for (Object o : keys) {
String key = (String) o;
- GPSMsgInfo gpsMsgInfo = JsonUtil.redisJsonToObject(key, GPSMsgInfo.class);
+ GPSMsgInfo gpsMsgInfo = JsonUtil.redisJsonToObject(redisTemplate, key, GPSMsgInfo.class);
if (Objects.nonNull(gpsMsgInfo) && !gpsMsgInfo.isStored()) { // 鍙彇娌℃湁瀛樿繃寰�
- result.add(JsonUtil.redisJsonToObject(key, GPSMsgInfo.class));
+ result.add(JsonUtil.redisJsonToObject(redisTemplate, key, GPSMsgInfo.class));
}
}
@@ -728,19 +722,19 @@
@Override
public void updateStreamAuthorityInfo(String app, String stream, StreamAuthorityInfo streamAuthorityInfo) {
String key = VideoManagerConstants.MEDIA_STREAM_AUTHORITY + userSetting.getServerId() + "_" + app+ "_" + stream;
- RedisUtil.set(key, streamAuthorityInfo);
+ redisTemplate.opsForValue().set(key, streamAuthorityInfo);
}
@Override
public void removeStreamAuthorityInfo(String app, String stream) {
String key = VideoManagerConstants.MEDIA_STREAM_AUTHORITY + userSetting.getServerId() + "_" + app+ "_" + stream ;
- RedisUtil.del(key);
+ redisTemplate.delete(key);
}
@Override
public StreamAuthorityInfo getStreamAuthorityInfo(String app, String stream) {
String key = VideoManagerConstants.MEDIA_STREAM_AUTHORITY + userSetting.getServerId() + "_" + app+ "_" + stream ;
- return JsonUtil.redisJsonToObject(key, StreamAuthorityInfo.class);
+ return JsonUtil.redisJsonToObject(redisTemplate, key, StreamAuthorityInfo.class);
}
@@ -748,10 +742,10 @@
public List<StreamAuthorityInfo> getAllStreamAuthorityInfo() {
String scanKey = VideoManagerConstants.MEDIA_STREAM_AUTHORITY + userSetting.getServerId() + "_*_*" ;
List<StreamAuthorityInfo> result = new ArrayList<>();
- List<Object> keys = RedisUtil.scan(scanKey);
+ List<Object> keys = RedisUtil.scan(redisTemplate, scanKey);
for (Object o : keys) {
String key = (String) o;
- result.add(JsonUtil.redisJsonToObject(key, StreamAuthorityInfo.class));
+ result.add(JsonUtil.redisJsonToObject(redisTemplate, key, StreamAuthorityInfo.class));
}
return result;
}
@@ -762,10 +756,10 @@
String scanKey = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetting.getServerId() + "_*_" + app + "_" + streamId + "_" + mediaServerId;
OnStreamChangedHookParam result = null;
- List<Object> keys = RedisUtil.scan(scanKey);
+ List<Object> keys = RedisUtil.scan(redisTemplate, scanKey);
if (keys.size() > 0) {
String key = (String) keys.get(0);
- result = JsonUtil.redisJsonToObject(key, OnStreamChangedHookParam.class);
+ result = JsonUtil.redisJsonToObject(redisTemplate, key, OnStreamChangedHookParam.class);
}
return result;
@@ -776,12 +770,13 @@
String key = VideoManagerConstants.SYSTEM_INFO_CPU_PREFIX + userSetting.getServerId();
Map<String, String> infoMap = new HashMap<>();
infoMap.put("time", DateUtil.getNow());
- infoMap.put("data", cpuInfo + "");
- RedisUtil.lSet(key, infoMap);
+ infoMap.put("data", String.valueOf(cpuInfo));
+ redisTemplate.opsForList().rightPush(key, infoMap);
// 姣忕涓�涓紝鏈�澶氬彧瀛�30涓�
- if (RedisUtil.lGetListSize(key) >= 30) {
- for (int i = 0; i < RedisUtil.lGetListSize(key) - 30; i++) {
- RedisUtil.lLeftPop(key);
+ Long size = redisTemplate.opsForList().size(key);
+ if (size != null && size >= 30) {
+ for (int i = 0; i < size - 30; i++) {
+ redisTemplate.opsForList().leftPop(key);
}
}
}
@@ -791,12 +786,13 @@
String key = VideoManagerConstants.SYSTEM_INFO_MEM_PREFIX + userSetting.getServerId();
Map<String, String> infoMap = new HashMap<>();
infoMap.put("time", DateUtil.getNow());
- infoMap.put("data", memInfo + "");
- RedisUtil.lSet(key, infoMap);
+ infoMap.put("data", String.valueOf(memInfo));
+ redisTemplate.opsForList().rightPush(key, infoMap);
// 姣忕涓�涓紝鏈�澶氬彧瀛�30涓�
- if (RedisUtil.lGetListSize(key) >= 30) {
- for (int i = 0; i < RedisUtil.lGetListSize(key) - 30; i++) {
- RedisUtil.lLeftPop(key);
+ Long size = redisTemplate.opsForList().size(key);
+ if (size != null && size >= 30) {
+ for (int i = 0; i < size - 30; i++) {
+ redisTemplate.opsForList().leftPop(key);
}
}
}
@@ -809,11 +805,12 @@
for (String netKey : networkInterfaces.keySet()) {
infoMap.put(netKey, networkInterfaces.get(netKey));
}
- RedisUtil.lSet(key, infoMap);
+ redisTemplate.opsForList().rightPush(key, infoMap);
// 姣忕涓�涓紝鏈�澶氬彧瀛�30涓�
- if (RedisUtil.lGetListSize(key) >= 30) {
- for (int i = 0; i < RedisUtil.lGetListSize(key) - 30; i++) {
- RedisUtil.lLeftPop(key);
+ Long size = redisTemplate.opsForList().size(key);
+ if (size != null && size >= 30) {
+ for (int i = 0; i < size - 30; i++) {
+ redisTemplate.opsForList().leftPop(key);
}
}
}
@@ -822,7 +819,7 @@
public void addDiskInfo(List<Map<String, Object>> diskInfo) {
String key = VideoManagerConstants.SYSTEM_INFO_DISK_PREFIX + userSetting.getServerId();
- RedisUtil.set(key, diskInfo);
+ redisTemplate.opsForValue().set(key, diskInfo);
}
@Override
@@ -832,11 +829,11 @@
String netKey = VideoManagerConstants.SYSTEM_INFO_NET_PREFIX + userSetting.getServerId();
String diskKey = VideoManagerConstants.SYSTEM_INFO_DISK_PREFIX + userSetting.getServerId();
SystemAllInfo systemAllInfo = new SystemAllInfo();
- systemAllInfo.setCpu(RedisUtil.lGet(cpuKey, 0, -1));
- systemAllInfo.setMem(RedisUtil.lGet(memKey, 0, -1));
- systemAllInfo.setNet(RedisUtil.lGet(netKey, 0, -1));
+ systemAllInfo.setCpu(redisTemplate.opsForList().range(cpuKey, 0, -1));
+ systemAllInfo.setMem(redisTemplate.opsForList().range(memKey, 0, -1));
+ systemAllInfo.setNet(redisTemplate.opsForList().range(netKey, 0, -1));
- systemAllInfo.setDisk(RedisUtil.get(diskKey));
+ systemAllInfo.setDisk(redisTemplate.opsForValue().get(diskKey));
systemAllInfo.setNetTotal(SystemInfoUtils.getNetworkTotal());
return systemAllInfo;
}
@@ -845,14 +842,14 @@
public void sendMobilePositionMsg(JSONObject jsonObject) {
String key = VideoManagerConstants.VM_MSG_SUBSCRIBE_MOBILE_POSITION;
logger.info("[redis鍙戦�侀�氱煡] 绉诲姩浣嶇疆 {}: {}", key, jsonObject.toString());
- RedisUtil.convertAndSend(key, jsonObject);
+ redisTemplate.convertAndSend(key, jsonObject);
}
@Override
public void sendStreamPushRequestedMsg(MessageForPushChannel msg) {
String key = VideoManagerConstants.VM_MSG_STREAM_PUSH_REQUESTED;
logger.info("[redis鍙戦�侀�氱煡] 鎺ㄦ祦琚姹� {}: {}/{}", key, msg.getApp(), msg.getStream());
- RedisUtil.convertAndSend(key, (JSONObject)JSON.toJSON(msg));
+ redisTemplate.convertAndSend(key, JSON.toJSON(msg));
}
@Override
@@ -860,7 +857,7 @@
// 姝ゆ秷鎭敤浜庡鎺ョ涓夋柟鏈嶅姟涓嬬骇鏉ョ殑娑堟伅鍐呭
String key = VideoManagerConstants.VM_MSG_SUBSCRIBE_ALARM;
logger.info("[redis鍙戦�侀�氱煡] 鎶ヨ{}: {}", key, JSON.toJSON(msg));
- RedisUtil.convertAndSend(key, (JSONObject)JSON.toJSON(msg));
+ redisTemplate.convertAndSend(key, JSON.toJSON(msg));
}
@Override
@@ -875,19 +872,19 @@
logger.info("[redis閫氱煡]鑾峰彇鎵�鏈夋帹娴佽澶囩殑鐘舵��");
JSONObject jsonObject = new JSONObject();
jsonObject.put(key, key);
- RedisUtil.convertAndSend(key, jsonObject);
+ redisTemplate.convertAndSend(key, jsonObject);
}
@Override
public int getPushStreamCount(String id) {
String key = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetting.getServerId() + "_PUSH_*_*_" + id;
- return RedisUtil.scan(key).size();
+ return RedisUtil.scan(redisTemplate, key).size();
}
@Override
public int getProxyStreamCount(String id) {
String key = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetting.getServerId() + "_PULL_*_*_" + id;
- return RedisUtil.scan(key).size();
+ return RedisUtil.scan(redisTemplate, key).size();
}
@Override
@@ -896,13 +893,13 @@
String playBackKey = VideoManagerConstants.PLAY_BLACK_PREFIX + "_" + userSetting.getServerId() + "_" + id + "_*";
String downloadKey = VideoManagerConstants.DOWNLOAD_PREFIX + "_" + userSetting.getServerId() + "_" + id + "_*";
- return RedisUtil.scan(playKey).size() + RedisUtil.scan(playBackKey).size() + RedisUtil.scan(downloadKey).size();
+ return RedisUtil.scan(redisTemplate, playKey).size() + RedisUtil.scan(redisTemplate, playBackKey).size() + RedisUtil.scan(redisTemplate, downloadKey).size();
}
@Override
public int getGbSendCount(String id) {
String key = VideoManagerConstants.PLATFORM_SEND_RTP_INFO_PREFIX
+ userSetting.getServerId() + "_*_" + id + "_*";
- return RedisUtil.scan(key).size();
+ return RedisUtil.scan(redisTemplate, key).size();
}
}
diff --git a/src/main/java/com/genersoft/iot/vmp/utils/JsonUtil.java b/src/main/java/com/genersoft/iot/vmp/utils/JsonUtil.java
index 60e2dbe..de8675f 100644
--- a/src/main/java/com/genersoft/iot/vmp/utils/JsonUtil.java
+++ b/src/main/java/com/genersoft/iot/vmp/utils/JsonUtil.java
@@ -1,8 +1,6 @@
package com.genersoft.iot.vmp.utils;
-import com.alibaba.fastjson2.JSON;
-import com.alibaba.fastjson2.JSONObject;
-import com.genersoft.iot.vmp.utils.redis.RedisUtil;
+import org.springframework.data.redis.core.RedisTemplate;
import java.util.Objects;
@@ -26,8 +24,8 @@
* @param <T>
* @return result type
*/
- public static <T> T redisJsonToObject(String key, Class<T> clazz) {
- Object jsonObject = RedisUtil.get(key);
+ public static <T> T redisJsonToObject(RedisTemplate<Object, Object> redisTemplate, String key, Class<T> clazz) {
+ Object jsonObject = redisTemplate.opsForValue().get(key);
if (Objects.isNull(jsonObject)) {
return null;
}
diff --git a/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java b/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java
index e54ed53..31e89f9 100644
--- a/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java
+++ b/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil.java
@@ -1,873 +1,32 @@
package com.genersoft.iot.vmp.utils.redis;
-import com.alibaba.fastjson2.JSONObject;
-import com.genersoft.iot.vmp.utils.SpringBeanFactory;
-import org.springframework.data.redis.core.*;
-import org.springframework.util.CollectionUtils;
+import org.springframework.data.redis.core.Cursor;
+import org.springframework.data.redis.core.RedisCallback;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.ScanOptions;
-import java.util.*;
-import java.util.concurrent.TimeUnit;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
-/**
+/**
* Redis宸ュ叿绫�
+ *
* @author swwheihei
* @date 2020骞�5鏈�6鏃� 涓嬪崍8:27:29
*/
@SuppressWarnings(value = {"rawtypes", "unchecked"})
public class RedisUtil {
- private static RedisTemplate redisTemplate;
-
- static {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
-
- /**
- * 鎸囧畾缂撳瓨澶辨晥鏃堕棿
- * @param key 閿�
- * @param time 鏃堕棿锛堢锛�
- * @return true / false
- */
- public static boolean expire(String key, long time) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- if (time > 0) {
- redisTemplate.expire(key, time, TimeUnit.SECONDS);
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 鏍规嵁 key 鑾峰彇杩囨湡鏃堕棿
- * @param key 閿�
- */
- public static long getExpire(String key) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- return redisTemplate.getExpire(key, TimeUnit.SECONDS);
- }
-
- /**
- * 鍒ゆ柇 key 鏄惁瀛樺湪
- * @param key 閿�
- * @return true / false
- */
- public static boolean hasKey(String key) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- return redisTemplate.hasKey(key);
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 鍒犻櫎缂撳瓨
- * @SuppressWarnings("unchecked") 蹇界暐绫诲瀷杞崲璀﹀憡
- * @param key 閿紙涓�涓垨鑰呭涓級
- */
- public static boolean del(String... key) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- if (key != null && key.length > 0) {
- if (key.length == 1) {
- redisTemplate.delete(key[0]);
- } else {
-// 浼犲叆涓�涓� Collection<String> 闆嗗悎
- redisTemplate.delete(CollectionUtils.arrayToList(key));
- }
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
-// ============================== String ==============================
-
- /**
- * 鏅�氱紦瀛樿幏鍙�
- * @param key 閿�
- * @return 鍊�
- */
- public static Object get(String key) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- return key == null ? null : redisTemplate.opsForValue().get(key);
- }
-
- /**
- * 鏅�氱紦瀛樻斁鍏�
- * @param key 閿�
- * @param value 鍊�
- * @return true / false
- */
- public static boolean set(String key, Object value) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- redisTemplate.opsForValue().set(key, value);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 鏅�氱紦瀛樻斁鍏ュ苟璁剧疆鏃堕棿
- * @param key 閿�
- * @param value 鍊�
- * @param time 鏃堕棿锛堢锛夛紝濡傛灉 time < 0 鍒欒缃棤闄愭椂闂�
- * @return true / false
- */
- public static boolean set(String key, Object value, long time) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- if (time > 0) {
- redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
- } else {
- set(key, value);
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 閫掑
- * @param key 閿�
- * @param delta 閫掑澶у皬
- * @return
- */
- public static long incr(String key, long delta) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- if (delta < 0) {
- throw new RuntimeException("閫掑鍥犲瓙蹇呴』澶т簬 0");
- }
- return redisTemplate.opsForValue().increment(key, delta);
- }
-
- /**
- * 閫掑噺
- * @param key 閿�
- * @param delta 閫掑噺澶у皬
- * @return
- */
- public static long decr(String key, long delta) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- if (delta < 0) {
- throw new RuntimeException("閫掑噺鍥犲瓙蹇呴』澶т簬 0");
- }
- return redisTemplate.opsForValue().increment(key, delta);
- }
-
-// ============================== Map ==============================
-
- /**
- * HashGet
- * @param key 閿紙no null锛�
- * @param item 椤癸紙no null锛�
- * @return 鍊�
- */
- public static Object hget(String key, String item) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- return redisTemplate.opsForHash().get(key, item);
- }
-
- /**
- * 鑾峰彇 key 瀵瑰簲鐨� map
- * @param key 閿紙no null锛�
- * @return 瀵瑰簲鐨勫涓敭鍊�
- */
- public static Map<Object, Object> hmget(String key) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- return redisTemplate.opsForHash().entries(key);
- }
-
- /**
- * HashSet
- * @param key 閿�
- * @param map 鍊�
- * @return true / false
- */
- public static boolean hmset(String key, Map<Object, Object> map) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- redisTemplate.opsForHash().putAll(key, map);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * HashSet 骞惰缃椂闂�
- * @param key 閿�
- * @param map 鍊�
- * @param time 鏃堕棿
- * @return true / false
- */
- public static boolean hmset(String key, Map<?, ?> map, long time) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- redisTemplate.opsForHash().putAll(key, map);
- if (time > 0) {
- expire(key, time);
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 鍚戜竴寮� Hash琛� 涓斁鍏ユ暟鎹紝濡備笉瀛樺湪鍒欏垱寤�
- * @param key 閿�
- * @param item 椤�
- * @param value 鍊�
- * @return true / false
- */
- public static boolean hset(String key, String item, Object value) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- redisTemplate.opsForHash().put(key, item, value);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 鍚戜竴寮� Hash琛� 涓斁鍏ユ暟鎹紝骞惰缃椂闂达紝濡備笉瀛樺湪鍒欏垱寤�
- * @param key 閿�
- * @param item 椤�
- * @param value 鍊�
- * @param time 鏃堕棿锛堝鏋滃師鏉ョ殑 Hash琛� 璁剧疆浜嗘椂闂达紝杩欓噷浼氳鐩栵級
- * @return true / false
- */
- public static boolean hset(String key, String item, Object value, long time) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- redisTemplate.opsForHash().put(key, item, value);
- if (time > 0) {
- expire(key, time);
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 鍒犻櫎 Hash琛� 涓殑鍊�
- * @param key 閿�
- * @param item 椤癸紙鍙互澶氫釜锛宯o null锛�
- */
- public static void hdel(String key, Object... item) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- redisTemplate.opsForHash().delete(key, item);
- }
-
- /**
- * 鍒ゆ柇 Hash琛� 涓槸鍚︽湁璇ラ敭鐨勫��
- * @param key 閿紙no null锛�
- * @param item 鍊硷紙no null锛�
- * @return true / false
- */
- public static boolean hHasKey(String key, String item) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- return redisTemplate.opsForHash().hasKey(key, item);
- }
-
- /**
- * Hash閫掑锛屽鏋滀笉瀛樺湪鍒欏垱寤轰竴涓紝骞舵妸鏂板鐨勫�艰繑鍥�
- * @param key 閿�
- * @param item 椤�
- * @param by 閫掑澶у皬 > 0
- * @return
- */
- public static Double hincr(String key, String item, Double by) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- return redisTemplate.opsForHash().increment(key, item, by);
- }
-
- /**
- * Hash閫掑噺
- * @param key 閿�
- * @param item 椤�
- * @param by 閫掑噺澶у皬
- * @return
- */
- public static Double hdecr(String key, String item, Double by) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- return redisTemplate.opsForHash().increment(key, item, -by);
- }
-
-// ============================== Set ==============================
-
- /**
- * 鏍规嵁 key 鑾峰彇 set 涓殑鎵�鏈夊��
- * @param key 閿�
- * @return 鍊�
- */
- public static Set<Object> sGet(String key) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- return redisTemplate.opsForSet().members(key);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
-
- /**
- * 浠庨敭涓� key 鐨� set 涓紝鏍规嵁 value 鏌ヨ鏄惁瀛樺湪
- * @param key 閿�
- * @param value 鍊�
- * @return true / false
- */
- public static boolean sHasKey(String key, Object value) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- return redisTemplate.opsForSet().isMember(key, value);
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 灏嗘暟鎹斁鍏� set缂撳瓨
- * @param key 閿��
- * @param values 鍊硷紙鍙互澶氫釜锛�
- * @return 鎴愬姛涓暟
- */
- public static long sSet(String key, Object... values) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- return redisTemplate.opsForSet().add(key, values);
- } catch (Exception e) {
- e.printStackTrace();
- return 0;
- }
- }
-
- /**
- * 灏嗘暟鎹斁鍏� set缂撳瓨锛屽苟璁剧疆鏃堕棿
- * @param key 閿�
- * @param time 鏃堕棿
- * @param values 鍊硷紙鍙互澶氫釜锛�
- * @return 鎴愬姛鏀惧叆涓暟
- */
- public static long sSet(String key, long time, Object... values) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- long count = redisTemplate.opsForSet().add(key, values);
- if (time > 0) {
- expire(key, time);
- }
- return count;
- } catch (Exception e) {
- e.printStackTrace();
- return 0;
- }
- }
-
- /**
- * 鑾峰彇 set缂撳瓨鐨勯暱搴�
- * @param key 閿�
- * @return 闀垮害
- */
- public static long sGetSetSize(String key) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- return redisTemplate.opsForSet().size(key);
- } catch (Exception e) {
- e.printStackTrace();
- return 0;
- }
- }
-
- /**
- * 绉婚櫎 set缂撳瓨涓紝鍊间负 value 鐨�
- * @param key 閿�
- * @param values 鍊�
- * @return 鎴愬姛绉婚櫎涓暟
- */
- public static long setRemove(String key, Object... values) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- return redisTemplate.opsForSet().remove(key, values);
- } catch (Exception e) {
- e.printStackTrace();
- return 0;
- }
- }
-// ============================== ZSet ==============================
-
- /**
- * 娣诲姞涓�涓厓绱�, zset涓巗et鏈�澶х殑鍖哄埆灏辨槸姣忎釜鍏冪礌閮芥湁涓�涓猻core锛屽洜姝ゆ湁涓帓搴忕殑杈呭姪鍔熻兘; zadd
- *
- * @param key
- * @param value
- * @param score
- */
- public static void zAdd(Object key, Object value, double score) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- redisTemplate.opsForZSet().add(key, value, score);
- }
-
- /**
- * 鍒犻櫎鍏冪礌 zrem
- *
- * @param key
- * @param value
- */
- public static void zRemove(Object key, Object value) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- redisTemplate.opsForZSet().remove(key, value);
- }
-
- /**
- * score鐨勫鍔爋r鍑忓皯 zincrby
- *
- * @param key
- * @param value
- * @param delta -1 琛ㄧず鍑� 1 琛ㄧず鍔�1
- */
- public static Double zIncrScore(Object key, Object value, double delta) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- return redisTemplate.opsForZSet().incrementScore(key, value, delta);
- }
-
- /**
- * 鏌ヨvalue瀵瑰簲鐨剆core zscore
- *
- * @param key
- * @param value
- * @return
- */
- public static Double zScore(Object key, Object value) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- return redisTemplate.opsForZSet().score(key, value);
- }
-
- /**
- * 鍒ゆ柇value鍦▃set涓殑鎺掑悕 zrank
- *
- * @param key
- * @param value
- * @return
- */
- public static Long zRank(Object key, Object value) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- return redisTemplate.opsForZSet().rank(key, value);
- }
-
- /**
- * 杩斿洖闆嗗悎鐨勯暱搴�
- *
- * @param key
- * @return
- */
- public static Long zSize(Object key) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- return redisTemplate.opsForZSet().zCard(key);
- }
-
- /**
- * 鏌ヨ闆嗗悎涓寚瀹氶『搴忕殑鍊硷紝 0 -1 琛ㄧず鑾峰彇鍏ㄩ儴鐨勯泦鍚堝唴瀹� zrange
- *
- * 杩斿洖鏈夊簭鐨勯泦鍚堬紝score灏忕殑鍦ㄥ墠闈�
- *
- * @param key
- * @param start
- * @param end
- * @return
- */
- public static Set<Object> zRange(Object key, int start, int end) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- return redisTemplate.opsForZSet().range(key, start, end);
- }
- /**
- * 鏌ヨ闆嗗悎涓寚瀹氶『搴忕殑鍊煎拰score锛�0, -1 琛ㄧず鑾峰彇鍏ㄩ儴鐨勯泦鍚堝唴瀹�
- *
- * @param key
- * @param start
- * @param end
- * @return
- */
- public static Set<ZSetOperations.TypedTuple<String>> zRangeWithScore(Object key, int start, int end) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- return redisTemplate.opsForZSet().rangeWithScores(key, start, end);
- }
- /**
- * 鏌ヨ闆嗗悎涓寚瀹氶『搴忕殑鍊� zrevrange
- *
- * 杩斿洖鏈夊簭鐨勯泦鍚堜腑锛宻core澶х殑鍦ㄥ墠闈�
- *
- * @param key
- * @param start
- * @param end
- * @return
- */
- public static Set<String> zRevRange(Object key, int start, int end) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- return redisTemplate.opsForZSet().reverseRange(key, start, end);
- }
- /**
- * 鏍规嵁score鐨勫�硷紝鏉ヨ幏鍙栨弧瓒虫潯浠剁殑闆嗗悎 zrangebyscore
- *
- * @param key
- * @param min
- * @param max
- * @return
- */
- public static Set<String> zSortRange(Object key, int min, int max) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- return redisTemplate.opsForZSet().rangeByScore(key, min, max);
- }
-
-
-// ============================== List ==============================
-
- /**
- * 鑾峰彇 list缂撳瓨鐨勫唴瀹�
- * @param key 閿�
- * @param start 寮�濮�
- * @param end 缁撴潫锛�0 鍒� -1 浠h〃鎵�鏈夊�硷級
- * @return
- */
- public static List<Object> lGet(String key, long start, long end) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- return redisTemplate.opsForList().range(key, start, end);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
-
- /**
- * 鑾峰彇 list缂撳瓨鐨勯暱搴�
- * @param key 閿�
- * @return 闀垮害
- */
- public static long lGetListSize(String key) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- return redisTemplate.opsForList().size(key);
- } catch (Exception e) {
- e.printStackTrace();
- return 0;
- }
- }
-
- /**
- * 鏍规嵁绱㈠紩 index 鑾峰彇閿负 key 鐨� list 涓殑鍏冪礌
- * @param key 閿�
- * @param index 绱㈠紩
- * 褰� index >= 0 鏃� {0:琛ㄥご, 1:绗簩涓厓绱爙
- * 褰� index < 0 鏃� {-1:琛ㄥ熬, -2:鍊掓暟绗簩涓厓绱爙
- * @return 鍊�
- */
- public static Object lGetIndex(String key, long index) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- return redisTemplate.opsForList().index(key, index);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
-
- /**
- * 灏嗗�� value 鎻掑叆閿负 key 鐨� list 涓紝濡傛灉 list 涓嶅瓨鍦ㄥ垯鍒涘缓绌� list
- * @param key 閿�
- * @param value 鍊�
- * @return true / false
- */
- public static boolean lSet(String key, Object value) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- redisTemplate.opsForList().rightPush(key, value);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 灏嗗�� value 鎻掑叆閿负 key 鐨� list 涓紝骞惰缃椂闂�
- * @param key 閿�
- * @param value 鍊�
- * @param time 鏃堕棿
- * @return true / false
- */
- public static boolean lSet(String key, Object value, long time) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- redisTemplate.opsForList().rightPush(key, value);
- if (time > 0) {
- expire(key, time);
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 灏� values 鎻掑叆閿负 key 鐨� list 涓�
- * @param key 閿�
- * @param values 鍊�
- * @return true / false
- */
- public static boolean lSetList(String key, List<Object> values) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- redisTemplate.opsForList().rightPushAll(key, values);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 灏� values 鎻掑叆閿负 key 鐨� list 涓紝骞惰缃椂闂�
- * @param key 閿�
- * @param values 鍊�
- * @param time 鏃堕棿
- * @return true / false
- */
- public static boolean lSetList(String key, List<Object> values, long time) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- redisTemplate.opsForList().rightPushAll(key, values);
- if (time > 0) {
- expire(key, time);
- }
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 鏍规嵁绱㈠紩 index 淇敼閿负 key 鐨勫��
- * @param key 閿�
- * @param index 绱㈠紩
- * @param value 鍊�
- * @return true / false
- */
- public static boolean lUpdateIndex(String key, long index, Object value) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- redisTemplate.opsForList().set(key, index, value);
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
-
- /**
- * 鍦ㄩ敭涓� key 鐨� list 涓垹闄ゅ�间负 value 鐨勫厓绱�
- * @param key 閿�
- * @param count 濡傛灉 count == 0 鍒欏垹闄� list 涓墍鏈夊�间负 value 鐨勫厓绱�
- * 濡傛灉 count > 0 鍒欏垹闄� list 涓渶宸﹁竟閭d釜鍊间负 value 鐨勫厓绱�
- * 濡傛灉 count < 0 鍒欏垹闄� list 涓渶鍙宠竟閭d釜鍊间负 value 鐨勫厓绱�
- * @param value
- * @return
- */
- public static long lRemove(String key, long count, Object value) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- return redisTemplate.opsForList().remove(key, count, value);
- } catch (Exception e) {
- e.printStackTrace();
- return 0;
- }
- }
-
- /**
- * 鍦ㄩ敭涓� key 鐨� list涓Щ闄ょ涓�涓厓绱�
- * @param key 閿�
- * @return
- */
- public static Object lLeftPop(String key) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- return redisTemplate.opsForList().leftPop(key);
- }
-
- /**
- * 鍦ㄩ敭涓� key 鐨� list涓Щ闄ゃ�佹渶鍚庝竴涓厓绱�
- * @param key 閿�
- * @return
- */
- public static Object lrightPop(String key) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- return redisTemplate.opsForList().rightPop(key);
- }
-
/**
* 妯$硦鏌ヨ
- * @param key 閿�
- * @return true / false
- */
- public static List<Object> keys(String key) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- try {
- Set<String> set = redisTemplate.keys(key);
- return new ArrayList<>(set);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
-
-
- /**
- * 妯$硦鏌ヨ
+ *
* @param query 鏌ヨ鍙傛暟
* @return
*/
-// public static List<Object> scan(String query) {
-// List<Object> result = new ArrayList<>();
-// try {
-// Cursor<Map.Entry<Object,Object>> cursor = redisTemplate.opsForHash().scan("field",
-// ScanOptions.scanOptions().match(query).count(1000).build());
-// while (cursor.hasNext()) {
-// Map.Entry<Object,Object> entry = cursor.next();
-// result.add(entry.getKey());
-// Object key = entry.getKey();
-// Object valueSet = entry.getValue();
-// }
-// //鍏抽棴cursor
-// cursor.close();
-// } catch (Exception e) {
-// e.printStackTrace();
-// }
-// return result;
-// }
+ public static List<Object> scan(RedisTemplate redisTemplate, String query) {
- /**
- * 妯$硦鏌ヨ
- * @param query 鏌ヨ鍙傛暟
- * @return
- */
- public static List<Object> scan(String query) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
Set<String> resultKeys = (Set<String>) redisTemplate.execute((RedisCallback<Set<String>>) connection -> {
ScanOptions scanOptions = ScanOptions.scanOptions().match("*" + query + "*").count(1000).build();
Cursor<byte[]> scan = connection.scan(scanOptions);
@@ -881,19 +40,7 @@
return new ArrayList<>(resultKeys);
}
- public static List<Object> scan2(String query) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- Set<String> keys = redisTemplate.keys(query);
- return new ArrayList<>(keys);
- }
- // ============================== 娑堟伅鍙戦�佷笌璁㈤槄 ==============================
- public static void convertAndSend(String channel, JSONObject msg) {
- if (redisTemplate == null) {
- redisTemplate = SpringBeanFactory.getBean("redisTemplate");
- }
- redisTemplate.convertAndSend(channel, msg);
- }
-
}
+
+
+
diff --git a/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil2.java b/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil2.java
new file mode 100644
index 0000000..18c1fd5
--- /dev/null
+++ b/src/main/java/com/genersoft/iot/vmp/utils/redis/RedisUtil2.java
@@ -0,0 +1,899 @@
+//package com.genersoft.iot.vmp.utils.redis;
+//
+//import com.alibaba.fastjson2.JSONObject;
+//import com.genersoft.iot.vmp.utils.SpringBeanFactory;
+//import org.springframework.data.redis.core.*;
+//import org.springframework.util.CollectionUtils;
+//
+//import java.util.*;
+//import java.util.concurrent.TimeUnit;
+//
+///**
+// * Redis宸ュ叿绫�
+// * @author swwheihei
+// * @date 2020骞�5鏈�6鏃� 涓嬪崍8:27:29
+// */
+//@SuppressWarnings(value = {"rawtypes", "unchecked"})
+//public class RedisUtil2 {
+//
+// private static RedisTemplate redisTemplate;
+//
+// static {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+//
+// /**
+// * 鎸囧畾缂撳瓨澶辨晥鏃堕棿
+// * @param key 閿�
+// * @param time 鏃堕棿锛堢锛�
+// * @return true / false
+// */
+// public static boolean expire(String key, long time) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// if (time > 0) {
+// redisTemplate.expire(key, time, TimeUnit.SECONDS);
+// }
+// return true;
+// } catch (Exception e) {
+// e.printStackTrace();
+// return false;
+// }
+// }
+//
+// /**
+// * 鏍规嵁 key 鑾峰彇杩囨湡鏃堕棿
+// * @param key 閿�
+// */
+// public static long getExpire(String key) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// return redisTemplate.getExpire(key, TimeUnit.SECONDS);
+// }
+//
+// /**
+// * 鍒ゆ柇 key 鏄惁瀛樺湪
+// * @param key 閿�
+// * @return true / false
+// */
+// public static boolean hasKey(String key) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// return redisTemplate.hasKey(key);
+// } catch (Exception e) {
+// e.printStackTrace();
+// return false;
+// }
+// }
+//
+// /**
+// * 鍒犻櫎缂撳瓨
+// * @SuppressWarnings("unchecked") 蹇界暐绫诲瀷杞崲璀﹀憡
+// * @param key 閿紙涓�涓垨鑰呭涓級
+// */
+// public static boolean del(String... key) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// if (key != null && key.length > 0) {
+// if (key.length == 1) {
+// redisTemplate.delete(key[0]);
+// } else {
+//// 浼犲叆涓�涓� Collection<String> 闆嗗悎
+// redisTemplate.delete(CollectionUtils.arrayToList(key));
+// }
+// }
+// return true;
+// } catch (Exception e) {
+// e.printStackTrace();
+// return false;
+// }
+// }
+//
+//// ============================== String ==============================
+//
+// /**
+// * 鏅�氱紦瀛樿幏鍙�
+// * @param key 閿�
+// * @return 鍊�
+// */
+// public static Object get(String key) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// return key == null ? null : redisTemplate.opsForValue().get(key);
+// }
+//
+// /**
+// * 鏅�氱紦瀛樻斁鍏�
+// * @param key 閿�
+// * @param value 鍊�
+// * @return true / false
+// */
+// public static boolean set(String key, Object value) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// redisTemplate.opsForValue().set(key, value);
+// return true;
+// } catch (Exception e) {
+// e.printStackTrace();
+// return false;
+// }
+// }
+//
+// /**
+// * 鏅�氱紦瀛樻斁鍏ュ苟璁剧疆鏃堕棿
+// * @param key 閿�
+// * @param value 鍊�
+// * @param time 鏃堕棿锛堢锛夛紝濡傛灉 time < 0 鍒欒缃棤闄愭椂闂�
+// * @return true / false
+// */
+// public static boolean set(String key, Object value, long time) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// if (time > 0) {
+// redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);
+// } else {
+// set(key, value);
+// }
+// return true;
+// } catch (Exception e) {
+// e.printStackTrace();
+// return false;
+// }
+// }
+//
+// /**
+// * 閫掑
+// * @param key 閿�
+// * @param delta 閫掑澶у皬
+// * @return
+// */
+// public static long incr(String key, long delta) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// if (delta < 0) {
+// throw new RuntimeException("閫掑鍥犲瓙蹇呴』澶т簬 0");
+// }
+// return redisTemplate.opsForValue().increment(key, delta);
+// }
+//
+// /**
+// * 閫掑噺
+// * @param key 閿�
+// * @param delta 閫掑噺澶у皬
+// * @return
+// */
+// public static long decr(String key, long delta) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// if (delta < 0) {
+// throw new RuntimeException("閫掑噺鍥犲瓙蹇呴』澶т簬 0");
+// }
+// return redisTemplate.opsForValue().increment(key, delta);
+// }
+//
+//// ============================== Map ==============================
+//
+// /**
+// * HashGet
+// * @param key 閿紙no null锛�
+// * @param item 椤癸紙no null锛�
+// * @return 鍊�
+// */
+// public static Object hget(String key, String item) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// return redisTemplate.opsForHash().get(key, item);
+// }
+//
+// /**
+// * 鑾峰彇 key 瀵瑰簲鐨� map
+// * @param key 閿紙no null锛�
+// * @return 瀵瑰簲鐨勫涓敭鍊�
+// */
+// public static Map<Object, Object> hmget(String key) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// return redisTemplate.opsForHash().entries(key);
+// }
+//
+// /**
+// * HashSet
+// * @param key 閿�
+// * @param map 鍊�
+// * @return true / false
+// */
+// public static boolean hmset(String key, Map<Object, Object> map) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// redisTemplate.opsForHash().putAll(key, map);
+// return true;
+// } catch (Exception e) {
+// e.printStackTrace();
+// return false;
+// }
+// }
+//
+// /**
+// * HashSet 骞惰缃椂闂�
+// * @param key 閿�
+// * @param map 鍊�
+// * @param time 鏃堕棿
+// * @return true / false
+// */
+// public static boolean hmset(String key, Map<?, ?> map, long time) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// redisTemplate.opsForHash().putAll(key, map);
+// if (time > 0) {
+// expire(key, time);
+// }
+// return true;
+// } catch (Exception e) {
+// e.printStackTrace();
+// return false;
+// }
+// }
+//
+// /**
+// * 鍚戜竴寮� Hash琛� 涓斁鍏ユ暟鎹紝濡備笉瀛樺湪鍒欏垱寤�
+// * @param key 閿�
+// * @param item 椤�
+// * @param value 鍊�
+// * @return true / false
+// */
+// public static boolean hset(String key, String item, Object value) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// redisTemplate.opsForHash().put(key, item, value);
+// return true;
+// } catch (Exception e) {
+// e.printStackTrace();
+// return false;
+// }
+// }
+//
+// /**
+// * 鍚戜竴寮� Hash琛� 涓斁鍏ユ暟鎹紝骞惰缃椂闂达紝濡備笉瀛樺湪鍒欏垱寤�
+// * @param key 閿�
+// * @param item 椤�
+// * @param value 鍊�
+// * @param time 鏃堕棿锛堝鏋滃師鏉ョ殑 Hash琛� 璁剧疆浜嗘椂闂达紝杩欓噷浼氳鐩栵級
+// * @return true / false
+// */
+// public static boolean hset(String key, String item, Object value, long time) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// redisTemplate.opsForHash().put(key, item, value);
+// if (time > 0) {
+// expire(key, time);
+// }
+// return true;
+// } catch (Exception e) {
+// e.printStackTrace();
+// return false;
+// }
+// }
+//
+// /**
+// * 鍒犻櫎 Hash琛� 涓殑鍊�
+// * @param key 閿�
+// * @param item 椤癸紙鍙互澶氫釜锛宯o null锛�
+// */
+// public static void hdel(String key, Object... item) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// redisTemplate.opsForHash().delete(key, item);
+// }
+//
+// /**
+// * 鍒ゆ柇 Hash琛� 涓槸鍚︽湁璇ラ敭鐨勫��
+// * @param key 閿紙no null锛�
+// * @param item 鍊硷紙no null锛�
+// * @return true / false
+// */
+// public static boolean hHasKey(String key, String item) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// return redisTemplate.opsForHash().hasKey(key, item);
+// }
+//
+// /**
+// * Hash閫掑锛屽鏋滀笉瀛樺湪鍒欏垱寤轰竴涓紝骞舵妸鏂板鐨勫�艰繑鍥�
+// * @param key 閿�
+// * @param item 椤�
+// * @param by 閫掑澶у皬 > 0
+// * @return
+// */
+// public static Double hincr(String key, String item, Double by) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// return redisTemplate.opsForHash().increment(key, item, by);
+// }
+//
+// /**
+// * Hash閫掑噺
+// * @param key 閿�
+// * @param item 椤�
+// * @param by 閫掑噺澶у皬
+// * @return
+// */
+// public static Double hdecr(String key, String item, Double by) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// return redisTemplate.opsForHash().increment(key, item, -by);
+// }
+//
+//// ============================== Set ==============================
+//
+// /**
+// * 鏍规嵁 key 鑾峰彇 set 涓殑鎵�鏈夊��
+// * @param key 閿�
+// * @return 鍊�
+// */
+// public static Set<Object> sGet(String key) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// return redisTemplate.opsForSet().members(key);
+// } catch (Exception e) {
+// e.printStackTrace();
+// return null;
+// }
+// }
+//
+// /**
+// * 浠庨敭涓� key 鐨� set 涓紝鏍规嵁 value 鏌ヨ鏄惁瀛樺湪
+// * @param key 閿�
+// * @param value 鍊�
+// * @return true / false
+// */
+// public static boolean sHasKey(String key, Object value) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// return redisTemplate.opsForSet().isMember(key, value);
+// } catch (Exception e) {
+// e.printStackTrace();
+// return false;
+// }
+// }
+//
+// /**
+// * 灏嗘暟鎹斁鍏� set缂撳瓨
+// * @param key 閿��
+// * @param values 鍊硷紙鍙互澶氫釜锛�
+// * @return 鎴愬姛涓暟
+// */
+// public static long sSet(String key, Object... values) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// return redisTemplate.opsForSet().add(key, values);
+// } catch (Exception e) {
+// e.printStackTrace();
+// return 0;
+// }
+// }
+//
+// /**
+// * 灏嗘暟鎹斁鍏� set缂撳瓨锛屽苟璁剧疆鏃堕棿
+// * @param key 閿�
+// * @param time 鏃堕棿
+// * @param values 鍊硷紙鍙互澶氫釜锛�
+// * @return 鎴愬姛鏀惧叆涓暟
+// */
+// public static long sSet(String key, long time, Object... values) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// long count = redisTemplate.opsForSet().add(key, values);
+// if (time > 0) {
+// expire(key, time);
+// }
+// return count;
+// } catch (Exception e) {
+// e.printStackTrace();
+// return 0;
+// }
+// }
+//
+// /**
+// * 鑾峰彇 set缂撳瓨鐨勯暱搴�
+// * @param key 閿�
+// * @return 闀垮害
+// */
+// public static long sGetSetSize(String key) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// return redisTemplate.opsForSet().size(key);
+// } catch (Exception e) {
+// e.printStackTrace();
+// return 0;
+// }
+// }
+//
+// /**
+// * 绉婚櫎 set缂撳瓨涓紝鍊间负 value 鐨�
+// * @param key 閿�
+// * @param values 鍊�
+// * @return 鎴愬姛绉婚櫎涓暟
+// */
+// public static long setRemove(String key, Object... values) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// return redisTemplate.opsForSet().remove(key, values);
+// } catch (Exception e) {
+// e.printStackTrace();
+// return 0;
+// }
+// }
+//// ============================== ZSet ==============================
+//
+// /**
+// * 娣诲姞涓�涓厓绱�, zset涓巗et鏈�澶х殑鍖哄埆灏辨槸姣忎釜鍏冪礌閮芥湁涓�涓猻core锛屽洜姝ゆ湁涓帓搴忕殑杈呭姪鍔熻兘; zadd
+// *
+// * @param key
+// * @param value
+// * @param score
+// */
+// public static void zAdd(Object key, Object value, double score) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// redisTemplate.opsForZSet().add(key, value, score);
+// }
+//
+// /**
+// * 鍒犻櫎鍏冪礌 zrem
+// *
+// * @param key
+// * @param value
+// */
+// public static void zRemove(Object key, Object value) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// redisTemplate.opsForZSet().remove(key, value);
+// }
+//
+// /**
+// * score鐨勫鍔爋r鍑忓皯 zincrby
+// *
+// * @param key
+// * @param value
+// * @param delta -1 琛ㄧず鍑� 1 琛ㄧず鍔�1
+// */
+// public static Double zIncrScore(Object key, Object value, double delta) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// return redisTemplate.opsForZSet().incrementScore(key, value, delta);
+// }
+//
+// /**
+// * 鏌ヨvalue瀵瑰簲鐨剆core zscore
+// *
+// * @param key
+// * @param value
+// * @return
+// */
+// public static Double zScore(Object key, Object value) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// return redisTemplate.opsForZSet().score(key, value);
+// }
+//
+// /**
+// * 鍒ゆ柇value鍦▃set涓殑鎺掑悕 zrank
+// *
+// * @param key
+// * @param value
+// * @return
+// */
+// public static Long zRank(Object key, Object value) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// return redisTemplate.opsForZSet().rank(key, value);
+// }
+//
+// /**
+// * 杩斿洖闆嗗悎鐨勯暱搴�
+// *
+// * @param key
+// * @return
+// */
+// public static Long zSize(Object key) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// return redisTemplate.opsForZSet().zCard(key);
+// }
+//
+// /**
+// * 鏌ヨ闆嗗悎涓寚瀹氶『搴忕殑鍊硷紝 0 -1 琛ㄧず鑾峰彇鍏ㄩ儴鐨勯泦鍚堝唴瀹� zrange
+// *
+// * 杩斿洖鏈夊簭鐨勯泦鍚堬紝score灏忕殑鍦ㄥ墠闈�
+// *
+// * @param key
+// * @param start
+// * @param end
+// * @return
+// */
+// public static Set<Object> zRange(Object key, int start, int end) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// return redisTemplate.opsForZSet().range(key, start, end);
+// }
+// /**
+// * 鏌ヨ闆嗗悎涓寚瀹氶『搴忕殑鍊煎拰score锛�0, -1 琛ㄧず鑾峰彇鍏ㄩ儴鐨勯泦鍚堝唴瀹�
+// *
+// * @param key
+// * @param start
+// * @param end
+// * @return
+// */
+// public static Set<ZSetOperations.TypedTuple<String>> zRangeWithScore(Object key, int start, int end) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// return redisTemplate.opsForZSet().rangeWithScores(key, start, end);
+// }
+// /**
+// * 鏌ヨ闆嗗悎涓寚瀹氶『搴忕殑鍊� zrevrange
+// *
+// * 杩斿洖鏈夊簭鐨勯泦鍚堜腑锛宻core澶х殑鍦ㄥ墠闈�
+// *
+// * @param key
+// * @param start
+// * @param end
+// * @return
+// */
+// public static Set<String> zRevRange(Object key, int start, int end) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// return redisTemplate.opsForZSet().reverseRange(key, start, end);
+// }
+// /**
+// * 鏍规嵁score鐨勫�硷紝鏉ヨ幏鍙栨弧瓒虫潯浠剁殑闆嗗悎 zrangebyscore
+// *
+// * @param key
+// * @param min
+// * @param max
+// * @return
+// */
+// public static Set<String> zSortRange(Object key, int min, int max) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// return redisTemplate.opsForZSet().rangeByScore(key, min, max);
+// }
+//
+//
+//// ============================== List ==============================
+//
+// /**
+// * 鑾峰彇 list缂撳瓨鐨勫唴瀹�
+// * @param key 閿�
+// * @param start 寮�濮�
+// * @param end 缁撴潫锛�0 鍒� -1 浠h〃鎵�鏈夊�硷級
+// * @return
+// */
+// public static List<Object> lGet(String key, long start, long end) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// return redisTemplate.opsForList().range(key, start, end);
+// } catch (Exception e) {
+// e.printStackTrace();
+// return null;
+// }
+// }
+//
+// /**
+// * 鑾峰彇 list缂撳瓨鐨勯暱搴�
+// * @param key 閿�
+// * @return 闀垮害
+// */
+// public static long lGetListSize(String key) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// return redisTemplate.opsForList().size(key);
+// } catch (Exception e) {
+// e.printStackTrace();
+// return 0;
+// }
+// }
+//
+// /**
+// * 鏍规嵁绱㈠紩 index 鑾峰彇閿负 key 鐨� list 涓殑鍏冪礌
+// * @param key 閿�
+// * @param index 绱㈠紩
+// * 褰� index >= 0 鏃� {0:琛ㄥご, 1:绗簩涓厓绱爙
+// * 褰� index < 0 鏃� {-1:琛ㄥ熬, -2:鍊掓暟绗簩涓厓绱爙
+// * @return 鍊�
+// */
+// public static Object lGetIndex(String key, long index) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// return redisTemplate.opsForList().index(key, index);
+// } catch (Exception e) {
+// e.printStackTrace();
+// return null;
+// }
+// }
+//
+// /**
+// * 灏嗗�� value 鎻掑叆閿负 key 鐨� list 涓紝濡傛灉 list 涓嶅瓨鍦ㄥ垯鍒涘缓绌� list
+// * @param key 閿�
+// * @param value 鍊�
+// * @return true / false
+// */
+// public static boolean lSet(String key, Object value) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// redisTemplate.opsForList().rightPush(key, value);
+// return true;
+// } catch (Exception e) {
+// e.printStackTrace();
+// return false;
+// }
+// }
+//
+// /**
+// * 灏嗗�� value 鎻掑叆閿负 key 鐨� list 涓紝骞惰缃椂闂�
+// * @param key 閿�
+// * @param value 鍊�
+// * @param time 鏃堕棿
+// * @return true / false
+// */
+// public static boolean lSet(String key, Object value, long time) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// redisTemplate.opsForList().rightPush(key, value);
+// if (time > 0) {
+// expire(key, time);
+// }
+// return true;
+// } catch (Exception e) {
+// e.printStackTrace();
+// return false;
+// }
+// }
+//
+// /**
+// * 灏� values 鎻掑叆閿负 key 鐨� list 涓�
+// * @param key 閿�
+// * @param values 鍊�
+// * @return true / false
+// */
+// public static boolean lSetList(String key, List<Object> values) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// redisTemplate.opsForList().rightPushAll(key, values);
+// return true;
+// } catch (Exception e) {
+// e.printStackTrace();
+// return false;
+// }
+// }
+//
+// /**
+// * 灏� values 鎻掑叆閿负 key 鐨� list 涓紝骞惰缃椂闂�
+// * @param key 閿�
+// * @param values 鍊�
+// * @param time 鏃堕棿
+// * @return true / false
+// */
+// public static boolean lSetList(String key, List<Object> values, long time) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// redisTemplate.opsForList().rightPushAll(key, values);
+// if (time > 0) {
+// expire(key, time);
+// }
+// return true;
+// } catch (Exception e) {
+// e.printStackTrace();
+// return false;
+// }
+// }
+//
+// /**
+// * 鏍规嵁绱㈠紩 index 淇敼閿负 key 鐨勫��
+// * @param key 閿�
+// * @param index 绱㈠紩
+// * @param value 鍊�
+// * @return true / false
+// */
+// public static boolean lUpdateIndex(String key, long index, Object value) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// redisTemplate.opsForList().set(key, index, value);
+// return true;
+// } catch (Exception e) {
+// e.printStackTrace();
+// return false;
+// }
+// }
+//
+// /**
+// * 鍦ㄩ敭涓� key 鐨� list 涓垹闄ゅ�间负 value 鐨勫厓绱�
+// * @param key 閿�
+// * @param count 濡傛灉 count == 0 鍒欏垹闄� list 涓墍鏈夊�间负 value 鐨勫厓绱�
+// * 濡傛灉 count > 0 鍒欏垹闄� list 涓渶宸﹁竟閭d釜鍊间负 value 鐨勫厓绱�
+// * 濡傛灉 count < 0 鍒欏垹闄� list 涓渶鍙宠竟閭d釜鍊间负 value 鐨勫厓绱�
+// * @param value
+// * @return
+// */
+// public static long lRemove(String key, long count, Object value) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// return redisTemplate.opsForList().remove(key, count, value);
+// } catch (Exception e) {
+// e.printStackTrace();
+// return 0;
+// }
+// }
+//
+// /**
+// * 鍦ㄩ敭涓� key 鐨� list涓Щ闄ょ涓�涓厓绱�
+// * @param key 閿�
+// * @return
+// */
+// public static Object lLeftPop(String key) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// return redisTemplate.opsForList().leftPop(key);
+// }
+//
+// /**
+// * 鍦ㄩ敭涓� key 鐨� list涓Щ闄ゃ�佹渶鍚庝竴涓厓绱�
+// * @param key 閿�
+// * @return
+// */
+// public static Object lrightPop(String key) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// return redisTemplate.opsForList().rightPop(key);
+// }
+//
+// /**
+// * 妯$硦鏌ヨ
+// * @param key 閿�
+// * @return true / false
+// */
+// public static List<Object> keys(String key) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// try {
+// Set<String> set = redisTemplate.keys(key);
+// return new ArrayList<>(set);
+// } catch (Exception e) {
+// e.printStackTrace();
+// return null;
+// }
+// }
+//
+//
+// /**
+// * 妯$硦鏌ヨ
+// * @param query 鏌ヨ鍙傛暟
+// * @return
+// */
+//// public static List<Object> scan(String query) {
+//// List<Object> result = new ArrayList<>();
+//// try {
+//// Cursor<Map.Entry<Object,Object>> cursor = redisTemplate.opsForHash().scan("field",
+//// ScanOptions.scanOptions().match(query).count(1000).build());
+//// while (cursor.hasNext()) {
+//// Map.Entry<Object,Object> entry = cursor.next();
+//// result.add(entry.getKey());
+//// Object key = entry.getKey();
+//// Object valueSet = entry.getValue();
+//// }
+//// //鍏抽棴cursor
+//// cursor.close();
+//// } catch (Exception e) {
+//// e.printStackTrace();
+//// }
+//// return result;
+//// }
+//
+// /**
+// * 妯$硦鏌ヨ
+// * @param query 鏌ヨ鍙傛暟
+// * @return
+// */
+// public static List<Object> scan(String query) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// Set<String> resultKeys = (Set<String>) redisTemplate.execute((RedisCallback<Set<String>>) connection -> {
+// ScanOptions scanOptions = ScanOptions.scanOptions().match("*" + query + "*").count(1000).build();
+// Cursor<byte[]> scan = connection.scan(scanOptions);
+// Set<String> keys = new HashSet<>();
+// while (scan.hasNext()) {
+// byte[] next = scan.next();
+// keys.add(new String(next));
+// }
+// return keys;
+// });
+//
+// return new ArrayList<>(resultKeys);
+// }
+// public static List<Object> scan2(String query) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// Set<String> keys = redisTemplate.keys(query);
+// return new ArrayList<>(keys);
+// }
+// // ============================== 娑堟伅鍙戦�佷笌璁㈤槄 ==============================
+// public static void convertAndSend(String channel, JSONObject msg) {
+// if (redisTemplate == null) {
+// redisTemplate = SpringBeanFactory.getBean("redisTemplate");
+// }
+// redisTemplate.convertAndSend(channel, msg);
+// }
+//
+//}
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/bean/StreamContent.java b/src/main/java/com/genersoft/iot/vmp/vmanager/bean/StreamContent.java
index e577baa..abf6df4 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/bean/StreamContent.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/bean/StreamContent.java
@@ -116,6 +116,9 @@
if (streamInfo.getFmp4() != null) {
this.fmp4 = streamInfo.getFmp4().getUrl();
}
+ if (streamInfo.getHttps_fmp4() != null) {
+ this.https_fmp4 = streamInfo.getHttps_fmp4().getUrl();
+ }
if (streamInfo.getWs_fmp4() != null) {
this.ws_fmp4 = streamInfo.getWs_fmp4().getUrl();
}
--
Gitblit v1.8.0