Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
// 定义field**
public static final String FIELD = "Handler";
插入数据
public void toNet(){
log.info("=====>>>>>测试redis-Hash插入数据!");
RedisTemplate redisTemplate = redisConfigurtion.redisTemplate(null);
String key = JalorUtils.getKey();
RedisHandler handler = new RedisHandler();
handler.setHandid(key);
handler.setCreatetime(new Date());
handler.setHandle("测试-使用HASH类型,XXX正在看我的代码!");
handler.setType(0);
// 创建HashMap
Map<String, Object> map = new HashMap();
// 将pojo对象存入map中,这里需要将pojo对象序列化一下
map.put(key, JSON.toJSONString(handler));
// 将Map写入redis数据库
redisTemplate.opsForHash().put(key, FIELD, map);
}
获取数据
@Scheduled(cron = "0/10 * * * * *")
public void getRedisData(){
log.info("=====>>>>>获取redis数据!");
// redis格式化工具
RedisTemplate redisTemplate = redisConfigurtion.redisTemplate(null);
// 获取redis数据
// List<RedisHandler> list = readisKVController.getRedis();
List<RedisHandler> list = readisKVController.getRedisByHash(FIELD);
log.info("Redis数据库中共[ "+ String.valueOf(list.size()) +" ]条数据!");
if (list.size() > 0) {
// 插入数据库
redisHandleService.add(list);
// 获取redis所有的KEY
Set<String> keys = redisTemplate.keys("*");
// 清空redis数据库
redisTemplate.delete(keys);
}
}