package com.xxx.common.redis;
import com.xxx.base.util.CommonUtil;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.InvalidDataAccessApiUsageException;
import org.springframework.data.redis.connection.DataType;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.ListOperations;
import org.springframework.data.redis.core.SetOperations;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.data.redis.core.ZSetOperations;
import org.springframework.data.redis.core.ZSetOperations.TypedTuple;
import org.springframework.stereotype.Repository;
@Repository("redisDao")
public class RedisDao {
@Autowired
private StringRedisTemplate redisTemplate;
private static Logger logger = LoggerFactory.getLogger(RedisDao.class);
public RedisDao() {
}
public <T> boolean set(String key, T value) {
boolean result = false;
try {
String str = CommonUtil.beanToString(value);
ValueOperations<String, String> valueOperations = this.redisTemplate.opsForValue();
valueOperations.set(key, str);
result = true;
} catch (Exception var6) {
logger.error("redis set error key={},value={}", new Object[]{key, value, var6});
}
return result;
}
public <T> boolean set(String key, T value, Integer timeout) {
boolean result = false;
String str = CommonUtil.beanToString(value);
try {
ValueOperations<String, String> valueOperations = this.redisTemplate.opsForValue();
valueOperations.set(key, str, timeout.longValue(), TimeUnit.SECONDS);
result = true;
} catch (Exception var7) {
logger.error("redis set error key={},value={},timeout={}", new Object[]{key, str, timeout, var7});
}
return result;
}
public <T> boolean set(String key, T value, Integer timeout, TimeUnit unit) {
String str = CommonUtil.beanToString(value);
try {
ValueOperations<String, String> valueOperations = this.redisTemplate.opsForValue();
valueOperations.set(key, str, timeout.longValue(), unit);
return true;
} catch (Exception var7) {
logger.error("redis set error key={},value={},timeout={},unit={}", new Object[]{key, str, timeout, unit, var7});
return false;
}
}
public <T> T get(String key, Class<T> clazz) {
String result = null;
try {
ValueOperations<String, String> valueOperations = this.redisTemplate.opsForValue();
result = (String)valueOperations.get(key);
} catch (Exception var5) {
logger.error("redis get error key={}", key, var5);
}
T t = CommonUtil.stringToBean(result, clazz);
return t;
}
public boolean del(String key) {
boolean result = false;
try {
this.redisTemplate.delete(key);
result = true;
} catch (Exception var4) {
logger.error("redis del error key={}", key, var4);
}
return result;
}
public boolean delCollection(Set<String> keys) {
boolean result = false;
try {
this.redisTemplate.delete(keys);
result = true;
} catch (Exception var4) {
logger.error("redis delCollection error key={}", keys.toString(), var4);
}
return result;
}
public boolean hasKey(String key) {
boolean result = false;
try {
result = this.redisTemplate.hasKey(key);
} catch (Exception var4) {
logger.error("redis hasKey error key = {}", key, var4);
}
return result;
}
public long increment(String key, Integer delta) {
try {
ValueOperations<String, String> valueOperations = this.redisTemplate.opsForValue();
return valueOperations.increment(key, delta.longValue());
} catch (Exception var4) {
logger.error("redis increment error key = {}, delta = {}", new Object[]{key, delta, var4});
return 0L;
}
}
public long increment(String key, Integer delta, Integer timeout) {
try {
boolean hasKey = false;
if (!this.hasKey(key)) {
hasKey = true;
}
long value = this.increment(key, delta);
if (hasKey) {
this.expire(key, timeout);
}
return value;
} catch (Exception var7) {
logger.error("redis increment error key = {}, delta = {}", new Object[]{key, delta, var7});
return 0L;
}
}
public boolean expire(String key, Integer timeout) {
boolean result = false;
try {
this.redisTemplate.expire(key, timeout.longValue(), TimeUnit.SECONDS);
result = true;
} catch (Exception var5) {
logger.error("redis expire error key = {}", key, var5);
}
return result;
}
public boolean expire(String key, Integer timeout, TimeUnit timeUnit) {
boolean result = false;
try {
this.redisTemplate.expire(key, timeout.longValue(), timeUnit);
result = true;
} catch (Exception var6) {
logger.error("redis expire error key = {}", key, var6);
}
return result;
}
public long ttl(String key) {
try {
long time = this.redisTemplate.getExpire(key, TimeUnit.SECONDS);
return time;
} catch (Exception var4) {
logger.error("redis expire error key = {}", key, var4);
return 0L;
}
}
public boolean putAll(String key, Map map) {
boolean result = false;
try {
HashOperations<String, String, String> options = this.redisTemplate.opsForHash();
options.putAll(key, map);
result = true;
} catch (Exception var5) {
logger.error("redis putAll error key={},map={}", new Object[]{key, map, var5});
}
return result;
}
public boolean putAll(String key, Map map, Integer timeout) {
boolean result = false;
try {
HashOperations<String, String, String> options = this.redisTemplate.opsForHash();
options.putAll(key, map);
this.redisTemplate.expire(key, timeout.longValue(), TimeUnit.SECONDS);
result = true;
} catch (Exception var6) {
logger.error("redis putAll error key={},map={}", new Object[]{key, map, var6});
}
return result;
}
public boolean put(String key, String hashKey, String hashValue) {
boolean result = false;
try {
HashOperations<String, String, String> options = this.redisTemplate.opsForHash();
options.put(key, hashKey, hashValue);
result = true;
} catch (Exception var6) {
logger.error("redis put error key={},hashKey={},hashValue={}", new Object[]{key, hashKey, hashValue, var6});
}
return result;
}
public boolean hasKey(String key, String hashKey) {
try {
HashOperations<String, String, String> options = this.redisTemplate.opsForHash();
return options.hasKey(key, hashKey);
} catch (Exception var4) {
logger.error("redis hasKey error key={},hashKey={}", new Object[]{key, hashKey, var4});
return false;
}
}
public String getHashValue(String key, String hashKey) {
try {
HashOperations<String, String, String> options = this.redisTemplate.opsForHash();
return (String)options.get(key, hashKey);
} catch (Exception var4) {
logger.error("redis get error key={},hashKey={}", new Object[]{key, hashKey, var4});
return null;
}
}
public List<String> multiGet(String key, Collection<String> fields) {
try {
HashOperations<String, String, String> options = this.redisTemplate.opsForHash();
return options.multiGet(key, fields);
} catch (Exception var4) {
logger.error("redis multiGet error key={},hashKey={}", new Object[]{key, fields, var4});
return null;
}
}
public long delete(String key, String... hashKeys) {
try {
HashOperations<String, String, String> options = this.redisTemplate.opsForHash();
return options.delete(key, hashKeys);
} catch (Exception var4) {
logger.error("redis delete error key={},hashKeys={}", new Object[]{key, hashKeys, var4});
return 0L;
}
}
public long increment(String key, String hashKey, Integer delta) {
try {
HashOperations<String, String, String> options = this.redisTemplate.opsForHash();
return options.increment(key, hashKey, delta.longValue());
} catch (Exception var5) {
logger.error("redis delete error key={},hashKey={},delta={}", new Object[]{key, hashKey, delta, var5});
return 0L;
}
}
public Set<String> keys(String key) {
try {
HashOperations<String, String, String> options = this.redisTemplate.opsForHash();
return this.redisTemplate.keys(key);
} catch (Exception var3) {
logger.error("redis keys error key={}", key, var3);
return null;
}
}
public Map<String, String> entries(String key) {
try {
HashOperations<String, String, String> options = this.redisTemplate.opsForHash();
return options.entries(key);
} catch (Exception var3) {
logger.error("redis keys error key={}", key, var3);
return null;
}
}
public long sAdd(String key, Integer time, String... values) {
try {
SetOperations<String, String> setOperations = this.redisTemplate.opsForSet();
long n = setOperations.add(key, values);
if (time != null) {
this.expire(key, time);
}
return n;
} catch (Exception var7) {
logger.error("redis set add error ", var7);
return 0L;
}
}
public boolean sIsMember(String key, String value) {
try {
SetOperations<String, String> setOperations = this.redisTemplate.opsForSet();
return setOperations.isMember(key, value);
} catch (InvalidDataAccessApiUsageException var4) {
this.del(key);
} catch (Exception var5) {
logger.error("redis set sisMember error", var5);
}
return false;
}
public long sRem(String key, String... hashKeys) {
try {
SetOperations<String, String> setOperations = this.redisTemplate.opsForSet();
return setOperations.remove(key, hashKeys);
} catch (Exception var4) {
logger.error("redis set sRem error", var4);
return 0L;
}
}
public long sCard(String key) {
try {
SetOperations<String, String> setOperations = this.redisTemplate.opsForSet();
long n = setOperations.size(key);
return n;
} catch (Exception var5) {
logger.error("redis set sSize error ", var5);
return 0L;
}
}
public Set<String> members(String key) {
Set set = null;
try {
SetOperations<String, String> setOperations = this.redisTemplate.opsForSet();
set = setOperations.members(key);
return set;
} catch (InvalidDataAccessApiUsageException var4) {
this.del(key);
} catch (Exception var5) {
logger.error("redis members sSize error ", var5);
}
return set;
}
public boolean zAdd(String key, String value, double score) {
try {
ZSetOperations<String, String> zSetOperations = this.redisTemplate.opsForZSet();
return zSetOperations.add(key, value, score);
} catch (Exception var6) {
logger.error("redis zset zadd error e:{}", var6);
return false;
}
}
public boolean zRem(String key, String... value) {
try {
ZSetOperations<String, String> zSetOperations = this.redisTemplate.opsForZSet();
long row = zSetOperations.remove(key, value);
return row > 0L;
} catch (Exception var6) {
logger.error("redis zset remove error e:{}", var6);
return false;
}
}
public long zRank(String key, String value) {
try {
ZSetOperations<String, String> zSetOperations = this.redisTemplate.opsForZSet();
return zSetOperations.rank(key, value) + 1L;
} catch (Exception var4) {
logger.error("redis zset zRank error e:{}", var4);
return 0L;
}
}
public long zRevRank(String key, String value) {
try {
ZSetOperations<String, String> zSetOperations = this.redisTemplate.opsForZSet();
Long res = zSetOperations.reverseRank(key, value);
return null == res ? 0L : res + 1L;
} catch (Exception var5) {
logger.error("redis zset zRevRank error e:{}", var5);
return 0L;
}
}
public long zCard(String key) {
try {
ZSetOperations<String, String> zSetOperations = this.redisTemplate.opsForZSet();
return zSetOperations.zCard(key);
} catch (Exception var3) {
logger.error("redis zset zCard error e:{}", var3);
return 0L;
}
}
public double zIncrby(String key, String value, double delta) {
try {
ZSetOperations<String, String> zSetOperations = this.redisTemplate.opsForZSet();
return zSetOperations.incrementScore(key, value, delta);
} catch (Exception var6) {
logger.error("redis zset zCard error e:{}", var6);
return 0.0D;
}
}
public double zIncrby(String key, String value, double delta, Long secend) {
try {
ZSetOperations<String, String> zSetOperations = this.redisTemplate.opsForZSet();
double d = zSetOperations.incrementScore(key, value, delta);
this.redisTemplate.expire(key, secend, TimeUnit.SECONDS);
} catch (Exception var9) {
logger.error("redis zset zCard error e:{}", var9);
}
return 0.0D;
}
public Set<String> zRange(String key, Integer start, Integer end) {
try {
ZSetOperations<String, String> zSetOperations = this.redisTemplate.opsForZSet();
return zSetOperations.range(key, start.longValue(), end.longValue());
} catch (Exception var5) {
logger.error("redis zset zRange error e:{}", var5);
return new HashSet();
}
}
public Map<String, Double> zRangeWithScores(String key, Integer start, Integer end) {
try {
ZSetOperations<String, String> zSetOperations = this.redisTemplate.opsForZSet();
Set<TypedTuple<String>> set = zSetOperations.rangeWithScores(key, start.longValue(), end.longValue());
Map<String, Double> idAndScores = new HashMap();
Iterator var7 = set.iterator();
while(var7.hasNext()) {
TypedTuple<String> z = (TypedTuple)var7.next();
idAndScores.put(z.getValue(), z.getScore());
}
return idAndScores;
} catch (Exception var9) {
logger.error("redis zset zRange error e:{}", var9);
return new HashMap();
}
}
public Set<String> zRevrange(String key, Integer start, Integer end) {
try {
ZSetOperations<String, String> zSetOperations = this.redisTemplate.opsForZSet();
return zSetOperations.reverseRange(key, start.longValue(), end.longValue());
} catch (Exception var5) {
logger.error("redis zset zRange error e:{}", var5);
return new HashSet();
}
}
public double zScore(String key, String value) {
try {
ZSetOperations<String, String> zSetOperations = this.redisTemplate.opsForZSet();
Double db = zSetOperations.score(key, value);
return db == null ? 0.0D : db;
} catch (Exception var5) {
logger.error("redis zset zscore error e:{}", var5);
return 0.0D;
}
}
public long leftPush(String key, Object object) {
try {
ListOperations listOperations = this.redisTemplate.opsForList();
long n = listOperations.leftPush(key, object);
return n;
} catch (Exception var6) {
logger.error("redis leftPush error e:{}", var6);
return 0L;
}
}
public long rightPush(String key, Object object) {
try {
ListOperations listOperations = this.redisTemplate.opsForList();
long n = listOperations.rightPush(key, object);
return n;
} catch (Exception var6) {
logger.error("redis leftPush error e:{}", var6);
return 0L;
}
}
public Object rightPop(String key) {
try {
ListOperations listOperations = this.redisTemplate.opsForList();
Object o = listOperations.rightPop(key);
return o;
} catch (Exception var4) {
logger.error("redis leftPush error e:{}", var4);
return null;
}
}
public Object leftPop(String key) {
try {
ListOperations listOperations = this.redisTemplate.opsForList();
Object o = listOperations.leftPop(key);
return o;
} catch (Exception var4) {
logger.error("redis leftPop error e:{}", var4);
return null;
}
}
public Object getFromList(String key, Integer index) {
try {
ListOperations listOperations = this.redisTemplate.opsForList();
Object o = listOperations.index(key, index.longValue());
return o;
} catch (Exception var5) {
logger.error("redis getFromList error e:{}", var5);
return null;
}
}
public List<Object> range(String key, Integer start, Integer end) {
try {
ListOperations listOperations = this.redisTemplate.opsForList();
List<Object> list = listOperations.range(key, start.longValue(), end.longValue());
return list;
} catch (Exception var6) {
logger.error("redis range error e:{}", var6);
return null;
}
}
public List<Object> range(String key) {
try {
ListOperations listOperations = this.redisTemplate.opsForList();
List<Object> list = listOperations.range(key, 0L, -1L);
return list;
} catch (Exception var4) {
logger.error("redis range error e:{}", var4);
return null;
}
}
public Long remove(String key, String itme) {
try {
ListOperations listOperations = this.redisTemplate.opsForList();
Long removeNum = listOperations.remove(key, 0L, itme);
return removeNum;
} catch (Exception var5) {
logger.error("redis range error e:{}", var5);
return 0L;
}
}
public Long size(String key) {
try {
ListOperations listOperations = this.redisTemplate.opsForList();
long n = listOperations.size(key);
return n;
} catch (Exception var5) {
logger.error("redis size error e:{}", var5);
return null;
}
}
public Set<String> getKeysByLike(String cachePrefix) {
return this.redisTemplate.keys(cachePrefix);
}
public DataType getKeysType(String key) {
return this.redisTemplate.type(key);
}
}
相关推荐
从Oracle迁移数据到Hadoop
目标:把Oracle 下的数据文件迁移到 Hadoop , 数据表都是上亿条,每个数据表的空间都超过100G。 关键是建立数据文件是UTF8格式,这样数据中的汉字在Hadoop 里显示才正常。 平台:CentOS 6.10 工具:Python 2.7 cx_Oracle 库 Oracle10.2.0.4.0 Hadoop 2.7.2-transwarp-5.2.1 1. 查看表...
Redis 键属性介绍
Redis数据库介绍 没个Redis客户端都有自己的目标数据库,当客户端执行数据库命令时,目标数据库就是操作对象。 数据库切换 使用select可切换数据库 select 2 切换到2号数据库 键空间 Redis时一个 K-V数据库服务器,每个数据库都有redis.h/redisDb表示,其中redisDb结构里面包含的 dict字典保存了数据库中所有的键值对,即键空间。 键空间的键为字符串对象...
Qt加载百度地图详细流程(附带报错解决方法)
一篇文章看懂Qt如何加载出百度地图......
redis5.0 有key未命中事件_如何提高及优化 redis 缓存命中率
引子: 1、命中率的概念: 客户端获取缓存数据的时候会出现命中率问题,那么命中率是什么那,通俗点说, 命中 (hit)就是查询到了缓存结果,没有命中(miss)就是没有查询到缓存结果。 用 命中 (hit)数量除( hit 加 没有命中miss 的 总数),得出的就是命中率。 公式如下:hits /( hits + miss)= 命中率 % 。 2、在redis 如何查看命中率那? 我们可以使用redis-cli 连接服务端后,执行 info 命令查看。 127.0.0.1:6379> info 返回
PX4飞控参数详解-Multicopter Position Control多旋翼位置控制
Maximum horizontal velocity for which position hold is enabled (use 0 to disable check)//启用悬停时的最大水平速度(使用 0 可禁用此检查)(仅适用MPC_POS_MODE 0 或 MPC_ALT_MODE 2)Maximum horizontal and vertical jerk in Position/Altitude mode//位置/高度模式下的最大水平和垂直加加速度。
IEC103协议实战指南:报文解析与传输优化策略
本文深入解析IEC103协议在电力自动化系统中的核心应用,重点拆解其固定帧与可变帧两种报文格式,并详细阐述了主从问答与非平衡传输机制。文章结合实战经验,针对报文解析中的常见问题(如字节序、超时重发)提供了解决方案,并探讨了传输层优化策略,旨在帮助工程师实现更可靠、高效的通信链路。
redis高级
阅读完本文要搞懂的东西使用场景 数据类型在这里一次罗列所有知识点分布式缓存单节点redis存在的的问题redis是基于内存的,难以满足海量数据存取需求(主从集群)(分片集群存储到不同服务器,动态扩容)redis数据在内存会丢失(redis持久化)故障恢复(redis哨兵机制)redis的分片服务器数量,三主三从。
SAP中错记虚拟利润中心的调整,冲销处理实例
我非CO专业顾问。工作中遇到的问题,也会找资料,分析,测试。有时这个过程会拿到结果,解决问题。遂将过程记录下来备查。读者请谨慎参考!EC-PCA: 利润中心记账流程_9ke0-优快云博客。
Redis缓存的几个名词,缓存命中、缓存穿透、缓存雪崩、缓存击穿
Redis缓存的几个名词,缓存命中、缓存穿透、缓存雪崩、缓存击穿
上机笔试题目:取出指定条件二维数组的子数组
取出指定条件二维数组的子数组: 1)传入参数为: 参数一:String[][]sArray2字符串二维数组 参数二:Stringkey字符串 参数三:StringkeyFormat含匹配符的字符串,如下:%0-%1,其中%x含义如为:一维数据列序号为x的值。 keyFormat 可以为 %0-%1-%2,%0-%3-%8-%x...... 例子如下...
Code Composer Studio 12.0.0版本 官方例程导入实战指南
本文详细介绍了在Code Composer Studio 12.0.0版本中,如何利用内置的Resource Explorer工具高效导入官方例程的完整实战指南。通过分步讲解定位开发板、导入工程、配置编译器及调试验证等关键操作,帮助开发者快速上手TI微控制器开发,避免常见错误,有效提升学习与开发效率。
redis:简单介绍string的典型使用场景
本文是作为 简单介绍 string的典型使用场景的学习笔记以上就是我是redis学习笔记。
ESP32-IDF开发实例-外部Flash与FatFs文件系统数据存取
FatFs是用于小型嵌入式系统的通用FAT / exFAT文件系统模块。FatFs模块是按照ANSI C(C89)编写的,并且与磁盘I/O层完全分开。因此,它独立于平台。它可以并入资源有限的小型微控制器中,例如8051,PIC,AVR,ARM,Z80,RX等。ESP32-IDF对FatFs提供了良好的支持。
Redis工具类
通过源码可以看出,SpringBoot自动帮我们在容器中生成了一个RedisTemplate和一个StringRedisTemplate。 看到这个**@ConditionalOnMissingBean注解后,就知道如果Spring容器中有了RedisTemplate对象了,这个自动配置的RedisTemplate不会实例化**。因此我们可以直接自己写个配置类,配置RedisTemplate。该注解核心作用是:当容器中不存在指定类型(或名称)的 Bean 时,才会创建当前注解标注的 Bean。代码如
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
Redis操作工具类
核心Redis操作工具类RedisOperateUtil如下,主要包括Redis键(Key)、字符串(String)、哈希(Hash)、列表(List)、集合(Set)等常用的操作。
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
Redis工具类:RedisTemplate
/ hash的value序列化方式采用jackson第四步:创建JSON工具类try {return s;T t = null;
C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片
基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正
封装好的Redis工具类
文章目录redis工具类工具类一工具类二工具类三 redis工具类 工具类一 import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; imp
最全的Redis工具类
RedisUtil 介绍 最全的Java操作Redis的工具类,封装了对Redis五种基本类型的各种操作,力求符合Redis的原生操作,使用StringRedisTemplate实现! 快速导航: key命令操作 | String数据操作 | Hash数据操作 | List数据操作 | Set数据操作 | zSet数据操作 相关知识: Redis基础知识补充 | Spring集成Redis | ...
Redis连接操作工具类
在开发过程中使用Redis,每个人都写一套,很是不方便,下面奉上RedisUtil工具类,包含获取连接,获取资源,释放资源,String、对象保存、删除等等操作 下面上代码: package com.jane.framework.redis; import com.jane.framework.common.util.ConstantsConfigureBean; import com.jane.framework.common.util.SpringContextUtil; import org.apa
java redis 工具类_Java操作Redis工具类
packagejavax.utils;importjava.util.ArrayList;importjava.util.List;importredis.clients.jedis.JedisPoolConfig;importredis.clients.jedis.JedisShardInfo;importredis.clients.jedis.ShardedJedis;importredis....
4237



被折叠的 条评论
为什么被折叠?



