Map<String,Object>接收参数,Long类型降级为Integer,报类型转换异常

int类型接收参数,如果没传值,会有默认值

@Component public class RedisUtils { private static final Logger log = LoggerFactory.getLogger(RedisUtils.class); @Resource private RedisTemplate<String, Object> redisTemplate; public RedisUtils() { } public Boolean expire(final String key, long time, TimeUnit timeUnit) { return time <= 0L ? true : this.redisTemplate.expire(key, time, timeUnit); } public Boolean expire(final String key, long time) { return this.expire(key, time, TimeUnit.SECONDS); } public Long getExpire(final String key, TimeUnit timeUnit) { return this.redisTemplate.getExpire(key, timeUnit); } public Long getExpire(final String key) { return this.getExpire(key, TimeUnit.SECONDS); } public Boolean hasKey(final String key) { return this.redisTemplate.hasKey(key); } public void delete(final String... key) { if (key != null && key.length > 0) { if (key.length == 1) { this.redisTemplate.delete(key[0]); } else { this.redisTemplate.delete(CollectionUtils.arrayToList(key)); } } } public Set<String> getKeys(String pattern) { return this.redisTemplate.keys(pattern); } public Set<String> scanKeys(String pattern) { return this.scanKeys(pattern, 500); } public Set<String> scanKeys(String pattern, Integer keyMaxCount) { Set<String> keys = new HashSet(); this.redisTemplate.execute((connection) -> { Cursor cursor = connection.scan((new ScanOptionsBuilder()).match(pattern).count((long)keyMaxCount).build()); while(cursor.hasNext()) { keys.add(new String((byte[])cursor.next())); } return null; }); return keys; } public void delete(Set<String> keys) { this.redisTemplate.delete(keys); } public Object get(final String key) { return this.redisTemplate.opsForValue().get(key); } public boolean set(final String key, Object value) { this.redisTemplate.opsForValue().set(key, value); return true; } public boolean set(final String key, Object value, long time, TimeUnit timeUnit) { if (time > 0L) { this.redisTemplate.opsForValue().set(key, value, time, timeUnit); return true; } else { return this.set(key, value); } } public boolean set(final String key, Object value, long time) { return this.set(key, value, time, TimeUnit.SECONDS); } public Boolean setIfAbsent(final String key, Object value) { return this.redisTemplate.opsForValue().setIfAbsent(key, value); } public Object getAndSet(final String key, Object newValue) { return this.redisTemplate.opsForValue().getAndSet(key, newValue); } public Long increment(final String key, long delta) { return this.redisTemplate.opsForValue().increment(key, delta); } public Long decrement(final String key, long delta) { return this.redisTemplate.opsForValue().decrement(key, delta); } public Object hget(final String key, String item) { return this.redisTemplate.opsForHash().get(key, item); } public Map<Object, Object> hmget(final String key) { return this.redisTemplate.opsForHash().entries(key); } public void hmset(final String key, Map<String, Object> map) { this.redisTemplate.opsForHash().putAll(key, map); } public void hmset(final String key, Map<String, Object> map, long time, TimeUnit timeUnit) { this.redisTemplate.opsForHash().putAll(key, map); if (time > 0L) { this.expire(key, time, timeUnit); } } public void hmset(final String key, Map<String, Object> map, long time) { this.hmset(key, map, time, TimeUnit.SECONDS); } public void hset(final String key, String hashKey, Object value) { this.redisTemplate.opsForHash().put(key, hashKey, value); } public void hset(final String key, String hashKey, Object value, long time, TimeUnit timeUnit) { this.redisTemplate.opsForHash().put(key, hashKey, value); if (time > 0L) { this.expire(key, time, timeUnit); } } public void hset(final String key, String item, Object value, long time) { this.hset(key, item, value, time, TimeUnit.SECONDS); } public void hdel(final String key, Object... hashKeys) { this.redisTemplate.opsForHash().delete(key, hashKeys); } public boolean hHasKey(final String key, String hashKey) { return this.redisTemplate.opsForHash().hasKey(key, hashKey); } public long hincrement(final String key, String hashKey, long delta) { return this.redisTemplate.opsForHash().increment(key, hashKey, delta); } public long hdecrement(final String key, String hashKey, long delta) { return this.redisTemplate.opsForHash().increment(key, hashKey, -delta); } public Set<Object> sGet(final String key) { return this.redisTemplate.opsForSet().members(key); } public Boolean sHasKey(final String key, Object value) { return this.redisTemplate.opsForSet().isMember(key, value); } public Long sSet(final String key, Object... values) { return this.redisTemplate.opsForSet().add(key, values); } public Long sSetAndTime(final String key, long time, TimeUnit timeUnit, Object... values) { Long count = this.redisTemplate.opsForSet().add(key, values); if (time > 0L) { this.expire(key, time, timeUnit); } return count; } public long sSetAndTime(final String key, long time, Object... values) { return this.sSetAndTime(key, time, TimeUnit.SECONDS, values); } public Long sGetSetSize(final String key) { return this.redisTemplate.opsForSet().size(key); } public Long setRemove(final String key, Object... values) { return this.redisTemplate.opsForSet().remove(key, values); } public <T> T runLua(String lua, Class<T> returnType, List<String> keys, List<String> values) { RedisConnectionFactory redisConnectionFactory = this.redisTemplate.getConnectionFactory(); if (null != redisConnectionFactory && redisConnectionFactory.getConnection() instanceof LettuceClusterConnection) { DefaultRedisScript<T> redisScript = new DefaultRedisScript(lua, returnType); List<byte[]> args = (List)keys.stream().map(String::getBytes).collect(Collectors.toList()); List<byte[]> valuesByte = (List)values.stream().map(String::getBytes).collect(Collectors.toList()); args.addAll(valuesByte); LettuceClusterConnection lettuceClusterConnection = (LettuceClusterConnection)redisConnectionFactory.getConnection(); return lettuceClusterConnection.scriptingCommands().eval(redisScript.getScriptAsString().getBytes(), ReturnType.fromJavaType(redisScript.getResultType()), keys.size(), (byte[][])args.toArray(new byte[args.size()][])); } else { return this.redisTemplate.execute((connection) -> { Object nativeConnection = connection.getNativeConnection(); if (nativeConnection instanceof JedisCluster) { return ((JedisCluster)nativeConnection).eval(lua, keys, values); } else { return nativeConnection instanceof Jedis ? ((Jedis)nativeConnection).eval(lua, keys, values) : null; } }); } } } 这是RedisUtils方法
11-06
基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样与统计,通过模拟系统元件的故障与修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构与设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码与案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行与可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理与实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估与优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值