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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值